From 2efe729fdf2f028f8151b8a2f67f2ad40734d72f Mon Sep 17 00:00:00 2001 From: tapanmodh Date: Tue, 2 Aug 2022 18:12:48 +0530 Subject: [PATCH] swap vpn callout card to ad free card-india retention --- android/brave_java_resources.gni | 7 ++ android/brave_java_sources.gni | 3 +- .../BraveAdFreeCalloutDialogFragment.java | 84 +++++++++++++ ...Fragment.java => BraveDialogFragment.java} | 6 +- .../CrossPromotionalModalDialogFragment.java | 62 +--------- .../DormantUsersEngagementDialogFragment.java | 60 +--------- .../chrome/browser/app/BraveActivity.java | 44 ++++++- .../firstrun/WelcomeOnboardingActivity.java | 2 +- .../browser/ntp/BraveNewTabPageLayout.java | 1 + .../preferences/BravePreferenceKeys.java | 2 + .../browser/rate/RateDialogFragment.java | 74 ++---------- .../toolbar/top/BraveToolbarLayoutImpl.java | 27 ++++- .../chrome/browser/util/BraveConstants.java | 2 + .../BraveVpnAlwaysOnErrorDialogFragment.java | 3 +- .../BraveVpnCalloutDialogFragment.java | 3 +- .../BraveVpnConfirmDialogFragment.java | 3 +- .../res/drawable-hdpi/ic_ad_free_videos.png | Bin 0 -> 9631 bytes .../res/drawable-mdpi/ic_ad_free_videos.png | Bin 0 -> 7331 bytes .../res/drawable-xhdpi/ic_ad_free_videos.png | Bin 0 -> 14596 bytes .../res/drawable-xxhdpi/ic_ad_free_videos.png | Bin 0 -> 19493 bytes .../drawable-xxxhdpi/ic_ad_free_videos.png | Bin 0 -> 31167 bytes android/java/res/drawable/ad_free_card_bg.xml | 12 ++ .../fragment_ad_free_callout_dialog.xml | 111 ++++++++++++++++++ .../java/res/values-night/brave_colors.xml | 3 + android/java/res/values/brave_colors.xml | 4 + .../android/strings/android_brave_strings.grd | 21 ++++ 26 files changed, 340 insertions(+), 194 deletions(-) create mode 100644 android/java/org/chromium/chrome/browser/BraveAdFreeCalloutDialogFragment.java rename android/java/org/chromium/chrome/browser/{vpn/fragments/BraveVpnDialogFragment.java => BraveDialogFragment.java} (92%) create mode 100644 android/java/res/drawable-hdpi/ic_ad_free_videos.png create mode 100644 android/java/res/drawable-mdpi/ic_ad_free_videos.png create mode 100644 android/java/res/drawable-xhdpi/ic_ad_free_videos.png create mode 100644 android/java/res/drawable-xxhdpi/ic_ad_free_videos.png create mode 100644 android/java/res/drawable-xxxhdpi/ic_ad_free_videos.png create mode 100644 android/java/res/drawable/ad_free_card_bg.xml create mode 100644 android/java/res/layout/fragment_ad_free_callout_dialog.xml diff --git a/android/brave_java_resources.gni b/android/brave_java_resources.gni index 628b3ed7d71..e9080032468 100644 --- a/android/brave_java_resources.gni +++ b/android/brave_java_resources.gni @@ -52,6 +52,7 @@ brave_java_resources = [ "java/res/drawable-hdpi/down_arrow.png", "java/res/drawable-hdpi/ecosia.png", "java/res/drawable-hdpi/group.png", + "java/res/drawable-hdpi/ic_ad_free_videos.png", "java/res/drawable-hdpi/ic_brave_onboarding.png", "java/res/drawable-hdpi/ic_chrome.png", "java/res/drawable-hdpi/ic_cross_modal.png", @@ -134,6 +135,7 @@ brave_java_resources = [ "java/res/drawable-mdpi/down_arrow.png", "java/res/drawable-mdpi/ecosia.png", "java/res/drawable-mdpi/group.png", + "java/res/drawable-mdpi/ic_ad_free_videos.png", "java/res/drawable-mdpi/ic_brave_onboarding.png", "java/res/drawable-mdpi/ic_chrome.png", "java/res/drawable-mdpi/ic_cross_modal.png", @@ -254,6 +256,7 @@ brave_java_resources = [ "java/res/drawable-xhdpi/down_arrow.png", "java/res/drawable-xhdpi/ecosia.png", "java/res/drawable-xhdpi/group.png", + "java/res/drawable-xhdpi/ic_ad_free_videos.png", "java/res/drawable-xhdpi/ic_brave_onboarding.png", "java/res/drawable-xhdpi/ic_chrome.png", "java/res/drawable-xhdpi/ic_cross_modal.png", @@ -335,6 +338,7 @@ brave_java_resources = [ "java/res/drawable-xxhdpi/cover_photo.png", "java/res/drawable-xxhdpi/ecosia.png", "java/res/drawable-xxhdpi/group.png", + "java/res/drawable-xxhdpi/ic_ad_free_videos.png", "java/res/drawable-xxhdpi/ic_brave_onboarding.png", "java/res/drawable-xxhdpi/ic_chrome.png", "java/res/drawable-xxhdpi/ic_cross_modal.png", @@ -415,6 +419,7 @@ brave_java_resources = [ "java/res/drawable-xxxhdpi/cover_photo.png", "java/res/drawable-xxxhdpi/ecosia.png", "java/res/drawable-xxxhdpi/group.png", + "java/res/drawable-xxxhdpi/ic_ad_free_videos.png", "java/res/drawable-xxxhdpi/ic_brave_onboarding.png", "java/res/drawable-xxxhdpi/ic_chrome.png", "java/res/drawable-xxxhdpi/ic_cross_modal.png", @@ -459,6 +464,7 @@ brave_java_resources = [ "java/res/drawable/ac_radio_button_selector.xml", "java/res/drawable/ac_radio_group_bg.xml", "java/res/drawable/ac_text_selector.xml", + "java/res/drawable/ad_free_card_bg.xml", "java/res/drawable/ads_custom_notification_border.xml", "java/res/drawable/ads_custom_notification_border_dark.xml", "java/res/drawable/bat_ads_logo_button.xml", @@ -819,6 +825,7 @@ brave_java_resources = [ "java/res/layout/dapps_dialog.xml", "java/res/layout/edit_visible_assets_bottom_sheet.xml", "java/res/layout/fragment_accounts.xml", + "java/res/layout/fragment_ad_free_callout_dialog.xml", "java/res/layout/fragment_add_switch_ethereum_chain.xml", "java/res/layout/fragment_add_token.xml", "java/res/layout/fragment_backup_wallet.xml", diff --git a/android/brave_java_sources.gni b/android/brave_java_sources.gni index 945d11b533b..1b2e6c45bad 100644 --- a/android/brave_java_sources.gni +++ b/android/brave_java_sources.gni @@ -13,10 +13,12 @@ import("//brave/components/safetynet/java_sources.gni") import("//components/feed/features.gni") brave_java_sources = [ + "../../brave/android/java/org/chromium/chrome/browser/BraveAdFreeCalloutDialogFragment.java", "../../brave/android/java/org/chromium/chrome/browser/BraveAdaptiveCaptchaUtils.java", "../../brave/android/java/org/chromium/chrome/browser/BraveAppHooks.java", "../../brave/android/java/org/chromium/chrome/browser/BraveApplicationImplBase.java", "../../brave/android/java/org/chromium/chrome/browser/BraveBadge.java", + "../../brave/android/java/org/chromium/chrome/browser/BraveDialogFragment.java", "../../brave/android/java/org/chromium/chrome/browser/BraveFeatureUtil.java", "../../brave/android/java/org/chromium/chrome/browser/BraveHelper.java", "../../brave/android/java/org/chromium/chrome/browser/BraveIntentHandler.java", @@ -357,7 +359,6 @@ brave_java_sources = [ "../../brave/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnAlwaysOnErrorDialogFragment.java", "../../brave/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnCalloutDialogFragment.java", "../../brave/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnConfirmDialogFragment.java", - "../../brave/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnDialogFragment.java", "../../brave/android/java/org/chromium/chrome/browser/vpn/models/BraveVpnPrefModel.java", "../../brave/android/java/org/chromium/chrome/browser/vpn/models/BraveVpnProfileCredentials.java", "../../brave/android/java/org/chromium/chrome/browser/vpn/models/BraveVpnServerRegion.java", diff --git a/android/java/org/chromium/chrome/browser/BraveAdFreeCalloutDialogFragment.java b/android/java/org/chromium/chrome/browser/BraveAdFreeCalloutDialogFragment.java new file mode 100644 index 00000000000..6416a6b3d54 --- /dev/null +++ b/android/java/org/chromium/chrome/browser/BraveAdFreeCalloutDialogFragment.java @@ -0,0 +1,84 @@ +/** + * Copyright (c) 2022 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package org.chromium.chrome.browser; + +import android.content.res.Configuration; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ImageView; + +import androidx.fragment.app.DialogFragment; + +import org.chromium.chrome.R; +import org.chromium.chrome.browser.app.BraveActivity; +import org.chromium.chrome.browser.util.ConfigurationUtils; +import org.chromium.ui.base.DeviceFormFactor; + +public class BraveAdFreeCalloutDialogFragment extends BraveDialogFragment { + private ImageView mConfettiImageView; + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + checkForImageView(); + } + + @Override + public void onResume() { + super.onResume(); + + checkForImageView(); + } + + @Override + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_ad_free_callout_dialog, container, false); + + if (getDialog() != null && getDialog().getWindow() != null) { + getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + } + + return view; + } + + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + mConfettiImageView = view.findViewById(R.id.confetti_imageview); + + Button btnVideos = view.findViewById(R.id.btn_videos); + btnVideos.setOnClickListener(button -> { + BraveActivity braveActivity = BraveActivity.getBraveActivity(); + if (braveActivity != null) { + braveActivity.focusSearchBox(); + } + dismiss(); + }); + + ImageView cancelImageView = view.findViewById(R.id.cancel_imageview); + cancelImageView.setOnClickListener(button -> { dismiss(); }); + } + + private void checkForImageView() { + boolean isTablet = DeviceFormFactor.isNonMultiDisplayContextOnTablet(getActivity()); + boolean isLandscape = ConfigurationUtils.isLandscape(getActivity()); + + if (mConfettiImageView != null) { + if (isLandscape && !isTablet) { + mConfettiImageView.setVisibility(View.GONE); + } else { + mConfettiImageView.setVisibility(View.VISIBLE); + } + } + } +} diff --git a/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnDialogFragment.java b/android/java/org/chromium/chrome/browser/BraveDialogFragment.java similarity index 92% rename from android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnDialogFragment.java rename to android/java/org/chromium/chrome/browser/BraveDialogFragment.java index 3a084079316..c1997447a1b 100644 --- a/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnDialogFragment.java +++ b/android/java/org/chromium/chrome/browser/BraveDialogFragment.java @@ -1,11 +1,11 @@ /** - * Copyright (c) 2021 The Brave Authors. All rights reserved. + * Copyright (c) 2022 The Brave Authors. All rights reserved. * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -package org.chromium.chrome.browser.vpn.fragments; +package org.chromium.chrome.browser; import android.content.DialogInterface; import android.content.res.Configuration; @@ -19,7 +19,7 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.util.ConfigurationUtils; import org.chromium.ui.base.DeviceFormFactor; -public class BraveVpnDialogFragment extends DialogFragment { +public class BraveDialogFragment extends DialogFragment { @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); diff --git a/android/java/org/chromium/chrome/browser/CrossPromotionalModalDialogFragment.java b/android/java/org/chromium/chrome/browser/CrossPromotionalModalDialogFragment.java index 44240d870df..4762b50cabd 100644 --- a/android/java/org/chromium/chrome/browser/CrossPromotionalModalDialogFragment.java +++ b/android/java/org/chromium/chrome/browser/CrossPromotionalModalDialogFragment.java @@ -7,53 +7,17 @@ package org.chromium.chrome.browser; -import android.content.DialogInterface; -import android.content.res.Configuration; import android.os.Bundle; -import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.WindowManager; import android.widget.Button; -import android.widget.TextView; -import android.widget.LinearLayout; -import android.text.SpannableString; -import android.text.Spanned; -import android.text.style.ForegroundColorSpan; - -import androidx.fragment.app.DialogFragment; import org.chromium.chrome.R; - -import org.chromium.ui.base.DeviceFormFactor; -import org.chromium.chrome.browser.util.ConfigurationUtils; import org.chromium.chrome.browser.BraveRewardsHelper; -public class CrossPromotionalModalDialogFragment extends DialogFragment implements View.OnClickListener { - - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - setDialogParams(); - } - - @Override - public void onResume() { - super.onResume(); - getDialog().setOnKeyListener(new DialogInterface.OnKeyListener() { - @Override - public boolean onKey(android.content.DialogInterface dialog, - int keyCode, android.view.KeyEvent event) { - if ((keyCode == android.view.KeyEvent.KEYCODE_BACK)) { - dismiss(); - return true; - } else return false; - } - }); - setDialogParams(); - } - +public class CrossPromotionalModalDialogFragment + extends BraveDialogFragment implements View.OnClickListener { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_cross_promotional_modal_dialog, container, false); @@ -69,26 +33,4 @@ public class CrossPromotionalModalDialogFragment extends DialogFragment implemen public void onClick(View view) { dismiss(); } - - private void setDialogParams() { - DisplayMetrics displayMetrics = new DisplayMetrics(); - getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); - int mDeviceHeight = displayMetrics.heightPixels; - int mDeviceWidth = displayMetrics.widthPixels; - - WindowManager.LayoutParams params = getDialog().getWindow().getAttributes(); - boolean isTablet = DeviceFormFactor.isNonMultiDisplayContextOnTablet(getActivity()); - boolean isLandscape = ConfigurationUtils.isLandscape(getActivity()); - if (isTablet) { - params.width = (int) (0.5 * mDeviceWidth); - } else { - if (isLandscape) { - params.width = (int) (0.5 * mDeviceWidth); - } else { - params.width = (int) (0.9 * mDeviceWidth); - } - } - params.height = LinearLayout.LayoutParams.WRAP_CONTENT; - getDialog().getWindow().setAttributes(params); - } } diff --git a/android/java/org/chromium/chrome/browser/DormantUsersEngagementDialogFragment.java b/android/java/org/chromium/chrome/browser/DormantUsersEngagementDialogFragment.java index 2cdd61fa4d4..c1be8db196d 100644 --- a/android/java/org/chromium/chrome/browser/DormantUsersEngagementDialogFragment.java +++ b/android/java/org/chromium/chrome/browser/DormantUsersEngagementDialogFragment.java @@ -7,38 +7,25 @@ package org.chromium.chrome.browser; -import android.content.DialogInterface; -import android.content.res.Configuration; import android.os.Bundle; -import android.text.SpannableString; -import android.text.Spanned; -import android.text.style.ForegroundColorSpan; -import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.WindowManager; import android.widget.Button; import android.widget.ImageView; -import android.widget.LinearLayout; import android.widget.TextView; -import androidx.appcompat.widget.AppCompatImageView; -import androidx.fragment.app.DialogFragment; - import org.chromium.base.ContextUtils; import org.chromium.chrome.R; import org.chromium.chrome.browser.BraveRewardsHelper; import org.chromium.chrome.browser.app.BraveActivity; import org.chromium.chrome.browser.notifications.retention.RetentionNotificationUtil; import org.chromium.chrome.browser.set_default_browser.BraveSetDefaultBrowserUtils; -import org.chromium.chrome.browser.util.ConfigurationUtils; -import org.chromium.ui.base.DeviceFormFactor; import java.util.Arrays; import java.util.List; -public class DormantUsersEngagementDialogFragment extends DialogFragment { +public class DormantUsersEngagementDialogFragment extends BraveDialogFragment { private static final List mTexts = Arrays.asList(ContextUtils.getApplicationContext().getResources().getString( R.string.dormant_users_engagement_text_1), @@ -50,29 +37,6 @@ public class DormantUsersEngagementDialogFragment extends DialogFragment { R.drawable.ic_rocket, R.drawable.ic_brave_battery, R.drawable.ic_brave_mobiledata); private String notificationType; - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - setDialogParams(); - } - - @Override - public void onResume() { - super.onResume(); - getDialog().setOnKeyListener(new DialogInterface.OnKeyListener() { - @Override - public boolean onKey(android.content.DialogInterface dialog, int keyCode, - android.view.KeyEvent event) { - if ((keyCode == android.view.KeyEvent.KEYCODE_BACK)) { - dismiss(); - return true; - } else - return false; - } - }); - setDialogParams(); - } - @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -119,26 +83,4 @@ public class DormantUsersEngagementDialogFragment extends DialogFragment { public void setNotificationType(String notificationType) { this.notificationType = notificationType; } - - private void setDialogParams() { - DisplayMetrics displayMetrics = new DisplayMetrics(); - getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); - int mDeviceHeight = displayMetrics.heightPixels; - int mDeviceWidth = displayMetrics.widthPixels; - - WindowManager.LayoutParams params = getDialog().getWindow().getAttributes(); - boolean isTablet = DeviceFormFactor.isNonMultiDisplayContextOnTablet(getActivity()); - boolean isLandscape = ConfigurationUtils.isLandscape(getActivity()); - if (isTablet) { - params.width = (int) (0.5 * mDeviceWidth); - } else { - if (isLandscape) { - params.width = (int) (0.5 * mDeviceWidth); - } else { - params.width = (int) (0.9 * mDeviceWidth); - } - } - params.height = LinearLayout.LayoutParams.WRAP_CONTENT; - getDialog().getWindow().setAttributes(params); - } } diff --git a/android/java/org/chromium/chrome/browser/app/BraveActivity.java b/android/java/org/chromium/chrome/browser/app/BraveActivity.java index 2ffc5a0e211..7765502e759 100644 --- a/android/java/org/chromium/chrome/browser/app/BraveActivity.java +++ b/android/java/org/chromium/chrome/browser/app/BraveActivity.java @@ -76,6 +76,7 @@ import org.chromium.brave_wallet.mojom.SwapService; import org.chromium.brave_wallet.mojom.TxService; import org.chromium.chrome.R; import org.chromium.chrome.browser.ApplicationLifetime; +import org.chromium.chrome.browser.BraveAdFreeCalloutDialogFragment; import org.chromium.chrome.browser.BraveAdaptiveCaptchaUtils; import org.chromium.chrome.browser.BraveHelper; import org.chromium.chrome.browser.BraveRelaunchUtils; @@ -113,6 +114,7 @@ import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; import org.chromium.chrome.browser.informers.BraveAndroidSyncDisabledInformer; import org.chromium.chrome.browser.notifications.retention.RetentionNotificationUtil; +import org.chromium.chrome.browser.ntp.NewTabPageManager; import org.chromium.chrome.browser.ntp_background_images.util.NewTabPageListener; import org.chromium.chrome.browser.onboarding.BraveTalkOptInPopupListener; import org.chromium.chrome.browser.onboarding.OnboardingPrefManager; @@ -244,6 +246,7 @@ public abstract class BraveActivity extends C private boolean isProcessingPendingDappsTxRequest; private int mLastTabId; private boolean mNativeInitialized; + private NewTabPageManager mNewTabPageManager; @SuppressLint("VisibleForTests") public BraveActivity() { @@ -891,7 +894,10 @@ public abstract class BraveActivity extends C checkFingerPrintingOnUpgrade(); compositorView = null; - if (BraveVpnUtils.isBraveVpnFeatureEnable() + String countryCode = Locale.getDefault().getCountry(); + + if (!countryCode.equals(BraveConstants.INDIA_COUNTRY_CODE) + && BraveVpnUtils.isBraveVpnFeatureEnable() && InAppPurchaseWrapper.getInstance().isSubscriptionSupported()) { if (BraveVpnPrefUtils.shouldShowCallout() && !BraveVpnPrefUtils.isSubscriptionPurchase() && (SharedPreferencesManager.getInstance().readInt( @@ -928,6 +934,19 @@ public abstract class BraveActivity extends C showSearchBoxTooltip(); } mNativeInitialized = true; + + if (countryCode.equals(BraveConstants.INDIA_COUNTRY_CODE) + && SharedPreferencesManager.getInstance().readBoolean( + BravePreferenceKeys.BRAVE_AD_FREE_CALLOUT_DIALOG, true) + && getActivityTab() != null && getActivityTab().getUrl().getSpec() != null + && UrlUtilities.isNTPUrl(getActivityTab().getUrl().getSpec()) + && (SharedPreferencesManager.getInstance().readBoolean( + BravePreferenceKeys.BRAVE_OPENED_YOUTUBE, false) + || SharedPreferencesManager.getInstance().readInt( + BravePreferenceKeys.BRAVE_APP_OPEN_COUNT) + >= 7)) { + showAdFreeCalloutDialog(); + } } private void showSearchBoxTooltip() { @@ -962,7 +981,7 @@ public abstract class BraveActivity extends C .build(); String countryCode = Locale.getDefault().getCountry(); - if (countryCode.equals("IN")) { + if (countryCode.equals(BraveConstants.INDIA_COUNTRY_CODE)) { TextView toolTipBody = popupWindowTooltip.findViewById(R.id.tv_tooltip_title); toolTipBody.setText(getResources().getString(R.string.searchbox_onboarding_india)); } @@ -987,6 +1006,27 @@ public abstract class BraveActivity extends C getSupportFragmentManager(), "BraveVpnCalloutDialogFragment"); } + private void showAdFreeCalloutDialog() { + SharedPreferencesManager.getInstance().writeBoolean( + BravePreferenceKeys.BRAVE_AD_FREE_CALLOUT_DIALOG, false); + + BraveAdFreeCalloutDialogFragment braveAdFreeCalloutDialogFragment = + new BraveAdFreeCalloutDialogFragment(); + braveAdFreeCalloutDialogFragment.setCancelable(false); + braveAdFreeCalloutDialogFragment.show( + getSupportFragmentManager(), "BraveAdFreeCalloutDialogFragment"); + } + + public void setNewTabPageManager(NewTabPageManager manager) { + mNewTabPageManager = manager; + } + + public void focusSearchBox() { + if (mNewTabPageManager != null) { + mNewTabPageManager.focusSearchBox(false, null); + } + } + // Sets NTP background public void setBackground(Bitmap bgWallpaper) { CompositorViewHolder compositorView = findViewById(R.id.compositor_view_holder); diff --git a/android/java/org/chromium/chrome/browser/firstrun/WelcomeOnboardingActivity.java b/android/java/org/chromium/chrome/browser/firstrun/WelcomeOnboardingActivity.java index 8166bc5c47d..f3cd5c506af 100644 --- a/android/java/org/chromium/chrome/browser/firstrun/WelcomeOnboardingActivity.java +++ b/android/java/org/chromium/chrome/browser/firstrun/WelcomeOnboardingActivity.java @@ -182,7 +182,7 @@ public class WelcomeOnboardingActivity extends FirstRunActivityBase { mIvArrowDown.setVisibility(View.VISIBLE); String countryCode = Locale.getDefault().getCountry(); - if (countryCode.equals("IN")) { + if (countryCode.equals(BraveConstants.INDIA_COUNTRY_CODE)) { mTvCard.setText(getResources().getString(R.string.privacy_onboarding_india)); mTvDefault.setText(getResources().getString(R.string.onboarding_set_default_india)); } diff --git a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java index c28308bec77..1487b0d4632 100644 --- a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java +++ b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java @@ -1031,6 +1031,7 @@ public class BraveNewTabPageLayout assert (activity instanceof BraveActivity); mActivity = activity; ((BraveActivity) mActivity).dismissShieldsTooltip(); + ((BraveActivity) mActivity).setNewTabPageManager(manager); } public void setTabProvider(Supplier tabProvider) { diff --git a/android/java/org/chromium/chrome/browser/preferences/BravePreferenceKeys.java b/android/java/org/chromium/chrome/browser/preferences/BravePreferenceKeys.java index 8be2ef3160b..f1d1bbf9cd7 100644 --- a/android/java/org/chromium/chrome/browser/preferences/BravePreferenceKeys.java +++ b/android/java/org/chromium/chrome/browser/preferences/BravePreferenceKeys.java @@ -42,4 +42,6 @@ public final class BravePreferenceKeys { "org.chromium.chrome.browser.Brave_Biometrics_For_Wallet_Iv"; public static final String BRAVE_BIOMETRICS_FOR_WALLET_ENCRYPTED = "org.chromium.chrome.browser.Brave_Biometrics_For_Wallet_Encrypted"; + public static final String BRAVE_AD_FREE_CALLOUT_DIALOG = "brave_ad_free_callout_dialog"; + public static final String BRAVE_OPENED_YOUTUBE = "brave_opened_youtube"; } diff --git a/android/java/org/chromium/chrome/browser/rate/RateDialogFragment.java b/android/java/org/chromium/chrome/browser/rate/RateDialogFragment.java index 1671e8f4a7b..61e2c3fe3e1 100644 --- a/android/java/org/chromium/chrome/browser/rate/RateDialogFragment.java +++ b/android/java/org/chromium/chrome/browser/rate/RateDialogFragment.java @@ -8,35 +8,29 @@ package org.chromium.chrome.browser.rate; import android.content.Intent; -import android.os.Bundle; -import android.net.Uri; -import android.view.LayoutInflater; -import android.widget.LinearLayout; import android.graphics.Color; +import android.net.Uri; +import android.os.Bundle; import android.text.TextUtils; +import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; -import android.widget.EditText; -import android.widget.Button; -import android.widget.ImageButton; import android.view.animation.Animation; import android.view.animation.AnimationUtils; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.TextView; import android.widget.Toast; -import androidx.fragment.app.DialogFragment; -import android.content.DialogInterface; -import android.util.DisplayMetrics; -import android.content.res.Configuration; - -import org.chromium.chrome.R; import org.chromium.base.task.AsyncTask; -import org.chromium.ui.base.DeviceFormFactor; -import org.chromium.chrome.browser.util.ConfigurationUtils; -import org.chromium.chrome.browser.rate.RateFeedbackUtils; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.BraveDialogFragment; import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder; +import org.chromium.chrome.browser.rate.RateFeedbackUtils; -public class RateDialogFragment extends DialogFragment implements View.OnClickListener { +public class RateDialogFragment extends BraveDialogFragment implements View.OnClickListener { private static final String SAD = "sad"; private static final String NEUTRAL = "neutral"; @@ -68,28 +62,6 @@ public class RateDialogFragment extends DialogFragment implements View.OnClickLi } } - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - setDialogParams(); - } - - @Override - public void onResume() { - super.onResume(); - getDialog().setOnKeyListener(new DialogInterface.OnKeyListener() { - @Override - public boolean onKey(android.content.DialogInterface dialog, - int keyCode, android.view.KeyEvent event) { - if ((keyCode == android.view.KeyEvent.KEYCODE_BACK)) { - dismiss(); - return true; - } else return false; - } - }); - setDialogParams(); - } - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_rate_dialog, container, false); @@ -195,28 +167,6 @@ public class RateDialogFragment extends DialogFragment implements View.OnClickLi mRateTitleTextView.setText(getResources().getString(R.string.would_you_mind_leaving_rating)); } - private void setDialogParams() { - DisplayMetrics displayMetrics = new DisplayMetrics(); - getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); - int mDeviceHeight = displayMetrics.heightPixels; - int mDeviceWidth = displayMetrics.widthPixels; - - ViewGroup.LayoutParams params = getDialog().getWindow().getAttributes(); - boolean isTablet = DeviceFormFactor.isNonMultiDisplayContextOnTablet(getActivity()); - boolean isLandscape = ConfigurationUtils.isLandscape(getActivity()); - if (isTablet) { - params.width = (int) (0.5 * mDeviceWidth); - } else { - if (isLandscape) { - params.width = (int) (0.5 * mDeviceWidth); - } else { - params.width = (int) (0.9 * mDeviceWidth); - } - } - params.height = LinearLayout.LayoutParams.WRAP_CONTENT; - getDialog().getWindow().setAttributes((android.view.WindowManager.LayoutParams) params); - } - private RateFeedbackUtils.RateFeedbackCallback rateFeedbackCallback = new RateFeedbackUtils.RateFeedbackCallback() { @Override public void rateFeedbackSubmitted() { diff --git a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl.java index 929ebb416d8..c403028072e 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl.java +++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl.java @@ -89,6 +89,8 @@ import org.chromium.chrome.browser.onboarding.v2.HighlightItem; import org.chromium.chrome.browser.onboarding.v2.HighlightView; import org.chromium.chrome.browser.preferences.BravePref; import org.chromium.chrome.browser.preferences.BravePrefServiceBridge; +import org.chromium.chrome.browser.preferences.BravePreferenceKeys; +import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.preferences.website.BraveShieldsContentSettings; import org.chromium.chrome.browser.preferences.website.BraveShieldsContentSettingsObserver; import org.chromium.chrome.browser.profiles.Profile; @@ -115,6 +117,7 @@ import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator; import org.chromium.chrome.browser.toolbar.top.NavigationPopup.HistoryDelegate; import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; import org.chromium.chrome.browser.toolbar.top.ToolbarTablet.OfflineDownloader; +import org.chromium.chrome.browser.util.BraveConstants; import org.chromium.chrome.browser.util.PackageUtils; import org.chromium.components.browser_ui.styles.ChromeColors; import org.chromium.components.embedder_support.util.UrlConstants; @@ -144,6 +147,7 @@ public abstract class BraveToolbarLayoutImpl extends ToolbarLayout implements BraveToolbarLayout, OnClickListener, View.OnLongClickListener, BraveRewardsObserver, BraveRewardsNativeWorker.PublisherObserver { private static final String JAPAN_COUNTRY_CODE = "JP"; + private static final String YOUTUBE_DOMAIN = "youtube.com"; private static final List mBraveSearchEngineDefaultRegions = Arrays.asList("CA", "DE", "FR", "GB", "US", "AT", "ES", "MX"); private static final long MB_10 = 10000000; @@ -409,6 +413,15 @@ public abstract class BraveToolbarLayoutImpl extends ToolbarLayout checkForTooltip(tab); } } + + String countryCode = Locale.getDefault().getCountry(); + if (countryCode.equals(BraveConstants.INDIA_COUNTRY_CODE) + && url.domainIs(YOUTUBE_DOMAIN) + && SharedPreferencesManager.getInstance().readBoolean( + BravePreferenceKeys.BRAVE_AD_FREE_CALLOUT_DIALOG, true)) { + SharedPreferencesManager.getInstance().writeBoolean( + BravePreferenceKeys.BRAVE_OPENED_YOUTUBE, true); + } } @Override @@ -519,9 +532,17 @@ public abstract class BraveToolbarLayoutImpl extends ToolbarLayout String trackerText = ""; if (!displayTrackerName.isEmpty()) { - trackerText = String.format(getContext().getResources().getString( - R.string.shield_bigtech_tracker_blocked), - displayTrackerName, String.valueOf(adsTrackersCount - 1)); + if (adsTrackersCount - 1 == 0) { + trackerText = + String.format(getContext().getResources().getString( + R.string.shield_bigtech_tracker_only_blocked), + displayTrackerName); + + } else { + trackerText = String.format(getContext().getResources().getString( + R.string.shield_bigtech_tracker_blocked), + displayTrackerName, String.valueOf(adsTrackersCount - 1)); + } } else { trackerText = String.format( getContext().getResources().getString(R.string.shield_tracker_blocked), diff --git a/android/java/org/chromium/chrome/browser/util/BraveConstants.java b/android/java/org/chromium/chrome/browser/util/BraveConstants.java index 43f05175490..8e7f28a4192 100644 --- a/android/java/org/chromium/chrome/browser/util/BraveConstants.java +++ b/android/java/org/chromium/chrome/browser/util/BraveConstants.java @@ -25,4 +25,6 @@ public final class BraveConstants { public static final String BRAVE_REF_URL = "https://brave.com/r/"; public static final String BRAVE_NEWS_LEARN_MORE_URL = "https://brave.com/privacy/browser/#brave-news"; + + public static final String INDIA_COUNTRY_CODE = "IN"; } diff --git a/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnAlwaysOnErrorDialogFragment.java b/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnAlwaysOnErrorDialogFragment.java index 2dc5841e5b5..cbf5935f44c 100644 --- a/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnAlwaysOnErrorDialogFragment.java +++ b/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnAlwaysOnErrorDialogFragment.java @@ -15,9 +15,10 @@ import android.view.ViewGroup; import android.widget.Button; import org.chromium.chrome.R; +import org.chromium.chrome.browser.BraveDialogFragment; public class BraveVpnAlwaysOnErrorDialogFragment - extends BraveVpnDialogFragment implements View.OnClickListener { + extends BraveDialogFragment implements View.OnClickListener { @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { diff --git a/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnCalloutDialogFragment.java b/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnCalloutDialogFragment.java index 2d8ca35fe3f..4b882bfd767 100644 --- a/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnCalloutDialogFragment.java +++ b/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnCalloutDialogFragment.java @@ -15,13 +15,14 @@ import android.widget.Button; import android.widget.ImageView; import org.chromium.chrome.R; +import org.chromium.chrome.browser.BraveDialogFragment; import org.chromium.chrome.browser.InternetConnection; import org.chromium.chrome.browser.vpn.utils.BraveVpnPrefUtils; import org.chromium.chrome.browser.vpn.utils.BraveVpnUtils; import org.chromium.ui.widget.Toast; public class BraveVpnCalloutDialogFragment - extends BraveVpnDialogFragment implements View.OnClickListener { + extends BraveDialogFragment implements View.OnClickListener { @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { diff --git a/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnConfirmDialogFragment.java b/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnConfirmDialogFragment.java index b29e78acbe9..29ec8b9d12a 100644 --- a/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnConfirmDialogFragment.java +++ b/android/java/org/chromium/chrome/browser/vpn/fragments/BraveVpnConfirmDialogFragment.java @@ -16,8 +16,9 @@ import android.view.ViewGroup; import com.airbnb.lottie.LottieAnimationView; import org.chromium.chrome.R; +import org.chromium.chrome.browser.BraveDialogFragment; -public class BraveVpnConfirmDialogFragment extends BraveVpnDialogFragment { +public class BraveVpnConfirmDialogFragment extends BraveDialogFragment { private LottieAnimationView mAnimatedView; @Override diff --git a/android/java/res/drawable-hdpi/ic_ad_free_videos.png b/android/java/res/drawable-hdpi/ic_ad_free_videos.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2fc9b2be94a5e52c882c107b8300de76463f0b GIT binary patch literal 9631 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

P(BAgVC{j-PMaJPS*h zm;Y4s>lyl?)wUpo}qi-KCN@|ZE?!ilGAsnq$izl~6_*dsXgUx`;B@cr*JHReA{ z>9?|Q0!OqiVu+PXR=etM7r_P@R-YmoE$*vps|47jp|w7m5Ft5QpDn>+5yl+V#xlcQ z{t=}N20#t4Y(L}z+i;b)dE>8^eu&I>iQm1L7{$_~LPB8I=%6OO+%kuf`>xd^2g85~ z6&AyFj2}~#k)&ElZO`eb8xcH5v;J~astd?PO_JtOiov37k}qaiCsT1@5LA~HrLkF^ z<|oFpi>WFJ??n&-3RVf@Gzm(#8WaWVO2<_V$}z)?)he1g_|vsnteRB z?(vbKJ&Ey6$#!5D9P#8y&Ij;CkR4}7NYmwGRo+TMDL;{dMD8(NKBLjQKCfe zokS9^=e=L=y=(2WPg(n{wZELR_Wu1bhWeWKNf}510Kk21Ej42R01te(E+8Sk^I7)! z<#!X%Q|qx006?Pu-@r=}1?=A);`tbB!U1(Srk%SDp_7W93INcUO7_Q=2moM`)>czN z2I3tQQ2Lr&`F%V(8odRmA`-QEWz-dUnER-uefh1-~0<{Hr2u)^MX!Ur36^#VMx9R8M z-B&xKBk-nw=E1=kM_c)EKc+*7>2Jc8uYN55U19|c!pQ&Mmh@=HEMiTzM)8O!R$Cb_ zcC_*4~b$$pE?b!CsF0f zQW(Vz&NAS~+S2`JjZFA-6$2;1aSWLZwFGFU!w$CxTR{ngi9nN+>&t>m)PVUnN;F9n zIuhx+bZ8(%j%NZhM`R~_yt-bYpiaXj>XVR=P${}CUbZZ}_oU0F??(+F<*7F#h4w*` z+XFU1H^XKmAW-kufsmzk5g-5y5rlqzyEgeTZswWT+qL>0GGm%0TRN`SGn?)MSS>-%LU zI2q#s5#K>Ijx6f(Rbnn3RD@J%(g5rGFjiPGN~!^>Uhk?=XB1}s<8KBa>? zk^YEQb`9;L6nE_HCi58EW(ZxBivn3j$F7!B>cj&kc~rV8I?Gi^9F%0UXS{1t-ceb& zumddf9>H}gV1(bEstV;F^e?YC`hHRP^q#e?JVeq>Tr>P{l*3y6kpcy`hC$m{Vk|y( zXRt)&UM8NmK^F7v{502R!L` ziJ}5~2$UbuBbAW}f5WkD+N(;DJ-kGa5BGfEx!Fs_lks)^-rw>HTvLh@6D8+*%H`iy zpSL2yzP{aW+4L6yYU_18e8Pivi@R#X>Nf~lm~B2kA8I!^>};2UDkgmkdZIA*upo_U z8{cBLc+B|zdndOAjjMyiKls!J6?6y0x7bv<{=7cq zm7?QcOekKY;b?lkz4}vN?}T3sYHBjjSF^1BF%5UU*3ohe?8CFjR16_GRVh+^)I)9^ zP^Kv-Cu_(Y8#Nu_Yx14!r?i^!E8&Ul`$8g310iSROwL}b;ZR`U`$~&Ui`S1Cm2O%V zmXQ8ZIiZ0eW;het@`}<=eBHKo)DJ2-`V*yc6i&kOD&`=>5ssMLiqN1Zf1MNY8OH5r z&-}L2!oXBZsMoeD$cAhro%fd||40S~G1KM_*+^Uk%@_&j0ek zDL*>^Dn#UwGGs;0-^LojPHV%5ib*IzHyUl|}R@&1c6rz5k?jb&oBaP&XPDIIal z@k}zXFwnf=(ABGG7PHd-VxD1)Y;f2fr;Y4!qrSvzE;qrKbf$+iFTOvET)CgP+ky(Wlu=EBU~On4^<^Yj5c9sL04* zOS{Ll)h628C6)MjC-+1JX)FU|)*CxyKo5akSRs5hn1AFduBY8%@gU1G81q#})kD!5 zyyR8l)Ij*z?z`8=(*c|<#Y13iEg~8um%*N$4Z;6Ft)+JUpfz_}8Fl8xe19xD11+QZ z4YHqoQRas#V0dO(cT&59_dzW1s=y@*<5S{o<#aO_qjXy1Kf6f$GXqeo?@ z6at1D=7-&UgybfxLo=J0!0C7rjxg`F#aG@wu@#unyB@nOD3_C1%CY-dJl#mVpl%bQy@;wr*qzYX7dirj|L@eGHoNzZ5y0-ELSZL0I}6< z?^4&O8t})(n3f)6o53e3||XfC?S>2glao9^{^>p)2JYp_wj*_QxPcFCVx2iQp&_c+yK zL&-s9jMM#l->exZDqQAlsUcF_&i$o?l&SiXR0+L2T!FcHTiFaLomMI#60)-7L|Lm_ z^dDx;b|lEDPH&h6T@j-zw1o5|#F_^K8jrdM{7xRr2$l`3dVU6~q(43)ZCfGZt}B?f z(m+k|B+sff22CBUeD6gV*@|kb!gv{#=?Bv^j14e5w9S{TZ}We~a(KTHnB%j9i*X*u z>0v*>fheE+6i!hyFn(+fo*62Szna&6d2}!xR9)moV=^)HY z--_qXy+|JY8yfpH=$~ChVHBXi3loF_%f}M!wE;`o{du#YpfgURKjvvogxy@*C{DXN zXn9Gq(ecYOi5VWrPS`w|@jMM44uxFwu9S$66E9;yRJq6g@g#o1DMXvvcO1usc`s2?Z>+b?|alH1|yBDt>*= z$Q*zFY7>K|imWX*aP;QBE`|S6E}e~r{{-dm_=$1DwT21QQKoX(mFHzO*|v)C$nD9N z`9t_@p4zmYi3q_!db(`9Le*IL>dNql!U8f>>n%~Sx}kI&aFNy* z6=e+ddfom8@5A{6`HNC)f}&{a3edlq&ws1!aZ%*3y={A>>yR1+nKrxL67HqCV2P$# zDgL^AF7j0x!JzarrFpwB9M2@s_l|k<0Ha11u3jaFzDRhk^AfPp} zl->kv-)7?w*BH!j@^gmH`Kc4?cz5+gm`}oBUyIUNHt+5M-5;a4|=DfL{c(S15y@V5*0wxfbYRWS) z{lt^ePjNq9DBY@YlK*j}w(buDVL7$&OgujP#2L$`NLHK9NkduCvV-5$p-4^wZEN6=hf1YFa%~tg=yMpESF@(0TGqa_K_l z@AHJ=3B%i4hHl&Vnd4jegzQtKz17Ng{7CHJCS=s9j0v=Fw+muU{t38`*Ihy z*j*<~5!sPNpROJ>`zPmHLC?~u-fH5pQ=IpZMI_qdyguj59r&DIZCfd9YA9aCK(FVO z?)OplC`tbc2l#NGgpC#D2Rq>tA3v8WEf##9i#=WDeBh0G=Bp5koK}hUf0FQA*zMgv z;m{yTsRR*@Ju8)>&sJu};)Q=Myro&I3omnL^`$6YWP8Tnr}Xtv&_1LVa^kr1{XQ9G zAGljO@oWVf(iSq&--2tK;DMNlQL0D6nMzp)^Jr#g_I{;18Hume4JD>HfVXtRGBgNY%itRl0!Q~T84gAM7QaQY(Yfk5*YSy_@#jEo;fBx3NF7JatnS6FZVWebz9OY{CI$+IvR zTN~G(h^I_GAF7wJ-v?&~XyZDE*gu}}l1@M5MRGBCd2#SGuhyB5sFj$M?rB4r=)-_- zza7AQrUl=<+aekn0I`RC2;+xspTtrkJ4Su_?-paoh|eYa6Vb5)e8{MmbzrQr$M01huR_?pV7xwpi+qE=D{`<1FK8Aj_K zg$nk?$>L4yzYB41HHsL*__kzT-fBfkQQ6DO)RUMsR^1q~+r8rkm>Xh)D4acAZPkWbVJUqR@?QIu& zT_6yM6f;v|Zdk}IOp4hq$z1h*))KD~!`lv59nVzSG4K@Q5?t4rqWN5)Aa|@ADnm)n zR#IjU+wlGznbEkeR;YtjrDsw6O*)kOQB=m5TJ*u8JHkF$&XCS=qAT^3Z^{f4&4F+Y zRg)6fkkMk}U1xuw?JI^!11KcoViVSQ%h_#9?4pM_g_+h}Myk_1U#qz|gw<)aO3WBNuU@(1Gj4<{koDMQR~D0m*Icx00PVEHu=NOY;6BaaEl(dBY#}M?<*) zMISw(3n&RzSx}LY9;0%csyjLmKjuYjrZzGccAkTKiRRq05%a$|{pG8lq?R(k3z8Cm z`EHtZCoREXGA8Gw=8ZeLip6|?C_Rqgl_hX@DPt0~@=|`vM5~LOjL0~xIGv(n{xUK}0dTl!>4!QiW^MSY0dky?7^e!_~lfHzQJ#i*1TzEqNjqcRFcmVcc z#djI6t*|8kIFs+n;jcO}s-wg^c8CA(46R<+IxCZuY1k zQf5jFSPxkIOBIRKY!%qqwMlqsDf3%k8IruTOn`-OJFBo=ExLVVf=F=X*0nooxpwpd z`3ddBY&^Kz=-7CdkAFATFBifnxAguLis)S^m;_Gy-O^wsM7UTo2QhJSHmWKmLr1FJ z;c^?x#cA!+C=OvCqMD$e%J>ZPfrR>;8_)7?E*<5Njmj61$Z=Y zMROM~Si|JQ9~!Tn26QA>-V{22jomeWcAZNYZ3P6Xy|a!@HN<6)hDg_O*0%F*@Gw4w{n_3#Bt*AvUjwy4~<|&wl z8;S9Y>6T_3jqe(GEKg4hQeU1tJ!f9_CBE>Kg>)1Zsw5f#KXjn!%KORZ;@}-+_3}aP z$sJN%Sz`iIHCn%>`G~>ZtLjUn6`PJ(H#M8!bWF2{_G_^)SjXtE``EbVG7Xn-2?7yp zdh`)(h6C49AA5Dn^w)J9FSA5t7uzNY4I2YAT8@KDkRmapQ5kg~O#YHHGszZuqvPOQAdp8!$ml(O!-tAWaZ*Il!$X8U8v$t3x{f^){}4;3mu`pNdA0sBnKD1Y zM;QVom0i{w3_?=_wp?uD_6QF6=z@u}i`8B77$Y*(qFZtpQPl7dm-XJVA6_XP;H;Fn>sZ03FTE`fwwqJ(C$VcPcSuds2>#KaK&i{~7$D*5lCHQgw z2&+W0t2dLI`E@Um>E(2eqfjj81g{yAu6~;S)maYHOupIyDt%}19L<>drN{c`+8dNp zv-^v+s;OJQ{qMD%dEc$zA`M4Os1hWuit3dbe(?b{jT>+C{3Pr4DhsjvK9(!U#UvQU{z z5U+FS%F6PDr{sP5aaXJF(Sf}(_7JgMB4@-K>XoBsHue@KuC(Ci>Du-qK*Ltk*2Ztp zc=D5tsrzm#mYW@JyzB0$~douQo}m7EjkggJwwB`3zzt2o z;SOgnt%^670=l-M)A}0nc4nZ1trtoUv_Y0#0-dW|H?Zg%fR+>ZvBw;U0HDoM^}cs`5HC1 zWOE@l^8|0|sn6vxv^n{P7^#-ZviFT#J_~a>_R7KC3@f2?!jfUt#yV>slV@EsdZ&|N z$#e=9h$E&fGI8pBSWf*Z?M#B&K7@s!slF`CYZN+qx|okha_iy_!YA_y-$%-u!HeFnd2=5wFcOIIFJ+7D^vi2A zW>Qi3h_SKGE25oG=TOGKWm_hMB!4UuAo5+vUzl3^Y&d!3$a(AtNqjr=z)LI+$cy-O z*t%WA`>uKyW9edWQ{2j>frPXFW>%arEp> zbxm*o=f~6QIz4}v9JCJGn#M% zqy?hof7N~7MA^OhRXntXYQTGK-KU)~Wm~H6fKKnlFq)5sFJ@y`K&kuu^waJBt014O zwvC6W@!jKD6tv(Eq=r$8`0+8SCg=?UT?@1EH#Re-Pb9Wt5fQ*~((s)vODUst<^};# z=DS#zv<5@`fT+g$hXoC3@%i-ha~|XbU>Y+?8;U!9!Zg;3wDV;U6_~Ez+KPSt_U~~z z_+yIRh!LZAAXNEW zu^4}5&0tpeWsT7PYAb`(^mUQ7Y`zZ~RUji|1#9Z!paF=cI9={#_ z-p$6?=K)?RM;6rK?Y%^8A~v@9mlL;Gx({|mr6jk^2Z& zYi8G_`{iFLNZ7498l>B8ejXHgFXoEAbYu<=5X7Di|V)K4!$)qHj#P zWftxSfjzeEgz<<##*r+R}n5vYAXN@3_es)O-;4TIlE8y*=zOQtD{tvWzbQHPyqk{x}2<}8UO%G4FJG=LPmtv6sQZ9Lw``5 zWp!Nv0L+|!Ul`gk0d8m|jH{ZAIG}d?;~}&FZzZNA1_0D2pgo%+008`%a*|>iUNEO? z=x!?u{u^)S2(m}R?={RBJaPijPxHr{?FV<37rmQ?sMp4aJIomsI(ZwY3Rbcfjp%HJ z^k<4&hWM2iPJu;fi&>4lL1rU1+1y27>NSsLQ1k+=M?+$~1B2rls_pR*UTR`vzCHK8Qcwf`?>+*#SODu_GRgc!i{Cd<-(>0( zI$0P1s^rvwNmwo5P;{K0oYKd*047R+YLF;w0gVCq;fQgZj_xAO|0)jSrSl1#oqW3P z*QS*;00n?xc+nZcr0nSRb6fzuC^^ie+p>t7n}XW^+k|_Q03^gA!unsEh5|&!e!JsA z@I5l%!vQwHno=9ReRX-X7%V_H5N}AX#k)bUxa_fO3}7XhtT<4nb>@Q zlh%*_E`~T6_5o@Hz>oE{WGS-#5T%}1ZTswN_VCBZwa2HgFv|r0YaFVez-fp`^H1cE z(-z8XD!icA#A%|E9)t_p2;*eR&&#RFTPzQQ!LDXqkO&tFshkJnfJ03!2e6En&ZQggQA zmVPsB8U$#gTtu|U)m0)&*bTmFKBUKFI;)mI{{`@o-|MJl6@!HE&j$B?B^8y1%%nX$ z2;+kYKi77^g)eKz7x1BySE4GcsLdR8r{yWn;bVK5c|FU?53w06S%FAp*AyN!^MNcE zs_$i|VYOl{_b>px8U??f!fjjjNP zSfRZ|WtVfuG(NY{y}@AJ=a)m;7$BR2km68_Y;8Masz2YvzZ&jg0RVahFL1+8j{d26 zDYk@%sj6P-Zsqn9vX{zPM>j;-c|*Ltuz*RR1DUL%y_@n*Zvj|=N0GJ2O20I>ZVW5~N#yCL7fM~RMMW)n?)s$!kT#UmkURJAt0p2@>-+d)oD z%1rzps*QC+5sCj49b@oW5g_fbec#k~+A2=NDRm!QXBs(DE1&>3x`hkPuH5v9Up z0eVx<_bDf->SEf}xk%4!+{{L7qE3p-c$;6*uzUn8#H!+UpgrT4fv<9sy7@FN|I9KF>i<4@_7-^Wy)$D%m zVvHTR6iOaBDO+^SiN3g^WLbEy473>mJ8@GF`_`4^buN-Fk-CLa|BI9a(I6 z_^>t)(R7NfqLWMAleh4N{&51mAUH2hc#E;O z<;=pVm3hjJM)R1{p`ac(6a3E+5OTPeJWF+4TMDm|#W(=l3s7oMLhsq#d( zANI*r6}ywYCB2qoyCJw15e3c9lY@SN!xHzTMLqC3nXEHy>}rlzwuaS1H=V_VAT8M7 z;=ZNFT50a~@sfRY5|PRtO5T}o+WNShKDA%=GVbay6@#v-nYnGEps&sxqjT7GPNOE!^f|JNN1XZ!Z%T-9EAglV>Q{NNsfq1ac~AFvNtGeQT*iYjjnpR zt3*&JGSStLO~eIXM}MU%O!_0zt88Zx#;zvhdJkt#iQiPnLQ$m*(Vad4!A6fNFlxQI zv?z@$bmX(E5i(M@$v#gdqnK;)GynOcbAvJ7U;__%^lfc_a_%*Z8)D@2T$?x#(e$`t zaXLgR>GS8M9#-0TxhpoAJ8aoV1lndT0e{o7%KCT)nk5n{;clm6vSKGp+-2pZyuvXr z&06$hoUhh<=NA;7gpwu5(^t!6$P~|2k7k0;H|TY68(AZZxl9dvi7y;odoq#>9SK(- zPMzows*aWpwzd*ATKkXE8f0o!I_)%6antOblMIsWhA*#NDX8GSCGD}_`w48NeMP*b zwy@zb|3v*2cNF8@P2N*xYg{`!Cyi7W>KO_P$OtoSdRg?$ZC(B?Zm~UO@$_5LvMPm` z+<$O5rF~MWQk~m^cKF3(x+#3^%?>Mxv?fimD}JG@Gd%Au)f}V3uZx zI#fLKl3ms#k*`Ip(>~0z!p1q2w!Vxd8^k*YviO)Cl?5g<39*aGd6IF8Bck%P4-=Vj z9(ZS;^Mr?<I+7rVSvCmBzF@WSW0%VUpIQ02qm4eF z=p)7AqNl?_aa>%l#eheNOb+Z^NWCpS-2c0w*&vf)W>G zzE%1pWGx$ui&~R&KDO)3cVj!McFdYymkA2+i$?eF1jf_W2PhH&!XPx-wTOl;po}k`0 z$}t0hDHcR-l&~n9=673=JK2GFSE92DKCm1Q4)+CD-qaX2Oc!eID| zc1DPTHPGRQTId*~B@JNt^gehh<#dfR@*NXh zuu7KVhDc^TZ5#|FwBT4Ay+-wEkHr_J^Eq}(y9s+MN<05b5_>J63k3@Ykyh|DGBtAS z0~Oo*OjUkX0kVRi)KP2u!DAWt@-K$|lrT0rae+3xX44ghXS(L(d<4vpbNgk({Fclx zxO&05tPcek@YwL;cj*?iLYg0?KhKwX4xY7vBz9DJNF3926Qe4tDCftcIQq1oH=H2d zR&)Uuvl+Ve+5^<~^q-fbaOJoW%U&ok4G5OhS!03cd|SD&vp>UALa?npNg&OjbP*4lwdCHPNXVkt?O`rL&2cy_+VcKFH|n#vA)?z)T zKCTah4$#1iM~flL%mLkuVv?f$~UfZ2?j$9Q`mH^0Np$3pY9Z@&c?3`|$d3_dM zVFFA_LdT<9E5K=Zh4GI>*(Lx)aiCLR^5yG$ISQs0krwmoCTNu^15wl%^qMNNvxwZ5u)G0k%a9zv81XUc!JMI zi*TU&k9CL_PAd5b;h+kQ_e2bkCjxZD1Glmg6;nEAhJa8$hKO*$e#tf_9jkPXYZrm) zWM!mcjwuUBN%6AZON1y1Y8(k$CKn_FTf6Ry!{agx&)!}^`kRk@UqpPMy@2~*v$HXS z3W#_qga}4J6p9pmrF8zIT|OJoqsij5-Fn{ zRcb&^eW9F~p+IfKj`d9x%<*f!t2WgcXjIm613k*Y9JZjEO_&!vCNE&tPm4l@Tx5_h z>(l=t(ydTwnLI_3-HLoP{Uvxu_U7#!`0Z=jJ5Twjwb#A=n!m7s1Nv0%YSt0Wcc;CX zQ#$q|IR&gFII>XE!m&4BCQoau&5?;Fr~T$0)k=c^n8a$JGsvFIvrV(a)6Hx`tI%Qg z&{Uhm41Q0&%mhlhq0kOL*54`|_LjT7r$dx$2Vj~keG)WX`aTm;qQ@HfO`NlL+TyRf zT#yj)OQSFo1HN>_3nf!jbyBUw84FxKfINtm$lkI<&vhVcE7#NDtLWs1;F`oXc5HMx zX^2#%0S>phKF;|n3m{0eyio->F7zedf;DGJCSTSSfiv+lzP}kYUw7wqlt>9GkeG2%w4s$vSugJ%Mx=mcPiugj8R!H zFn7VQrsukjZu!;+S%7F&n+3s3uCbSnZHp<-3Y|ECjUCC?w)Ms-Cus?@Z8bV7+OLM& zxg1ano4uYTC4G9kT(;~%q*#Fm88ZR-F~apS>J78M2ynVsUzM?Wp<$hQj$p}ldAVLq zc@KG|6P@lacmM#mPJyp%G>fc{4&9~PZ8!=Qv`R%rQ&z)W(CH)xf`RT3xAA937y!sB z{|g&6ok?k$6tzock$epzoy`>p=}=V4P59PpnT{(+J)pdjvb46*!^!{v?6?ETzXi=>0O_c+&P>-46!V*yS*xSW zYq+z(N}<%87Mq!hU$3tUbTmK1!%Ka@QXU-zf|%HcjdcjzHQh=pt1HEjJesxJvbB|V zwuF1Wogp~DMRNRmYU|k5tIjZPQ_- zG#h*!>v_aU4`k}{EXTh*hOCi`S?N@)X8rMNH+#3;q@VA96;_n{s^5Fdv4BqXFBzG` zUYO9@QPF}CL`Se>RqGd8E-ihji2jt$yu7@mKQv^{SeX`M|9)X|!LVo4*Vy)GGqIIZM2*Pggr!)mG zAS9KZ;V}Sv4LeS@vK@YQXh;w+R7`-)cAB+?)<7?LhjTROtrYiZueb#Pm!Vu#k4bPb z;sezENacx}l)Hmnt>Fr{eSB+e9{Ek}&v)w#uyTE=4s9iY2s(MJGZ{RG4E4NM%Qd`* zl~mncg)(9AF{Rys!nQk_O7lr`Bb6;AEu*zVVM(UFvg!vDJrf@^b!QYo zXhG8*YW}sABn+Lyi<6NL@WJpbr#QM%^_eY!xYcphj+v%q08#zM;ZgC0zuPzzVlvr2 zPpcXAoKqO4{c@d;W5mm^WGc&He3evyW#!5dJNkRY0W)I%nRKZzXe^{p*4=7?J0cZ0 zBzrUFWVCRHM7-DfC=JC--tIE(y;J3S!q!eaVUsf=CDi4R@PvMIE|hyg9^dG$u0&E? zvO@9cUyAfiN?NJ8u5+1K*}5y|5$r|N(+`Et<)dh9pM6q&T{BJQ79-9`(ys3^bOiST zLSrL=@fJ=JE0F=#Gmadbd*V@5@dl|M$V}6fkg{K2y-5ymljf3s95#br+`^UUFvRTW zHbkD5JVoA~@#EX7*wFO;3!GGi_pdb%O$)AJ|LU00SG131St&eJ*)&>RZ_VVtNbRcmLw7$n#(Bp+Al<5D=^!Fus`qz~|rEf!Of~^~2 z4M-7HmC8q!d}boYX})DcE;~&p@U5fxK?k66eOqFAlh~GjngR8~WlP0lLhYnyDM6rP z92A>!f<(QgSr6BHr+73~I7aHp)U7X6=Q`D z%Z$=#Af8f5d3;mui7p>VFvn?pXZ;8Q!d}uI-ts%Ms{DTVevV^Rxo59TEM^d8nMJwuvw$wX$ai6*5-UD(x(k~OM3LYp579#@9WjPDGXj(7lUxp2>xeEgj zOAGawm&g@D`)4Lb6Xt%P^RLiNFZA#-!2InULN=x5Z{h@DO_>HQks>8mwT!l7V%1#l zf8=N%QGGq8UdxudZ>C*qm^9UHmXpucIl&ob{^v24EEi+%iu&QpVR5mU|7gjH*D1HZ zF;OxJFUtH~w@VTcbqW#PCQH?jjc&GHG*oke+5LLoT&hh~08FSc`Y63uHieT=f1nd+QbHZf3tw$^PQczXu)^VIyKqwT_kcV) zH581=>$3ekNDgg`c1eT7uj92{^y39%Z*Y@Qz7Z;1^q2#e@aj;I%T$|ZBN3#3Gzg$c zo@j!S4az`iXB@Uu;CuXfZU@)?Sv?l(GPrfhkk>Hql+Ac;uKCqc*T3UfhOO^0i1QHL zMqxM2s}hwSH_q27uK2%eL_L!?vZ$+DJKDr^ncC-lCMw7-Tc0B1@`mz?Ev zl)L@JK*QIZu2&%i7RtxF%lXl3jHkod!JMlsF)$WtS_IQAi*%Hk^S4pVBec*59}I7C zdvClw@`!qCZRx%f+T&dEJd?jcea!bQeUV3&n?y6LwX<}zx#?*5n5zCwf%g*tG9sdJRCY&W$h=9NBPB| zhnb)q@ju%imfpY4z6VjtP&Q;WT+5tfR0}pH$kmif6~M~XMvd6xWCvtje^9NlBq{I& zSGiadd^$|C;CBANI^p-%j;mq+mCr&V3Nc#Th+rzAs#w5fqVBoaAo=YhvAl+9$iZkk zz6eC-4YDsnr}>B5Owq@8GM5XE%W7fxs3F-5&+K1F8ddfCPk3y|#+lF#w$E95?4irn zPIobwbErvFL!8cw*L*J$G4#IOg6Nh+dzXHWsR$Rxy~U(mx{6AV=Zmq&T)e#Bm_O-D z#(tg<&ciN=-Aq~F!}J#T?RnVPzcMRVcEN0<4pBh5?4MAFjHjMTfUrJTU80*x>my!NDsQ2GDX8zh*tDd@gcN{R#$Gbo^yX^gu1^eajd<0VK zEv6@)ZYA!~?{}jf{HYbSYT`bay7l*%a%;gJ|A_eu z_b_S^KzX<;{i+Bv%An4G*ejqb?Vb2c(2v_Eg$8}^uIQ-nZ@#ObSbU6V=xVr~+$HXM z$v|U83fPzWbhVlpBU~qJbiPnIB9Z@+{d)y1-Jg5$gVU#Z6W2{Nwm-JhA}Tz;=u-vm zXAA4P{*H%aa|h*sR>iz^m+7{ST=e$*=M` z!1(y$_Z43<;B-T%hdLG*QN7z2hls6Ws(wQASXT%m$wqgrAfTr?B|iqWPGWnC*n;}) z-XKa@%OApGzV4=JnEjy7fK266R0nZXL}=Fr(!3Xfa7|+_c~g2w&gY%c#TMZDfq}_R zz&LsTqBAaZD7jhNfBhAQA|T(0F$rE08n$ycYp0#h%v^93%o}A{0!s96+64m@0?_Kt zvL3(Jjio&6t#if;m$FxTwN|xNg?wa1W?BXp!H6DCHlKgiee49CjDEPcx@p0;bC>A3 zD@N06zNtOfpC(sRNbK-N6a?%Vr7qlenuG^|ho65VIODg9M=7W=jldeGh zwtnV-FkcydFL{P8Gh^|Q#C{I}0Uf5~z%je#5rW!^h_5AcbNwM4OY@;Wupt_=P(ewr zerZp*HNfHg`1rIV`5=pBZmjp>wR=hA?Od~^SvRcDuGaSr($lJy7LL{2L6gt>#V&Q{ z6TYQ%UI!24(hARqa!sk69Cr7iK^#;S&+Q}G0P!P~Ynu@I$-A{_w-@PEL*V7+a&+t1 zE=kvzCzzhb#Ctom33ktsR!6km-l6>2pTN3$xSN`Gd2R%B|)BSzO4A%Xn0GpI2 zlDB3~uc{Ub3C`QxW%gUktbeV*G;yRZbhG!VN38qnvl6ZooUnI5m)~R9@y^BjI)-iq zE5Z6^e3mV+C}?93TozTPBfVDFS*|}oh=a2%!;X??Nmfv{C6R9Hwq)trEw84-aLGt6 zP%>Agb?{=;{1Xl9slRT;J5@^#wXe@5bf(kfyUJ@x-hmwo?9)Co2C@7bhCq}SoWi9^ zYv5Zwi$dvyE&G&wH1AB>k$*+M_|a%GNU;81CZwVJS$kpl=iFfW8loR>>PqJKtzCmk z@T|lWyfqe?mMo`|?!9sE&<`{r2}i;RhhCUu$6vKX=y1!Ol`2Dex)(&e&BoNaO=H@r zs3=^I-KZ~%_F-H1X~NxYsA_HR)Q+OM=Pj^bxPVN8$9+rkDpz$AR;?IzJ+b$m*~|~F zUZ(wM#!ptWJtMsMX=b%WMW#x)_uU%X=PGY=WD2#W?ppF}E21tdL4j{!`Dq6#BI;MK z=Q*A7*dlGin(Fgx_clHo*Lii_XDY8dFW*GCbL(K`0(?t7pB zsU07lpaxUC7+U*O@T=ruShtFrh_Xq1+abxYRzPiWRIk(Sx1gVjraH+K4WW~F`A2lT z_0OrnehE?X&*L%p2((>iB(w)FpDJ&shtHpXc1`uH9#bzYMsq^vwrqzbTg6~@v(lfk zqTxrsH+X+e~>WpOaSPW?< zNpWgEAFy*x=sR|QCU)U=PN|Bw7H!+#cm=j_Xo1kFp2^0yDL$SP_o+yKN z2O{T|S)swsSbdjrWO`}&L&L|~q|nXh)jBijlHUAAu=P(1-^Yn@+D{%G+TG9uCvIb= zc08F#vEA1Wm=N0!S$~X!sezz|j-sVk5R%9*0v|Hlc^IFuV%((dA4UGe8}#+)ZS2Sg zFCER=a1vYgIOvSaXlioqlA$sc&V|Oha9>QXtF@POZHDOuKi2k-7s!vXbzT8~f#+&& znI)J6h@SF%YfbYTYErDVYKB74f*z}$Bz&cUXs~> z{dJ|i*q$8dFYthpOIdq)1iefz0c%$gjpxQ?)2y>{g+>yM2O zUoCu$8F>UDv3vqXZ=y_fVVVWba`Jt8EF-dFw|_FtBd)Z;2-ciryv^fI_=i)a{pHn_ z|0Ng|ia~+OVSoSH=^`@7R8jh{7ihg}>M*-*JtXjDbN&!0@- z3T<5pWfIt(PXQ!*_Rhx?jKf2^uPBbj@#LtC(3YGG3}EQ39;<-0{23i?GYT!|1Ivd6x#p? zyc*DfH-Cx8(LpVF4X-uk)b2-g`40DXXFq?QYZcU7VgD1P$0~tCyJ3)0vnG4Z;(^@o zy5fh<(sF?!Biw>v*hW?;N)3Mjzb#-ib@osLi$YrFs^M-_^H_a9u=xXh6;`jt3Gpp$ zD`gi)nF3#T>V#7Ro#Y6HwSQ5nQ8@fzX(g6TPv=&2x80>q%@fg^6fA1mil8CpHY^}Y zZR+XoifT9EJPH~9#{CvWZz}BbHWSh^dxCXYo}=Y-RI!=!DX_?yZ$&C!HgG(XvC@P{ z619~JKOb&KQ?aRRM^>~IhHZa0Iq>eVD4QTUJPjGR?q#>DA>=1+2|GB-0Wm1eY z(DbfKYQwIQ%9?QFK9N}lq5yO#7g;f$cJ`nq^P3F6>Z1A*>~yFxZxwLyxDuU5?%r;B ziPEr~@4BTHcZSJmkT%7x*2Xm?xb^@HsA_cdf1P;S)vE{(=j+ITUTQi5uD zID(DBYgbmIN`@0xhR??P z8CBs29#(bOMc{9DZI#ijsk(y~WObWXIP<~KF0+J{(xiPTTQ?IZ{Hoz~1f0iosb z1r`F9i(_Vi!+~I@)wy8zL|sW+3oa_?Y#zbgOzKFj_{QYk);?bsR!~%I?;AK)NT&lk zyRo|J*kge`Cf!&Ig6uyo3<^`b^R!8(N{yVXb1=eY4COl@<+*8r(Unvk$rZO?ys0VJ zE}(k!;{hGngd@&)vH96rvBsEkHZ)~y;75$6$q@s4Dglu)`g~dDnTA5;^J7Jh!P?rr z-lR^$y1gW81?`LpgG&DVx>vS6>0!4!PuM8i+@0yh^|925q`eO2pfIA<$W7qdR>1Y_ z_XM7%3^dd;;(o$!a?18~gg<$X?Ju)Eep5|BLgahKQ+)3;wr*#Y%w)gYxekmyz11`Q zu?g>z5~A~u*>!ITnV=Ddur3-R9j&6^K8O!dKm*KP`>Kca%V(eNMAr8WR;#$8&V^pG^O>gD zKwbJSrohVsNMT{cx^2KXlqt-ipu_!^SVB#=l}EQ{`poipAH&F0aoJ$l)6cyF}5N8tm47?Ey0BR{(wUg+?hMJtMaYo6`m-pY7+{KEw53+0o2K;?t9 zb`?SG-hR&M68+Z<<1Nl{2}ijS{*Trs^q+Gdm~a&{x&{$Gp1Tqy`@Sg#MAzQMeXxZF z`R0;}&U>_EjIc~_F=bJKtteo|NdJd!AyEAnhUXG|-o8DkwrrUYx(28I3~|0tvVliH z(Q*Nch7umCxqgqm+kQ!E{uIBvXqcuPei{9(T;_eiiP^tD@c#|=To#MMy3~;QVaxxa z_FZc%PLkri12)L0-g0`?|IJiv#bqu@_})@}lXx&bVdHMCVv6j;T4%9w|95a%lW9Ay zCi^MNQu0RX_bwWw?h7+1va(=m?BUyR>x)Uz#xa)1Rinv1wUJ*TW2)N#AwyD#AdD6Y zE{OALgdYOmy=kN-Bj7lak#Lx78pYlKz3N}sGRL`%xk}VUB-Aw9%1`fpcu98O#ro}f z8iW2}y)mibdy1>u&`8xI`CU--sW{Bd zMyiTLZ&$}AN@_pupc;gt{qk_89%y{UL1bS$>_p;-gjR8_lEyFUWE7++NiIgNlbgqM z5u+}W#puWRnS$m?%8@LKX#75=T7I$mhF#P!ZRv=WNM0TRbfRTk6C0UgUu%di^Tv63 zEX6k^7@{eYN*tVsory=Q@Dw`Mspc#kcNfcyLe(K@?ixC=+Tzv;N>! z5?qqCn{Ua$L77KkZH=ZOi;4XA?~5xLK^75@rs8@35p+mQ2DJ>@;foByh3Iue0ym@C zNM!3-4hD1UNn?+HA|1)JQ1072_y@zG{-Czpg-X@YccVY>{P6HaJEZ0Idpi{w(}D4W zzGwSEv4GHb+LUABOZ1v=2Z_zcXe}>3Zu<4%X+Q*|E1qmEnb!;Ab5`ixmcVe;h>X<8 zDT6&657{Do7bW;URQql@K`EQa5n@Y;Voie@M7N~JZv*ePCdI^d`_!ge|j5E>;cYL^{Bd z_M<1wKgIQK=EDOsGQdcXi%nYl8yK59F}v@3mWg=Jc1?|t;jb&J+T?m4Z#H77o zx^eGHfvt<$Wo@}R+mW~Qc)HekLd(229o5!lY4=SvbltPWn$j)+c{!+{ut`9T8$RwR z@;y|B8B0(P#&i0?Yep@!RqK!xM4m`q?zSH^-s+VLK8PH3tPm3}r#F21w7C{Arx}{= z_&A*3qZ}%)eP7};39}Q$irsJayNl%f~r|w3B850^P zRwzol_seV>XT@bG`Z#%zx}%_>O_Tl&Bn}b{QQqpJWLpodP>D6-xA9RuJnOz`P+*Pf zEJ^l!{U&a>>}GHT$^O7STd`C|M&Ds`EAzX^Z26}xH0!-MjT2K7``e5dj;k;WdZ9A^ zcl#v`1=!;~HF{#IUr5$ei7{&CP=}YXJxM&$%L^!O09}15&&MJRZBVBrY(8K7w}V;z z$tb%C%}Rzw6e`NGVM4%V%Q+~~w|&Q0IpgulTs(fT;Vu`}UsD$cb^;nqVty>xcUta0 z>XprOxL}PnkbMtTo4~pU;D=5H4KTc;b4N;bdG5a6hsfOb2=*Y{vPGXmHYZcghzKxe zOZp=pXe16MySEcMKLf=J8wTkX6)k;F#upM4enQ0)L{`Fq48rWS{N-L_%{;di58nGK z0z!dJCZyr7ukF?-zoHe1VCB}LrTgug6OJNPfY~|@K6O>`DV-ZH5P~Q~_E>sYlu5r4 zgjCI?M;r`KV-ik7rxd(w!53{L)b%-wx)|6fNQ_KP0jVAd15rq+{^lXcW$`73{_ zs9Zr_q)Mk^%wTvOA&2JcGN#VExUn;J@5}zJvOjB{&@^2n8WonSt;aJTMm$h7;-8AiyH#Hp&v(ItX!x*#n@nWWyL#1>%&pyb-oIY#dE&3S zO@RoOwYTdtyUZ-wc5DKJH^TSl{Y(avttidtE?{dM$C0FT|XU|ipQ5a$| zs9Z8fTK_N&Ly+wPA$$BIuPF{ohc_!<6wiY{RTz<8p49$7$@NaB(B8brU<3Z}$Hw<- zg3QQ7bt+O-3|t_67jKHdM}5yn(^p}1;_DGV(k>AmZtjwZu&*6Xa5-L&Q3<$fZfcvv z_3xdO+e$L)L$ddvlFeK^=?_BGPQvvl6wA8Z(#=F`Yn07Jf7V8-wpn!TSTWx!X^EKjUhi}k;5_~wE1Kg_;|$E zeVO0s+4oe{%I8|$wedky#x1+DQQq zboz#gYl%9&`)C&I&(HKcW8BKI=aSSxf|BnqSYT0z288`KNQW1bcFCw+&BR~6VW$)n z?zm9oFe|h^3PYZqHgq*eOp%HF5=2A78z3SaXa1v9Xy6>l+AEb=LWv6vNA|Re$|e~w#VIn*qrr8 z-W@(zj9g583F-buj{bX(DAm$yQX&Zl*~_dj%+Wr{JFiR)0_F995i7^L<7%8rDr5mz z6usWpyRzD(i;5nr6}Bwui>+cwcgfaA7fW>5P^cozy3=|4Hn&=~Z+IY%ue;0;sXnzl zo*f=N7%J+-1PY`XNen+dui(D_a9i463q{T}55oSt?I@A1>xum5xiVBoGs(}e5l{hD zvX^FZv{f!NTB0M}|6Lub&~mG6A?w#NL(VD^2oa@B1c(xcCv%#9J3@wy5rqZd&urOs z=$BP8)W?17Pg9;C^Z$>{e<9cc2*DFUkCFVDaV|oyPnSzoHv@y`H`Gqad7O8i`>Z0^;}v2NP&KNko!2i(&*KBm1bkID zUCVVtqf`TAipYN=zN%nUluat=xfUm=x>KEcCVRLTWALogRt-Q7_@{sE@8Kp+Qe?F4 zKf$i=T0i}t`qD)a@N*vuP{c7JoLnZo4Kmg5QhZ~(CYw3%R`}@vo92eF1vOqHob$l& z2C;tDw}*?YS*5cvsO*T0DiPoy9vXQA)xs5f>Kdlir}`WCbRXNm0P_De^;XNNv}0l? z$tOnw7Yt;Im=^%Z04RaZi4XM54Lo)M$v4g}+?$Mv zcA40J3NHK@heAeJa#dt%rK{k=3Yhzy`aweyOn)gR&TjGsU%$?LI&5b5LSF+PwM)>w zZsxl%;0{zMC;68#=%?9=6ONy=wfw&L3FFs=o%BHn5&}I1RF=q%Z>A)9HNsh#NJtlH z(ySy^=Cd%Ind`GAzwmc~W zDJY@-N;geRke}#9t6$#skD=kmp>&U)K}W?-JGCH0%0%v=Qwen{-d4#*=KBmRd|7D( zfZrxmp@+hxfOt)_PcyfXPe9H6-SmK>B3T=^endkGwS5pOr1R^IK6}->TIOkx?zlx* zbc7+IrY_H{ihc*?)B96RAItA*Lu(6rft$?i4<-qqed-Sapo@nUBlfU!_a&Y8c}ZeiZ}e1AGQg|+mg(KBM~l>zv2Ea;Z2JR0!x_a03RSBm^NDF=2@I=p+KxLPmg_l*(g+!s)_ zF%BpC9`S1&bvJLR?vOo?3;xqRz{+9aOBaFkODiI^q|_)mTCQOaKFAcQC=P*+>XjUo zR{!9c%*KAAR&c1g__|a%qz%2z0sA#5x+dwO-wy0}Vh~+XQ;ri{j0iQ(t>LxbWV&nV zDs++0snN{WxH)t1(*okH*>LF)Qj5x(Wp!+Nd$tkuq)=9ns9G;{Zc(%mmUP{&Z$gGV zDxt@cxJiSH-#IwC7w+(Oovp{e{qlN)`M(s~{(F-F*3oZBpPbjoH|57R|CQyWlqGA$ HO+x-3W5x8} literal 0 HcmV?d00001 diff --git a/android/java/res/drawable-xxhdpi/ic_ad_free_videos.png b/android/java/res/drawable-xxhdpi/ic_ad_free_videos.png new file mode 100644 index 0000000000000000000000000000000000000000..fb6a2ca1ce866c9da0dc7fb4d5c3c96ebbb09d20 GIT binary patch literal 19493 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 VRPXoY4|o6o literal 0 HcmV?d00001 diff --git a/android/java/res/drawable/ad_free_card_bg.xml b/android/java/res/drawable/ad_free_card_bg.xml new file mode 100644 index 00000000000..fadfc62d77f --- /dev/null +++ b/android/java/res/drawable/ad_free_card_bg.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/android/java/res/layout/fragment_ad_free_callout_dialog.xml b/android/java/res/layout/fragment_ad_free_callout_dialog.xml new file mode 100644 index 00000000000..e8509e73f6b --- /dev/null +++ b/android/java/res/layout/fragment_ad_free_callout_dialog.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + +