forked from organicmaps/organicmaps
[android] Fixed NPE in banner controller, purchase controller is obtained only from provider at runtime
This commit is contained in:
parent
87d6502f2d
commit
e77041c42a
4 changed files with 13 additions and 8 deletions
|
@ -1834,7 +1834,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
@Nullable
|
||||
public PurchaseController<AdsRemovalPurchaseCallback> getAdsRemovalPurchaseController()
|
||||
{
|
||||
return mAdsRemovalPurchaseController;
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package com.mapswithme.maps.purchase;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
public interface AdsRemovalPurchaseControllerProvider
|
||||
{
|
||||
@NonNull
|
||||
@Nullable
|
||||
PurchaseController<AdsRemovalPurchaseCallback> getAdsRemovalPurchaseController();
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ import com.mapswithme.maps.ads.CompoundNativeAdLoader;
|
|||
import com.mapswithme.maps.ads.MwmNativeAd;
|
||||
import com.mapswithme.maps.ads.NativeAdError;
|
||||
import com.mapswithme.maps.ads.NativeAdListener;
|
||||
import com.mapswithme.maps.purchase.AdsRemovalPurchaseControllerProvider;
|
||||
import com.mapswithme.maps.purchase.AdsRemovalPurchaseDialog;
|
||||
import com.mapswithme.maps.purchase.PurchaseController;
|
||||
import com.mapswithme.util.Config;
|
||||
|
@ -125,11 +126,11 @@ final class BannerController
|
|||
@NonNull
|
||||
private MyNativeAdsListener mAdsListener = new MyNativeAdsListener();
|
||||
@NonNull
|
||||
private final PurchaseController mPurchaseController;
|
||||
private final AdsRemovalPurchaseControllerProvider mAdsRemovalProvider;
|
||||
|
||||
BannerController(@NonNull ViewGroup bannerContainer, @Nullable BannerListener listener,
|
||||
@NonNull CompoundNativeAdLoader loader, @Nullable AdTracker tracker,
|
||||
@NonNull PurchaseController purchaseController)
|
||||
@NonNull AdsRemovalPurchaseControllerProvider adsRemovalProvider)
|
||||
{
|
||||
LOGGER.d(TAG, "Constructor()");
|
||||
mContainerView = bannerContainer;
|
||||
|
@ -140,7 +141,7 @@ final class BannerController
|
|||
mAdTracker = tracker;
|
||||
Resources resources = mBannerView.getResources();
|
||||
mCloseFrameHeight = resources.getDimension(R.dimen.placepage_banner_height);
|
||||
mPurchaseController = purchaseController;
|
||||
mAdsRemovalProvider = adsRemovalProvider;
|
||||
initBannerViews();
|
||||
}
|
||||
|
||||
|
@ -220,7 +221,11 @@ final class BannerController
|
|||
else if (mCurrentAd != null)
|
||||
{
|
||||
UiUtils.showIf(mCurrentAd.getType().showAdChoiceIcon(), mAdChoices);
|
||||
UiUtils.showIf(mPurchaseController.isPurchaseSupported(), mAdsRemovalIcon, mAdsRemovalButton);
|
||||
PurchaseController<?> purchaseController
|
||||
= mAdsRemovalProvider.getAdsRemovalPurchaseController();
|
||||
boolean showRemovalButtons = purchaseController != null
|
||||
&& purchaseController.isPurchaseSupported();
|
||||
UiUtils.showIf(showRemovalButtons, mAdsRemovalIcon, mAdsRemovalButton);
|
||||
UiUtils.show(mIcon, mTitle, mMessage, mActionSmall, mActionContainer, mActionLarge,
|
||||
mAdsRemovalButton, mAdChoicesLabel);
|
||||
if (mOpened)
|
||||
|
|
|
@ -495,7 +495,7 @@ public class PlacePageView extends RelativeLayout
|
|||
DefaultAdTracker tracker = new DefaultAdTracker();
|
||||
CompoundNativeAdLoader loader = com.mapswithme.maps.ads.Factory.createCompoundLoader(tracker, tracker);
|
||||
mBannerController = new BannerController(bannerContainer, this, loader, tracker,
|
||||
getActivity().getAdsRemovalPurchaseController());
|
||||
getActivity());
|
||||
}
|
||||
|
||||
mButtons = new PlacePageButtons(this, ppButtons, new PlacePageButtons.ItemListener()
|
||||
|
|
Loading…
Add table
Reference in a new issue