Address PR comment
This commit is contained in:
@@ -49,7 +49,7 @@ brave_java_sources = [
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/sponsored/NTPUtil.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/sponsored/SponsoredLogo.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/sponsored/SponsoredTab.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/sponsored/NewTabListener.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/sponsored/NewTabPageListener.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/sponsored/RewardsBottomSheetDialogFragment.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/onboarding/BraveRewardsOnboardingFragment.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/onboarding/BraveRewardsService.java",
|
||||
@@ -118,7 +118,8 @@ brave_java_sources = [
|
||||
"../../brave/android/java/org/chromium/chrome/browser/util/ConfigurationUtils.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/util/LocaleUtils.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/util/ImageUtils.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/widget/tile/BraveTileWithTextView.java"
|
||||
"../../brave/android/java/org/chromium/chrome/browser/widget/tile/BraveTileWithTextView.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/tabmodel/BraveTabCreator.java"
|
||||
]
|
||||
|
||||
if (brave_rewards_enabled) {
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.chromium.chrome.browser.ntp;
|
||||
|
||||
import android.os.Build;
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
@@ -13,9 +12,15 @@ import android.view.ViewGroup;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ntp.NewTabPageLayout;
|
||||
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.browser.ntp.NewTabPageLayout;
|
||||
import org.chromium.chrome.browser.suggestions.tile.SiteSection;
|
||||
import org.chromium.chrome.browser.explore_sites.ExploreSitesBridge;
|
||||
import org.chromium.chrome.browser.BraveRewardsHelper;
|
||||
import org.chromium.chrome.browser.ChromeTabbedActivity;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModel;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.SponsoredImageUtil;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.NTPUtil;
|
||||
import org.chromium.chrome.browser.settings.BackgroundImagesPreferences;
|
||||
|
||||
public class BraveNewTabPageLayout extends NewTabPageLayout {
|
||||
@@ -40,11 +45,39 @@ public class BraveNewTabPageLayout extends NewTabPageLayout {
|
||||
mBraveStatsView = (ViewGroup) findViewById(R.id.brave_stats);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertSiteSectionView() {
|
||||
ViewGroup mainLayout = findViewById(R.id.ntp_main_layout);
|
||||
mSiteSectionView = SiteSection.inflateSiteSection(mainLayout);
|
||||
ViewGroup.LayoutParams layoutParams = mSiteSectionView.getLayoutParams();
|
||||
layoutParams.width = ViewGroup.LayoutParams.WRAP_CONTENT;
|
||||
// If the explore sites section exists as its own section, then space it more closely.
|
||||
int variation = ExploreSitesBridge.getVariation();
|
||||
if (ExploreSitesBridge.isEnabled(variation)
|
||||
&& !ExploreSitesBridge.isIntegratedWithMostLikely(variation)) {
|
||||
((MarginLayoutParams) layoutParams).bottomMargin =
|
||||
getResources().getDimensionPixelOffset(
|
||||
R.dimen.tile_grid_layout_vertical_spacing);
|
||||
}
|
||||
mSiteSectionView.setLayoutParams(layoutParams);
|
||||
|
||||
ViewGroup mBraveStatsView = (ViewGroup) findViewById(R.id.brave_stats_layout);
|
||||
int insertionPoint = mainLayout.indexOfChild(mBraveStatsView) + 1;
|
||||
mainLayout.addView(mSiteSectionView, insertionPoint);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxTileRows() {
|
||||
SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences();
|
||||
if(sharedPreferences.getBoolean(BackgroundImagesPreferences.PREF_SHOW_BACKGROUND_IMAGES, true)
|
||||
&& (Build.VERSION.SDK_INT > Build.VERSION_CODES.M || (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP))) {
|
||||
SharedPreferences mSharedPreferences = ContextUtils.getAppSharedPreferences();
|
||||
boolean isMoreTabs = false;
|
||||
ChromeTabbedActivity chromeTabbedActivity = BraveRewardsHelper.getChromeTabbedActivity();
|
||||
if(chromeTabbedActivity != null) {
|
||||
TabModel tabModel = chromeTabbedActivity.getCurrentTabModel();
|
||||
isMoreTabs = tabModel.getCount() >= SponsoredImageUtil.MAX_TABS ? true : false;
|
||||
}
|
||||
|
||||
if(mSharedPreferences.getBoolean(BackgroundImagesPreferences.PREF_SHOW_BACKGROUND_IMAGES, true)
|
||||
&& NTPUtil.shouldEnableNTPFeature(isMoreTabs)) {
|
||||
return 1;
|
||||
} else {
|
||||
return 2;
|
||||
|
||||
@@ -5,38 +5,19 @@
|
||||
|
||||
package org.chromium.chrome.browser.ntp;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.View;
|
||||
import android.view.Gravity;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.Button;
|
||||
import android.view.ViewTreeObserver;
|
||||
import java.util.Calendar;
|
||||
import android.widget.Toast;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.drawable.GradientDrawable;
|
||||
import android.graphics.Color;
|
||||
import android.app.Activity;
|
||||
import android.os.Build;
|
||||
import android.graphics.LinearGradient;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.PorterDuffXfermode;
|
||||
import android.graphics.Shader;
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.style.ClickableSpan;
|
||||
@@ -44,56 +25,35 @@ import android.text.style.ForegroundColorSpan;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.text.TextPaint;
|
||||
import android.content.Intent;
|
||||
import android.support.annotation.NonNull;
|
||||
import java.io.File;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import android.net.Uri;
|
||||
import android.os.Handler;
|
||||
|
||||
import org.chromium.base.TraceEvent;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.PathUtils;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.ApplicationStatus;
|
||||
import org.chromium.chrome.browser.ntp.NewTabPageView;
|
||||
import org.chromium.chrome.browser.preferences.BravePrefServiceBridge;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.suggestions.tile.TileGroup;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabImpl;
|
||||
import org.chromium.chrome.browser.tabmodel.TabLaunchType;
|
||||
import org.chromium.chrome.browser.ui.widget.displaystyle.UiConfig;
|
||||
import org.chromium.chrome.browser.ui.widget.displaystyle.ViewResizer;
|
||||
import org.chromium.chrome.browser.util.ViewUtils;
|
||||
import org.chromium.chrome.browser.settings.BackgroundImagesPreferences;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.NTPImage;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.BackgroundImage;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.SponsoredImage;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.NewTabListener;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.NewTabPageListener;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.SponsoredImageUtil;
|
||||
import org.chromium.content_public.browser.LoadUrlParams;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.RewardsBottomSheetDialogFragment;
|
||||
import org.chromium.chrome.browser.BraveAdsNativeHelper;
|
||||
import org.chromium.chrome.browser.BraveRewardsPanelPopup;
|
||||
import org.chromium.chrome.browser.BraveRewardsObserver;
|
||||
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
|
||||
import org.chromium.chrome.browser.tab.EmptyTabObserver;
|
||||
import org.chromium.chrome.browser.tab.TabObserver;
|
||||
import org.chromium.chrome.browser.tabmodel.TabSelectionType;
|
||||
import org.chromium.chrome.browser.download.DownloadUtils;
|
||||
import org.chromium.ui.base.DeviceFormFactor;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModel;
|
||||
import org.chromium.chrome.browser.util.LocaleUtils;
|
||||
import org.chromium.chrome.browser.util.ConfigurationUtils;
|
||||
import org.chromium.chrome.browser.util.ImageUtils;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.NTPUtil;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.SponsoredTab;
|
||||
import org.chromium.chrome.browser.tab.TabAttributes;
|
||||
|
||||
import static org.chromium.chrome.browser.util.ViewUtils.dpToPx;
|
||||
|
||||
@@ -132,7 +92,7 @@ public class BraveNewTabPageView extends NewTabPageView {
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M || (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !sponsoredTab.isMoreTabs())) {
|
||||
if (NTPUtil.shouldEnableNTPFeature(sponsoredTab.isMoreTabs())) {
|
||||
NTPImage ntpImage = sponsoredTab.getTabNTPImage();
|
||||
if(ntpImage == null) {
|
||||
sponsoredTab.setNTPImage(SponsoredImageUtil.getBackgroundImage());
|
||||
@@ -161,7 +121,11 @@ public class BraveNewTabPageView extends NewTabPageView {
|
||||
constructedTimeNs);
|
||||
|
||||
mTab = (TabImpl) tab;
|
||||
sponsoredTab = mTab.getSponsoredTab();
|
||||
if (TabAttributes.from(tab).get(String.valueOf(((org.chromium.chrome.browser.tab.TabImpl)tab).getId())) == null) {
|
||||
SponsoredTab mSponsoredTab = new SponsoredTab();
|
||||
TabAttributes.from(tab).set(String.valueOf(((org.chromium.chrome.browser.tab.TabImpl)tab).getId()), mSponsoredTab);
|
||||
}
|
||||
sponsoredTab = TabAttributes.from(tab).get(String.valueOf(((org.chromium.chrome.browser.tab.TabImpl)tab).getId()));
|
||||
|
||||
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
|
||||
NTPImage ntpImage = sponsoredTab.getTabNTPImage();
|
||||
@@ -210,7 +174,7 @@ public class BraveNewTabPageView extends NewTabPageView {
|
||||
mEstTimeSavedCountTextView.setText(getBraveStatsStringFromTime(estimatedMillisecondsSaved / 1000));
|
||||
|
||||
if(mSharedPreferences.getBoolean(BackgroundImagesPreferences.PREF_SHOW_BACKGROUND_IMAGES, true)
|
||||
&& (Build.VERSION.SDK_INT > Build.VERSION_CODES.M || (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !sponsoredTab.isMoreTabs()))) {
|
||||
&& NTPUtil.shouldEnableNTPFeature(sponsoredTab.isMoreTabs())) {
|
||||
mAdsBlockedTextView.setTextColor(mNewTabPageLayout.getResources().getColor(android.R.color.white));
|
||||
mHttpsUpgradesTextView.setTextColor(mNewTabPageLayout.getResources().getColor(android.R.color.white));
|
||||
mEstTimeSavedTextView.setTextColor(mNewTabPageLayout.getResources().getColor(android.R.color.white));
|
||||
@@ -283,7 +247,7 @@ public class BraveNewTabPageView extends NewTabPageView {
|
||||
NTPUtil.updateOrientedUI(mTab.getActivity(), mNewTabPageLayout);
|
||||
|
||||
if(mSharedPreferences.getBoolean(BackgroundImagesPreferences.PREF_SHOW_BACKGROUND_IMAGES, true)
|
||||
&& (Build.VERSION.SDK_INT > Build.VERSION_CODES.M || (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !sponsoredTab.isMoreTabs()))) {
|
||||
&& NTPUtil.shouldEnableNTPFeature(sponsoredTab.isMoreTabs())) {
|
||||
ViewTreeObserver observer = mNewTabPageLayout.getViewTreeObserver();
|
||||
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||
@Override
|
||||
@@ -445,7 +409,7 @@ public class BraveNewTabPageView extends NewTabPageView {
|
||||
private void checkForNonDistruptiveBanner(NTPImage ntpImage) {
|
||||
int brOption = NTPUtil.checkForNonDistruptiveBanner(ntpImage, sponsoredTab);
|
||||
if (SponsoredImageUtil.BR_INVALID_OPTION != brOption) {
|
||||
NTPUtil.showNonDistruptiveBanner(mTab.getActivity(), mNewTabPageLayout, brOption, sponsoredTab, newTabListener);
|
||||
NTPUtil.showNonDistruptiveBanner(mTab.getActivity(), mNewTabPageLayout, brOption, sponsoredTab, newTabPageListener);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -483,7 +447,7 @@ public class BraveNewTabPageView extends NewTabPageView {
|
||||
}
|
||||
};
|
||||
|
||||
private NewTabListener newTabListener = new NewTabListener() {
|
||||
private NewTabPageListener newTabPageListener = new NewTabPageListener() {
|
||||
@Override
|
||||
public void updateInteractableFlag(boolean isBottomSheet) {
|
||||
isFromBottomSheet = isBottomSheet;
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
package org.chromium.chrome.browser.ntp.sponsored;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Build;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.view.ViewGroup;
|
||||
@@ -153,7 +154,7 @@ public class NTPUtil {
|
||||
return SponsoredImageUtil.BR_INVALID_OPTION;
|
||||
}
|
||||
|
||||
public static void showNonDistruptiveBanner(ChromeActivity chromeActivity, View view, int ntpType, SponsoredTab sponsoredTab, NewTabListener newTabListener) {
|
||||
public static void showNonDistruptiveBanner(ChromeActivity chromeActivity, View view, int ntpType, SponsoredTab sponsoredTab, NewTabPageListener newTabPageListener) {
|
||||
ViewGroup nonDistruptiveBannerLayout = (ViewGroup) view.findViewById(R.id.non_distruptive_banner);
|
||||
nonDistruptiveBannerLayout.setVisibility(View.GONE);
|
||||
|
||||
@@ -197,7 +198,7 @@ public class NTPUtil {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(SponsoredImageUtil.NTP_TYPE, ntpType);
|
||||
rewardsBottomSheetDialogFragment.setArguments(bundle);
|
||||
rewardsBottomSheetDialogFragment.setNewTabListener(newTabListener);
|
||||
rewardsBottomSheetDialogFragment.setNewTabPageListener(newTabPageListener);
|
||||
rewardsBottomSheetDialogFragment.show(chromeActivity.getSupportFragmentManager(), "rewards_bottom_sheet_dialog_fragment");
|
||||
rewardsBottomSheetDialogFragment.setCancelable(false);
|
||||
|
||||
@@ -237,28 +238,27 @@ public class NTPUtil {
|
||||
}, 1500);
|
||||
}
|
||||
|
||||
public static NTPImage getNTPImage() {
|
||||
SharedPreferences mSharedPreferences = ContextUtils.getAppSharedPreferences();
|
||||
public static boolean shouldEnableNTPFeature(boolean isMoreTabs) {
|
||||
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.M
|
||||
|| (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !isMoreTabs)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mSharedPreferences.getBoolean(BackgroundImagesPreferences.PREF_SHOW_SPONSORED_IMAGES, true)
|
||||
&& SponsoredImageUtil.getSponsoredImages().size() > 0
|
||||
public static NTPImage getNTPImage() {
|
||||
SharedPreferences mSharedPreferences = ContextUtils.getAppSharedPreferences();
|
||||
if (shouldShowSponsoredImage()
|
||||
&& mSharedPreferences.getInt(BackgroundImagesPreferences.PREF_APP_OPEN_COUNT, 0) == 1
|
||||
&& SponsoredImageUtil.getTabIndex() == 2
|
||||
&& BraveAdsNativeHelper.nativeIsLocaleValid(Profile.getLastUsedProfile())
|
||||
&& !BravePrefServiceBridge.getInstance().getSafetynetCheckFailed()
|
||||
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)) {
|
||||
&& SponsoredImageUtil.getTabIndex() == 2) {
|
||||
SponsoredImage sponsoredImage = SponsoredImageUtil.getSponsoredImage();
|
||||
SponsoredImageUtil.incrementTabIndex(3);
|
||||
return sponsoredImage;
|
||||
}
|
||||
|
||||
if (mSharedPreferences.getBoolean(BackgroundImagesPreferences.PREF_SHOW_SPONSORED_IMAGES, true)
|
||||
&& SponsoredImageUtil.getSponsoredImages().size() > 0
|
||||
if (shouldShowSponsoredImage()
|
||||
&& SponsoredImageUtil.getTabIndex() != 1
|
||||
&& SponsoredImageUtil.getTabIndex() % 4 == 0
|
||||
&& BraveAdsNativeHelper.nativeIsLocaleValid(Profile.getLastUsedProfile())
|
||||
&& !BravePrefServiceBridge.getInstance().getSafetynetCheckFailed()
|
||||
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)) {
|
||||
&& SponsoredImageUtil.getTabIndex() % 4 == 0) {
|
||||
SponsoredImageUtil.incrementTabIndex(1);
|
||||
return SponsoredImageUtil.getSponsoredImage();
|
||||
} else {
|
||||
@@ -266,4 +266,23 @@ public class NTPUtil {
|
||||
return SponsoredImageUtil.getBackgroundImage();
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean shouldShowSponsoredImage() {
|
||||
SharedPreferences mSharedPreferences = ContextUtils.getAppSharedPreferences();
|
||||
if(mSharedPreferences.getBoolean(BackgroundImagesPreferences.PREF_SHOW_SPONSORED_IMAGES, true)
|
||||
&& SponsoredImageUtil.getSponsoredImages().size() > 0
|
||||
&& shouldShowImageForRewards()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean shouldShowImageForRewards() {
|
||||
if(BraveAdsNativeHelper.nativeIsLocaleValid(Profile.getLastUsedProfile())
|
||||
&& !BravePrefServiceBridge.getInstance().getSafetynetCheckFailed()
|
||||
&& ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_REWARDS)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.chromium.chrome.browser.ntp.sponsored;
|
||||
|
||||
public interface NewTabListener {
|
||||
public interface NewTabPageListener {
|
||||
void updateInteractableFlag(boolean isFromBottomSheet);
|
||||
void updateNTPImage();
|
||||
}
|
||||
+11
-8
@@ -46,6 +46,7 @@ import org.chromium.chrome.browser.settings.BackgroundImagesPreferences;
|
||||
import org.chromium.chrome.browser.customtabs.CustomTabActivity;
|
||||
import org.chromium.chrome.browser.BraveRewardsHelper;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModel;
|
||||
import org.chromium.chrome.browser.tab.TabAttributes;
|
||||
import org.chromium.ui.base.DeviceFormFactor;
|
||||
import org.chromium.chrome.R;
|
||||
|
||||
@@ -56,7 +57,7 @@ public class RewardsBottomSheetDialogFragment extends BottomSheetDialogFragment{
|
||||
private static final String BRAVE_REWARDS_LEARN_MORE = "https://brave.com/faq-rewards";
|
||||
|
||||
private int ntpType;
|
||||
private NewTabListener newTabListener;
|
||||
private NewTabPageListener newTabPageListener;
|
||||
|
||||
public static RewardsBottomSheetDialogFragment newInstance() {
|
||||
return new RewardsBottomSheetDialogFragment();
|
||||
@@ -75,7 +76,7 @@ public class RewardsBottomSheetDialogFragment extends BottomSheetDialogFragment{
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
newTabListener.updateInteractableFlag(true);
|
||||
newTabPageListener.updateInteractableFlag(true);
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@@ -95,7 +96,7 @@ public class RewardsBottomSheetDialogFragment extends BottomSheetDialogFragment{
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
newTabListener.updateInteractableFlag(false);
|
||||
newTabPageListener.updateInteractableFlag(false);
|
||||
|
||||
boolean isTablet = DeviceFormFactor.isNonMultiDisplayContextOnTablet(getActivity());
|
||||
if(isTablet || (!isTablet && ConfigurationUtils.isLandscape(getActivity()))) {
|
||||
@@ -105,8 +106,8 @@ public class RewardsBottomSheetDialogFragment extends BottomSheetDialogFragment{
|
||||
}
|
||||
}
|
||||
|
||||
public void setNewTabListener(NewTabListener newTabListener) {
|
||||
this.newTabListener = newTabListener;
|
||||
public void setNewTabPageListener(NewTabPageListener newTabPageListener) {
|
||||
this.newTabPageListener = newTabPageListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -304,9 +305,11 @@ public class RewardsBottomSheetDialogFragment extends BottomSheetDialogFragment{
|
||||
private void reloadTab() {
|
||||
ChromeTabbedActivity chromeTabbedActivity = BraveRewardsHelper.getChromeTabbedActivity();
|
||||
if(chromeTabbedActivity != null) {
|
||||
TabImpl currentTab = (TabImpl) chromeTabbedActivity.getActivityTab();
|
||||
currentTab.getSponsoredTab().setNTPImage(SponsoredImageUtil.getBackgroundImage());
|
||||
newTabListener.updateNTPImage();
|
||||
Tab currentTab = chromeTabbedActivity.getActivityTab();
|
||||
SponsoredTab sponsoredTab = TabAttributes.from(currentTab).get(String.valueOf(((TabImpl)currentTab).getId()));
|
||||
sponsoredTab.setNTPImage(SponsoredImageUtil.getBackgroundImage());
|
||||
TabAttributes.from(currentTab).set(String.valueOf(((TabImpl)currentTab).getId()), sponsoredTab);
|
||||
newTabPageListener.updateNTPImage();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,12 +5,10 @@
|
||||
|
||||
package org.chromium.chrome.browser.ntp.sponsored;
|
||||
|
||||
import android.os.Build;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.browser.settings.BackgroundImagesPreferences;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.NTPImage;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.NTPUtil;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.NewTabListener;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.SponsoredImageUtil;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModel;
|
||||
import org.chromium.chrome.browser.ChromeTabbedActivity;
|
||||
@@ -21,7 +19,6 @@ public class SponsoredTab{
|
||||
private int tabIndex;
|
||||
private boolean mShouldShowBanner;
|
||||
private boolean isMoreTabs;
|
||||
private NewTabListener newTabListener;
|
||||
|
||||
public SponsoredTab() {
|
||||
ChromeTabbedActivity chromeTabbedActivity = BraveRewardsHelper.getChromeTabbedActivity();
|
||||
@@ -30,7 +27,7 @@ public class SponsoredTab{
|
||||
isMoreTabs = tabModel.getCount() > SponsoredImageUtil.MAX_TABS ? true : false;
|
||||
}
|
||||
|
||||
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M || (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !isMoreTabs)){
|
||||
if (NTPUtil.shouldEnableNTPFeature(isMoreTabs)){
|
||||
ntpImage = NTPUtil.getNTPImage();
|
||||
tabIndex = SponsoredImageUtil.getTabIndex();
|
||||
updateBannerPref();
|
||||
@@ -49,10 +46,6 @@ public class SponsoredTab{
|
||||
this.ntpImage = ntpImage;
|
||||
}
|
||||
|
||||
public void setNewTabListener(NewTabListener newTabListener) {
|
||||
this.newTabListener = newTabListener;
|
||||
}
|
||||
|
||||
public int getTabIndex() {
|
||||
return tabIndex;
|
||||
}
|
||||
@@ -72,8 +65,4 @@ public class SponsoredTab{
|
||||
public boolean isMoreTabs() {
|
||||
return isMoreTabs;
|
||||
}
|
||||
|
||||
public void setMoreTabs(boolean isMoreTabs) {
|
||||
this.isMoreTabs = isMoreTabs;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
/* Copyright (c) 2020 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.tabmodel;
|
||||
|
||||
import android.os.Build;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Supplier;
|
||||
import org.chromium.chrome.browser.ChromeActivity;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabDelegateFactory;
|
||||
import org.chromium.chrome.browser.ChromeTabbedActivity;
|
||||
import org.chromium.chrome.browser.init.StartupTabPreloader;
|
||||
import org.chromium.chrome.browser.ntp.NewTabPage;
|
||||
import org.chromium.chrome.browser.util.UrlConstants;
|
||||
import org.chromium.chrome.browser.BraveRewardsHelper;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.SponsoredImageUtil;
|
||||
import org.chromium.chrome.browser.settings.BackgroundImagesPreferences;
|
||||
|
||||
|
||||
public class BraveTabCreator extends ChromeTabCreator {
|
||||
|
||||
public BraveTabCreator(ChromeActivity activity, WindowAndroid nativeWindow,
|
||||
StartupTabPreloader startupTabPreloader,
|
||||
Supplier<TabDelegateFactory> tabDelegateFactory, boolean incognito) {
|
||||
super(activity, nativeWindow, startupTabPreloader, tabDelegateFactory, incognito);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Tab launchUrl(String url, @TabLaunchType int type) {
|
||||
SharedPreferences mSharedPreferences = ContextUtils.getAppSharedPreferences();
|
||||
|
||||
ChromeTabbedActivity chromeTabbedActivity = BraveRewardsHelper.getChromeTabbedActivity();
|
||||
if(chromeTabbedActivity != null && Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
TabModel tabModel = chromeTabbedActivity.getCurrentTabModel();
|
||||
if (tabModel.getCount() >= SponsoredImageUtil.MAX_TABS && mSharedPreferences.getBoolean(BackgroundImagesPreferences.PREF_SHOW_BACKGROUND_IMAGES, true)) {
|
||||
if(chromeTabbedActivity.getActivityTab() != null && NewTabPage.isNTPUrl(chromeTabbedActivity.getActivityTab().getUrl())) {
|
||||
chromeTabbedActivity.hideOverview();
|
||||
} else {
|
||||
chromeTabbedActivity.openNewOrSelectExistingTab(UrlConstants.NTP_URL);
|
||||
chromeTabbedActivity.hideOverview();
|
||||
}
|
||||
} else {
|
||||
return launchUrl(url, type, null, 0);
|
||||
}
|
||||
} else {
|
||||
return launchUrl(url, type, null, 0);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.chromium.chrome.browser.widget.tile;
|
||||
|
||||
import android.os.Build;
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.widget.TextView;
|
||||
@@ -14,6 +13,7 @@ import android.content.SharedPreferences;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.SponsoredImageUtil;
|
||||
import org.chromium.chrome.browser.ntp.sponsored.NTPUtil;
|
||||
import org.chromium.chrome.browser.BraveRewardsHelper;
|
||||
import org.chromium.chrome.browser.ChromeTabbedActivity;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModel;
|
||||
@@ -40,7 +40,7 @@ public class BraveTileWithTextView extends TileWithTextView {
|
||||
}
|
||||
|
||||
if(mSharedPreferences.getBoolean(BackgroundImagesPreferences.PREF_SHOW_BACKGROUND_IMAGES, true)
|
||||
&& (Build.VERSION.SDK_INT > Build.VERSION_CODES.M || (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !isMoreTabs))) {
|
||||
&& NTPUtil.shouldEnableNTPFeature(isMoreTabs)) {
|
||||
mTitleView.setTextColor(getResources().getColor(android.R.color.white));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,185 @@
|
||||
diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml
|
||||
index 522b6b1bfb35b83e758995459e00847bfad1ada8..c027e6d869bf7246f30d2eb090cd181d4ae0ad7f 100644
|
||||
--- a/chrome/android/java/res/layout/new_tab_page_layout.xml
|
||||
+++ b/chrome/android/java/res/layout/new_tab_page_layout.xml
|
||||
@@ -2,73 +2,122 @@
|
||||
<!-- Copyright 2016 The Chromium Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file. -->
|
||||
-<org.chromium.chrome.browser.ntp.NewTabPageLayout
|
||||
+<org.chromium.chrome.browser.ntp.BraveNewTabPageLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/ntp_content"
|
||||
android:layout_width="match_parent"
|
||||
- android:layout_height="wrap_content"
|
||||
+ android:layout_height="match_parent"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center"
|
||||
android:paddingTop="@dimen/toolbar_height_no_shadow"
|
||||
android:visibility="gone" >
|
||||
|
||||
- <!-- Search provider logo -->
|
||||
- <org.chromium.chrome.browser.ntp.LogoView
|
||||
- android:id="@+id/search_provider_logo"
|
||||
- android:layout_width="wrap_content"
|
||||
- android:layout_height="@dimen/ntp_logo_height"
|
||||
- android:layout_marginStart="16dp"
|
||||
- android:layout_marginEnd="16dp"
|
||||
- android:layout_marginTop="@dimen/ntp_logo_margin_top"
|
||||
- android:layout_marginBottom="23dp" />
|
||||
-
|
||||
- <!-- Search box -->
|
||||
- <include layout="@layout/fake_search_box_layout"/>
|
||||
-
|
||||
- <!-- Explore offline card -->
|
||||
- <ViewStub
|
||||
- android:id="@+id/explore_offline_card_stub"
|
||||
+ <LinearLayout
|
||||
+ android:id="@+id/parent_layout"
|
||||
android:layout_width="match_parent"
|
||||
- android:layout_height="wrap_content"
|
||||
- android:layout_marginTop="16dp"
|
||||
- android:layout="@layout/new_tab_page_offline_card"
|
||||
- android:inflatedId="@+id/explore_offline_card" />
|
||||
-
|
||||
- <!-- Middle spacer -->
|
||||
- <View
|
||||
- android:id="@+id/ntp_middle_spacer"
|
||||
- android:layout_width="0dp"
|
||||
- android:layout_height="0dp"
|
||||
- android:layout_weight="0"
|
||||
- android:visibility="invisible" />
|
||||
-
|
||||
- <!-- Insertion point of the SiteSectionView, see NewTabPageLayout#insertSiteSection() -->
|
||||
-
|
||||
- <ViewStub
|
||||
- android:id="@+id/explore_sites_stub"
|
||||
- android:layout_width="match_parent"
|
||||
- android:layout_height="wrap_content"
|
||||
- android:inflatedId="@+id/explore_sites"
|
||||
- android:layout_marginBottom="16dp"
|
||||
- android:layout="@layout/explore_sites_section" />
|
||||
-
|
||||
- <!-- Site suggestion tile grid placeholder -->
|
||||
- <ViewStub
|
||||
- android:id="@+id/tile_grid_placeholder_stub"
|
||||
- android:layout_width="match_parent"
|
||||
- android:layout_height="wrap_content"
|
||||
- android:layout_weight="1"
|
||||
- android:inflatedId="@+id/tile_grid_placeholder"
|
||||
- android:layout="@layout/new_tab_page_tile_grid_placeholder" />
|
||||
-
|
||||
- <!-- Spacer for when there is no search provider logo. -->
|
||||
- <View
|
||||
- android:id="@+id/no_search_logo_spacer"
|
||||
- android:layout_width="match_parent"
|
||||
- android:layout_height="0dp"
|
||||
- android:layout_weight="1"
|
||||
- android:visibility="gone" />
|
||||
-</org.chromium.chrome.browser.ntp.NewTabPageLayout>
|
||||
+ android:layout_height="match_parent"
|
||||
+ android:layout_gravity="center_horizontal"
|
||||
+ android:orientation="vertical">
|
||||
+
|
||||
+ <LinearLayout
|
||||
+ android:id="@+id/ntp_main_layout"
|
||||
+ android:layout_width="match_parent"
|
||||
+ android:layout_height="0dp"
|
||||
+ android:layout_weight="1"
|
||||
+ android:orientation="vertical">
|
||||
+
|
||||
+ <!-- Brave stats -->
|
||||
+ <include layout="@layout/brave_stats_layout"/>
|
||||
+
|
||||
+ <!-- Explore offline card -->
|
||||
+ <ViewStub
|
||||
+ android:id="@+id/explore_offline_card_stub"
|
||||
+ android:layout_width="match_parent"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ android:layout="@layout/new_tab_page_offline_card"
|
||||
+ android:inflatedId="@+id/explore_offline_card" />
|
||||
+
|
||||
+ <!-- Search provider logo -->
|
||||
+ <org.chromium.chrome.browser.ntp.LogoView
|
||||
+ android:id="@+id/search_provider_logo"
|
||||
+ android:layout_width="wrap_content"
|
||||
+ android:layout_height="@dimen/ntp_logo_height"
|
||||
+ android:layout_marginStart="16dp"
|
||||
+ android:layout_marginEnd="16dp"
|
||||
+ android:layout_marginTop="@dimen/ntp_logo_margin_top"
|
||||
+ android:layout_marginBottom="23dp" />
|
||||
+
|
||||
+ <!-- Search box -->
|
||||
+ <include layout="@layout/fake_search_box_layout"/>
|
||||
+
|
||||
+ <!-- Middle spacer -->
|
||||
+ <View
|
||||
+ android:id="@+id/ntp_middle_spacer"
|
||||
+ android:layout_width="0dp"
|
||||
+ android:layout_height="0dp"
|
||||
+ android:layout_weight="0"
|
||||
+ android:visibility="invisible" />
|
||||
+
|
||||
+ <!-- Insertion point of the SiteSectionView, see NewTabPageLayout#insertSiteSection() -->
|
||||
+
|
||||
+ <ViewStub
|
||||
+ android:id="@+id/explore_sites_stub"
|
||||
+ android:layout_width="match_parent"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ android:inflatedId="@+id/explore_sites"
|
||||
+ android:layout_marginBottom="16dp"
|
||||
+ android:layout="@layout/explore_sites_section" />
|
||||
+
|
||||
+ <!-- Site suggestion tile grid placeholder -->
|
||||
+ <ViewStub
|
||||
+ android:id="@+id/tile_grid_placeholder_stub"
|
||||
+ android:layout_width="match_parent"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ android:layout_weight="1"
|
||||
+ android:inflatedId="@+id/tile_grid_placeholder"
|
||||
+ android:layout="@layout/new_tab_page_tile_grid_placeholder" />
|
||||
+
|
||||
+ <!-- Spacer for when there is no search provider logo. -->
|
||||
+ <View
|
||||
+ android:id="@+id/no_search_logo_spacer"
|
||||
+ android:layout_width="match_parent"
|
||||
+ android:layout_height="0dp"
|
||||
+ android:layout_weight="1"
|
||||
+ android:visibility="gone" />
|
||||
+
|
||||
+ </LinearLayout>
|
||||
+
|
||||
+ <FrameLayout
|
||||
+ android:id="@+id/image_credit_layout"
|
||||
+ android:layout_width="match_parent"
|
||||
+ android:layout_height="wrap_content">
|
||||
+
|
||||
+ <TextView
|
||||
+ android:id="@+id/credit_text"
|
||||
+ android:layout_width="wrap_content"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ android:layout_gravity="start|bottom"
|
||||
+ android:background="@drawable/image_credit_rounded_shape"
|
||||
+ android:padding="5dp"
|
||||
+ android:layout_margin="10dp"
|
||||
+ android:textSize="12sp"
|
||||
+ android:visibility="gone"
|
||||
+ android:textColor = "@android:color/white"/>
|
||||
+
|
||||
+ <ImageView
|
||||
+ android:id="@+id/sponsored_logo"
|
||||
+ android:layout_width="170dp"
|
||||
+ android:layout_height="170dp"
|
||||
+ android:contentDescription="@null"
|
||||
+ android:visibility="gone"/>
|
||||
+
|
||||
+ </FrameLayout>
|
||||
+
|
||||
+ </LinearLayout>
|
||||
+
|
||||
+ <include layout="@layout/ntp_non_distruptive_banner"/>
|
||||
+
|
||||
+</org.chromium.chrome.browser.ntp.BraveNewTabPageLayout>
|
||||
+36
-1
@@ -1,5 +1,5 @@
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
index be8466ad87791880f1f3c4ea61db11c466eb3356..ca47ea5f050a7e41d48e9d32851ae28d83910941 100644
|
||||
index be8466ad87791880f1f3c4ea61db11c466eb3356..b59176c958e2f26cc2d33fe89e48ed9322c05c14 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -172,7 +172,7 @@ import java.util.Locale;
|
||||
@@ -11,6 +11,41 @@ index be8466ad87791880f1f3c4ea61db11c466eb3356..ca47ea5f050a7e41d48e9d32851ae28d
|
||||
/**
|
||||
* The results of a system back press action.
|
||||
*/
|
||||
@@ -965,13 +965,13 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo
|
||||
}
|
||||
|
||||
@Override
|
||||
- public ChromeTabCreator getTabCreator(boolean incognito) {
|
||||
- return (ChromeTabCreator) super.getTabCreator(incognito);
|
||||
+ public org.chromium.chrome.browser.tabmodel.BraveTabCreator getTabCreator(boolean incognito) {
|
||||
+ return (org.chromium.chrome.browser.tabmodel.BraveTabCreator) super.getTabCreator(incognito);
|
||||
}
|
||||
|
||||
@Override
|
||||
- public ChromeTabCreator getCurrentTabCreator() {
|
||||
- return (ChromeTabCreator) super.getCurrentTabCreator();
|
||||
+ public org.chromium.chrome.browser.tabmodel.BraveTabCreator getCurrentTabCreator() {
|
||||
+ return (org.chromium.chrome.browser.tabmodel.BraveTabCreator) super.getCurrentTabCreator();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1659,13 +1659,13 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo
|
||||
}
|
||||
|
||||
@Override
|
||||
- protected Pair<ChromeTabCreator, ChromeTabCreator> createTabCreators() {
|
||||
+ protected Pair<org.chromium.chrome.browser.tabmodel.BraveTabCreator, org.chromium.chrome.browser.tabmodel.BraveTabCreator> createTabCreators() {
|
||||
Supplier<TabDelegateFactory> tabDelegateFactorySupplier = () -> {
|
||||
return new TabbedModeTabDelegateFactory(this);
|
||||
};
|
||||
- return Pair.create(new ChromeTabCreator(this, getWindowAndroid(), getStartupTabPreloader(),
|
||||
+ return Pair.create(new org.chromium.chrome.browser.tabmodel.BraveTabCreator(this, getWindowAndroid(), getStartupTabPreloader(),
|
||||
tabDelegateFactorySupplier, false),
|
||||
- new ChromeTabCreator(this, getWindowAndroid(), getStartupTabPreloader(),
|
||||
+ new org.chromium.chrome.browser.tabmodel.BraveTabCreator(this, getWindowAndroid(), getStartupTabPreloader(),
|
||||
tabDelegateFactorySupplier, true));
|
||||
}
|
||||
|
||||
@@ -2091,7 +2091,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo
|
||||
}
|
||||
}
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
|
||||
index 31bfebf2e1faf4620a3f943f5212918fb91b6ec1..d679f39d3d2eda0476d4b248ef6063f32b1ab1b1 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
|
||||
@@ -195,7 +195,7 @@ public class CustomTabActivity extends BaseCustomTabActivity<CustomTabActivityCo
|
||||
}
|
||||
|
||||
@Override
|
||||
- protected Pair<ChromeTabCreator, ChromeTabCreator> createTabCreators() {
|
||||
+ protected Pair<org.chromium.chrome.browser.tabmodel.BraveTabCreator, org.chromium.chrome.browser.tabmodel.BraveTabCreator> createTabCreators() {
|
||||
return mTabFactory.createTabCreators();
|
||||
}
|
||||
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabFactory.java
|
||||
index 157946aad58b6efcba212da92effb3dc9e7b30d2..db7638335f72755418c6437894742836b73ca219 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabFactory.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabFactory.java
|
||||
@@ -32,7 +32,7 @@ import javax.inject.Inject;
|
||||
import dagger.Lazy;
|
||||
|
||||
/**
|
||||
- * Creates {@link Tab}, {@link TabModelSelector}, and {@link ChromeTabCreator}s in the context of a
|
||||
+ * Creates {@link Tab}, {@link TabModelSelector}, and {@link org.chromium.chrome.browser.tabmodel.BraveTabCreator}s in the context of a
|
||||
* Custom Tab activity.
|
||||
*/
|
||||
@ActivityScope
|
||||
@@ -78,13 +78,13 @@ public class CustomTabActivityTabFactory {
|
||||
return mTabModelSelector;
|
||||
}
|
||||
|
||||
- /** Creates a {@link ChromeTabCreator}s for the custom tab. */
|
||||
- public Pair<ChromeTabCreator, ChromeTabCreator> createTabCreators() {
|
||||
+ /** Creates a {@link org.chromium.chrome.browser.tabmodel.BraveTabCreator}s for the custom tab. */
|
||||
+ public Pair<org.chromium.chrome.browser.tabmodel.BraveTabCreator, org.chromium.chrome.browser.tabmodel.BraveTabCreator> createTabCreators() {
|
||||
return Pair.create(createTabCreator(false), createTabCreator(true));
|
||||
}
|
||||
|
||||
- private ChromeTabCreator createTabCreator(boolean incognito) {
|
||||
- return new ChromeTabCreator(mActivity, mActivityWindowAndroid.get(), mStartupTabPreloader,
|
||||
+ private org.chromium.chrome.browser.tabmodel.BraveTabCreator createTabCreator(boolean incognito) {
|
||||
+ return new org.chromium.chrome.browser.tabmodel.BraveTabCreator(mActivity, mActivityWindowAndroid.get(), mStartupTabPreloader,
|
||||
mCustomTabDelegateFactory::get, incognito) {
|
||||
@Override
|
||||
public TabDelegateFactory createDefaultTabDelegateFactory() {
|
||||
+13
-19
@@ -1,5 +1,5 @@
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
|
||||
index db1db4f0b941c6cea83f2ca28ddc70b8e7916a90..01939137e47c16389c1ffedbc626c75868d7bec7 100644
|
||||
index db1db4f0b941c6cea83f2ca28ddc70b8e7916a90..29b95ee943646c9556533850585b904300ad918d 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
|
||||
@@ -20,6 +20,7 @@ import android.view.ViewGroup;
|
||||
@@ -19,31 +19,25 @@ index db1db4f0b941c6cea83f2ca28ddc70b8e7916a90..01939137e47c16389c1ffedbc626c758
|
||||
private static final String TAG = "NewTabPageLayout";
|
||||
// Used to signify the cached resource value is unset.
|
||||
private static final int UNSET_RESOURCE_FLAG = -1;
|
||||
@@ -415,8 +416,9 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
@@ -74,7 +75,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
|
||||
private LogoView mSearchProviderLogoView;
|
||||
private View mSearchBoxView;
|
||||
- private ViewGroup mSiteSectionView;
|
||||
+ protected ViewGroup mSiteSectionView;
|
||||
private SiteSectionViewHolder mSiteSectionViewHolder;
|
||||
private ImageView mVoiceSearchButton;
|
||||
private View mTileGridPlaceholder;
|
||||
@@ -415,7 +416,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
1f);
|
||||
}
|
||||
|
||||
- private void insertSiteSectionView() {
|
||||
- mSiteSectionView = SiteSection.inflateSiteSection(this);
|
||||
+ public void insertSiteSectionView() {
|
||||
+ ViewGroup mainLayout = findViewById(R.id.ntp_main_layout);
|
||||
+ mSiteSectionView = SiteSection.inflateSiteSection(mainLayout);
|
||||
mSiteSectionView = SiteSection.inflateSiteSection(this);
|
||||
ViewGroup.LayoutParams layoutParams = mSiteSectionView.getLayoutParams();
|
||||
layoutParams.width = ViewGroup.LayoutParams.WRAP_CONTENT;
|
||||
// If the explore sites section exists as its own section, then space it more closely.
|
||||
@@ -429,8 +431,9 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
}
|
||||
mSiteSectionView.setLayoutParams(layoutParams);
|
||||
|
||||
- int insertionPoint = indexOfChild(mMiddleSpacer) + 1;
|
||||
- addView(mSiteSectionView, insertionPoint);
|
||||
+ ViewGroup mBraveStatsView = (ViewGroup) findViewById(R.id.brave_stats_layout);
|
||||
+ int insertionPoint = mainLayout.indexOfChild(mBraveStatsView) + 1;
|
||||
+ mainLayout.addView(mSiteSectionView, insertionPoint);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -786,7 +789,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
@@ -786,7 +787,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+5
-24
@@ -1,31 +1,12 @@
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
|
||||
index d1ca3eb54eaa4988d2d347804152eae9d2381e00..c015ff58dd15669b3e6f26f8c95e57d5997dc3f8 100644
|
||||
index d1ca3eb54eaa4988d2d347804152eae9d2381e00..f9de6a42bc85271e4c05883e9cb675ad2403e6e1 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
|
||||
@@ -99,7 +99,7 @@ public class NewTabPageView extends HistoryNavigationLayout {
|
||||
|
||||
// Don't attach now, the recyclerView itself will determine when to do it.
|
||||
mNewTabPageLayout = (NewTabPageLayout) LayoutInflater.from(getContext())
|
||||
- .inflate(R.layout.new_tab_page_layout, mRecyclerView, false);
|
||||
+ .inflate(R.layout.brave_new_tab_page_layout, mRecyclerView, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -199,11 +199,12 @@ public class NewTabPageView extends HistoryNavigationLayout {
|
||||
@@ -199,6 +199,7 @@ public class NewTabPageView extends HistoryNavigationLayout {
|
||||
mRecyclerView.setAdapter(newTabPageAdapter);
|
||||
mRecyclerView.getLinearLayoutManager().scrollToPosition(scrollPosition);
|
||||
|
||||
- mRecyclerViewResizer = ViewResizer.createAndAttach(mRecyclerView, mUiConfig,
|
||||
- mRecyclerView.getResources().getDimensionPixelSize(
|
||||
- R.dimen.content_suggestions_card_modern_margin),
|
||||
- mRecyclerView.getResources().getDimensionPixelSize(
|
||||
- R.dimen.ntp_wide_card_lateral_margins));
|
||||
+ if (false)
|
||||
+ mRecyclerViewResizer = ViewResizer.createAndAttach(mRecyclerView, mUiConfig,
|
||||
+ mRecyclerView.getResources().getDimensionPixelSize(
|
||||
+ R.dimen.content_suggestions_card_modern_margin),
|
||||
+ mRecyclerView.getResources().getDimensionPixelSize(
|
||||
+ R.dimen.ntp_wide_card_lateral_margins));
|
||||
|
||||
setupScrollHandling();
|
||||
|
||||
mRecyclerViewResizer = ViewResizer.createAndAttach(mRecyclerView, mUiConfig,
|
||||
mRecyclerView.getResources().getDimensionPixelSize(
|
||||
R.dimen.content_suggestions_card_modern_margin),
|
||||
|
||||
+3
-9
@@ -1,19 +1,13 @@
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java
|
||||
index a00bb6ece2d6af0c4fa83c9e86e47578cf7aefa7..f994f6e1892047979d7c70a64e8f1e377333b508 100644
|
||||
index a00bb6ece2d6af0c4fa83c9e86e47578cf7aefa7..b20838f10d3f216f878f406ba129d5a98fb4bead 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/SuggestionsTileView.java
|
||||
@@ -12,12 +12,13 @@ import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ntp.TitleUtil;
|
||||
import org.chromium.chrome.browser.suggestions.SiteSuggestion;
|
||||
import org.chromium.chrome.browser.widget.tile.TileWithTextView;
|
||||
+import org.chromium.chrome.browser.widget.tile.BraveTileWithTextView;
|
||||
|
||||
/**
|
||||
@@ -17,7 +17,7 @@ import org.chromium.chrome.browser.widget.tile.TileWithTextView;
|
||||
* The view for a site suggestion tile. Displays the title of the site beneath a large icon. If a
|
||||
* large icon isn't available, displays a rounded rectangle with a single letter in its place.
|
||||
*/
|
||||
-public class SuggestionsTileView extends TileWithTextView {
|
||||
+public class SuggestionsTileView extends BraveTileWithTextView {
|
||||
+public class SuggestionsTileView extends org.chromium.chrome.browser.widget.tile.BraveTileWithTextView {
|
||||
/** The data currently associated to this tile. */
|
||||
private SiteSuggestion mData;
|
||||
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
|
||||
index 5a3b49ec9effaec8a4ad6d99f48d98d3c5028e52..8049a4ceec7920c8e6d3e3f4a09e173953f3cc53 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
|
||||
@@ -61,6 +61,7 @@ import org.chromium.content_public.browser.WebContentsAccessibility;
|
||||
import org.chromium.content_public.common.ResourceRequestBody;
|
||||
import org.chromium.ui.base.PageTransition;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
+import org.chromium.chrome.browser.ntp.sponsored.SponsoredTab;
|
||||
|
||||
/**
|
||||
* Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}.
|
||||
@@ -224,6 +225,8 @@ public class TabImpl implements Tab {
|
||||
|
||||
private final UserDataHost mUserDataHost = new UserDataHost();
|
||||
|
||||
+ private SponsoredTab sponsoredTab;
|
||||
+
|
||||
/**
|
||||
* Creates an instance of a {@link TabImpl}.
|
||||
*
|
||||
@@ -275,6 +278,9 @@ public class TabImpl implements Tab {
|
||||
updateInteractableState();
|
||||
}
|
||||
};
|
||||
+
|
||||
+ if(sponsoredTab == null)
|
||||
+ sponsoredTab = new SponsoredTab();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1564,6 +1570,10 @@ public class TabImpl implements Tab {
|
||||
}
|
||||
}
|
||||
|
||||
+ public SponsoredTab getSponsoredTab() {
|
||||
+ return sponsoredTab;
|
||||
+ }
|
||||
+
|
||||
@NativeMethods
|
||||
interface Natives {
|
||||
void init(TabImpl caller);
|
||||
-52
@@ -1,52 +0,0 @@
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCreatorManager.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCreatorManager.java
|
||||
index de7adb86f85b72ad82b8d994c59d164394cbdfdb..3d9e50f76211b4e00c8984121933119b52def2ef 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCreatorManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCreatorManager.java
|
||||
@@ -6,12 +6,21 @@ package org.chromium.chrome.browser.tabmodel;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
+import android.os.Build;
|
||||
+import android.content.SharedPreferences;
|
||||
+
|
||||
import org.chromium.base.TraceEvent;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabState;
|
||||
import org.chromium.chrome.browser.util.UrlConstants;
|
||||
import org.chromium.content_public.browser.LoadUrlParams;
|
||||
import org.chromium.content_public.browser.WebContents;
|
||||
+import org.chromium.chrome.browser.ChromeTabbedActivity;
|
||||
+import org.chromium.chrome.browser.ntp.NewTabPage;
|
||||
+import org.chromium.chrome.browser.BraveRewardsHelper;
|
||||
+import org.chromium.chrome.browser.ntp.sponsored.SponsoredImageUtil;
|
||||
+import org.chromium.chrome.browser.settings.BackgroundImagesPreferences;
|
||||
|
||||
/**
|
||||
* An interface to return a {@link TabCreator} either for regular or incognito tabs.
|
||||
@@ -90,7 +99,24 @@ public interface TabCreatorManager {
|
||||
public final void launchNTP() {
|
||||
try {
|
||||
TraceEvent.begin("TabCreator.launchNTP");
|
||||
- launchUrl(UrlConstants.NTP_URL, TabLaunchType.FROM_CHROME_UI);
|
||||
+ SharedPreferences mSharedPreferences = ContextUtils.getAppSharedPreferences();
|
||||
+
|
||||
+ ChromeTabbedActivity chromeTabbedActivity = BraveRewardsHelper.getChromeTabbedActivity();
|
||||
+ if(chromeTabbedActivity != null && Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
+ TabModel tabModel = chromeTabbedActivity.getCurrentTabModel();
|
||||
+ if (tabModel.getCount() >= SponsoredImageUtil.MAX_TABS && mSharedPreferences.getBoolean(BackgroundImagesPreferences.PREF_SHOW_BACKGROUND_IMAGES, true)) {
|
||||
+ if(chromeTabbedActivity.getActivityTab() != null && NewTabPage.isNTPUrl(chromeTabbedActivity.getActivityTab().getUrl())) {
|
||||
+ chromeTabbedActivity.hideOverview();
|
||||
+ } else {
|
||||
+ chromeTabbedActivity.openNewOrSelectExistingTab(UrlConstants.NTP_URL);
|
||||
+ chromeTabbedActivity.hideOverview();
|
||||
+ }
|
||||
+ } else {
|
||||
+ launchUrl(UrlConstants.NTP_URL, TabLaunchType.FROM_CHROME_UI);
|
||||
+ }
|
||||
+ } else {
|
||||
+ launchUrl(UrlConstants.NTP_URL, TabLaunchType.FROM_CHROME_UI);
|
||||
+ }
|
||||
} finally {
|
||||
TraceEvent.end("TabCreator.launchNTP");
|
||||
}
|
||||
Reference in New Issue
Block a user