Merge pull request #7255 from brave/fallback_ui_for_top_tiles_android

Add layout for fall back UI for top tiles
This commit is contained in:
Deep Pandya
2020-11-25 23:59:36 -05:00
committed by GitHub
6 changed files with 125 additions and 43 deletions
@@ -6,9 +6,15 @@
package org.chromium.chrome.browser.brave_stats;
import android.util.Pair;
import android.view.View;
import android.widget.TextView;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.app.BraveActivity;
import org.chromium.chrome.browser.brave_stats.BraveStatsBottomSheetDialogFragment;
import org.chromium.chrome.browser.preferences.BravePref;
import org.chromium.chrome.browser.preferences.BravePrefServiceBridge;
import org.chromium.chrome.browser.profiles.Profile;
import java.text.SimpleDateFormat;
import java.util.Calendar;
@@ -86,4 +92,40 @@ public class BraveStatsUtil {
cal.add(Calendar.DAY_OF_YEAR, days);
return s.format(new Date(cal.getTimeInMillis()));
}
public static void updateBraveStatsLayout(View view) {
Profile mProfile = Profile.getLastUsedRegularProfile();
TextView mAdsBlockedCountTextView =
(TextView) view.findViewById(R.id.brave_stats_text_ads_count);
TextView mDataSavedValueTextView =
(TextView) view.findViewById(R.id.brave_stats_data_saved_value);
TextView mEstTimeSavedCountTextView =
(TextView) view.findViewById(R.id.brave_stats_text_time_count);
TextView mAdsBlockedCountTextTextView =
(TextView) view.findViewById(R.id.brave_stats_text_ads_count_text);
TextView mDataSavedValueTextTextView =
(TextView) view.findViewById(R.id.brave_stats_data_saved_value_text);
TextView mEstTimeSavedCountTextTextView =
(TextView) view.findViewById(R.id.brave_stats_text_time_count_text);
long trackersBlockedCount =
BravePrefServiceBridge.getInstance().getTrackersBlockedCount(mProfile);
long adsBlockedCount = BravePrefServiceBridge.getInstance().getAdsBlockedCount(mProfile);
long dataSaved = BravePrefServiceBridge.getInstance().getDataSaved(mProfile);
long estimatedMillisecondsSaved =
(trackersBlockedCount + adsBlockedCount) * MILLISECONDS_PER_ITEM;
Pair<String, String> adsTrackersPair =
getBraveStatsStringFormNumberPair(adsBlockedCount, false);
Pair<String, String> dataSavedPair = getBraveStatsStringFormNumberPair(dataSaved, true);
Pair<String, String> timeSavedPair =
getBraveStatsStringFromTime(estimatedMillisecondsSaved / 1000);
mAdsBlockedCountTextView.setText(adsTrackersPair.first);
mDataSavedValueTextView.setText(dataSavedPair.first);
mEstTimeSavedCountTextView.setText(timeSavedPair.first);
mAdsBlockedCountTextTextView.setText(adsTrackersPair.second);
mDataSavedValueTextTextView.setText(dataSavedPair.second);
mEstTimeSavedCountTextTextView.setText(timeSavedPair.second);
}
}
@@ -122,6 +122,8 @@ public class BraveNewTabPageLayout extends NewTabPageLayout {
private static final String BRAVE_BINANCE = "https://brave.com/binance/";
private static final String BRAVE_REF_URL = "https://brave.com/r/";
private View mBraveStatsViewFallBackLayout;
private ImageView bgImageView;
private Profile mProfile;
@@ -169,6 +171,9 @@ public class BraveNewTabPageLayout extends NewTabPageLayout {
protected void onFinishInflate() {
super.onFinishInflate();
// mBraveStatsViewFallBackLayout = (ViewGroup)
// findViewById(R.id.brave_stats_fallback_layout);
ntpWidgetLayout = findViewById(R.id.ntp_widget_layout);
indicatorLayout = findViewById(R.id.indicator_layout);
ntpWidgetViewPager = findViewById(R.id.ntp_widget_view_pager);
@@ -197,11 +202,65 @@ public class BraveNewTabPageLayout extends NewTabPageLayout {
showWidgetBasedOnOrder();
}
private void showFallBackNTPLayout() {
if (mBraveStatsViewFallBackLayout != null
&& mBraveStatsViewFallBackLayout.getParent() != null) {
((ViewGroup) mBraveStatsViewFallBackLayout.getParent())
.removeView(mBraveStatsViewFallBackLayout);
}
LayoutInflater inflater =
(LayoutInflater) mActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mBraveStatsViewFallBackLayout = inflater.inflate(R.layout.brave_stats_layout, null);
if (mBraveStatsViewFallBackLayout.getLayoutParams()
instanceof ViewGroup.MarginLayoutParams) {
ViewGroup.MarginLayoutParams layoutParams =
(ViewGroup.MarginLayoutParams) mBraveStatsViewFallBackLayout.getLayoutParams();
layoutParams.setMargins(0, dpToPx(mActivity, 16), 0, dpToPx(mActivity, 16));
mBraveStatsViewFallBackLayout.requestLayout();
}
mBraveStatsViewFallBackLayout.findViewById(R.id.brave_stats_title_layout)
.setVisibility(View.GONE);
((TextView) mBraveStatsViewFallBackLayout.findViewById(R.id.brave_stats_text_ads))
.setTextColor(mActivity.getResources().getColor(R.color.shield_text_color));
((TextView) mBraveStatsViewFallBackLayout.findViewById(R.id.brave_stats_data_saved_text))
.setTextColor(mActivity.getResources().getColor(R.color.shield_text_color));
((TextView) mBraveStatsViewFallBackLayout.findViewById(R.id.brave_stats_text_time))
.setTextColor(mActivity.getResources().getColor(R.color.shield_text_color));
((TextView) mBraveStatsViewFallBackLayout.findViewById(R.id.brave_stats_text_time_count))
.setTextColor(mActivity.getResources().getColor(R.color.shield_text_color));
((TextView) mBraveStatsViewFallBackLayout.findViewById(
R.id.brave_stats_text_time_count_text))
.setTextColor(mActivity.getResources().getColor(R.color.shield_text_color));
mBraveStatsViewFallBackLayout.setBackgroundColor(
mActivity.getResources().getColor(android.R.color.transparent));
mBraveStatsViewFallBackLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkForBraveStats();
}
});
BraveStatsUtil.updateBraveStatsLayout(mBraveStatsViewFallBackLayout);
if (mSiteSectionView.getParent() != null) {
((ViewGroup) mSiteSectionView.getParent()).removeView(mSiteSectionView);
}
mainLayout.addView(mBraveStatsViewFallBackLayout, 0);
int insertionPoint = mainLayout.indexOfChild(findViewById(R.id.ntp_middle_spacer)) + 1;
if (!mNTPBackgroundImagesBridge.isSuperReferral()
|| !NTPBackgroundImagesBridge.enableSponsoredImages()
|| Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
mainLayout.addView(mSiteSectionView, insertionPoint);
}
private List<NTPWidgetItem> setWidgetList() {
NTPWidgetManager ntpWidgetManager = NTPWidgetManager.getInstance();
LayoutInflater inflater =
(LayoutInflater) mActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Map<Integer, NTPWidgetItem> ntpWidgetMap = new TreeMap<>();
if (mSiteSectionView != null && mSiteSectionView.getParent() != null) {
((ViewGroup) mSiteSectionView.getParent()).removeView(mSiteSectionView);
}
for (String widget : ntpWidgetManager.getUsedWidgets()) {
NTPWidgetItem ntpWidgetItem = NTPWidgetManager.mWidgetsMap.get(widget);
@@ -237,9 +296,6 @@ public class BraveNewTabPageLayout extends NewTabPageLayout {
getTileGroup().hasReceivedData() && getTileGroup().isEmpty();
if (mSiteSectionView != null && !showPlaceholder) {
mTopsiteErrorMessage.setVisibility(View.GONE);
if (mSiteSectionView.getParent() != null) {
((ViewGroup) mSiteSectionView.getParent()).removeView(mSiteSectionView);
}
if (mSiteSectionView.getLayoutParams()
instanceof ViewGroup.MarginLayoutParams) {
mSiteSectionView.setPadding(0, dpToPx(mActivity, 8), 0, 0);
@@ -321,8 +377,17 @@ public class BraveNewTabPageLayout extends NewTabPageLayout {
List<NTPWidgetItem> tempList = setWidgetList();
if (tempList.size() > 0) {
ntpWidgetLayout.setVisibility(View.VISIBLE);
if (mBraveStatsViewFallBackLayout != null
&& mBraveStatsViewFallBackLayout.getParent() != null) {
((ViewGroup) mBraveStatsViewFallBackLayout.getParent())
.removeView(mBraveStatsViewFallBackLayout);
}
} else {
ntpWidgetLayout.setVisibility(View.GONE);
if (!UserPrefs.get(Profile.getLastUsedRegularProfile())
.getBoolean(BravePref.NEW_TAB_PAGE_SHOW_BACKGROUND_IMAGE)) {
showFallBackNTPLayout();
}
}
if (ntpWidgetAdapter != null) {
@@ -357,7 +422,13 @@ public class BraveNewTabPageLayout extends NewTabPageLayout {
}
protected int getMaxRowsForMostVisitedTiles() {
return 1;
if (NTPWidgetManager.getInstance().getUsedWidgets().size() <= 0
&& !UserPrefs.get(Profile.getLastUsedRegularProfile())
.getBoolean(BravePref.NEW_TAB_PAGE_SHOW_BACKGROUND_IMAGE)) {
return 2;
} else {
return 1;
}
}
@Override
@@ -81,7 +81,7 @@ public class NTPWidgetAdapter extends PagerAdapter {
});
}
if (ntpWidgetItem.getWidgetType().equals(NTPWidgetManager.PREF_PRIVATE_STATS)) {
updateBraveStats(mainView);
BraveStatsUtil.updateBraveStatsLayout(mainView);
} else if (ntpWidgetItem.getWidgetType().equals(NTPWidgetManager.PREF_BINANCE)) {
Button connectButton = mainView.findViewById(R.id.btn_connect);
LinearLayout bianceDisconnectLayout =
@@ -143,42 +143,6 @@ public class NTPWidgetAdapter extends PagerAdapter {
notifyDataSetChanged();
}
private void updateBraveStats(View view) {
TextView mAdsBlockedCountTextView =
(TextView) view.findViewById(R.id.brave_stats_text_ads_count);
TextView mDataSavedValueTextView =
(TextView) view.findViewById(R.id.brave_stats_data_saved_value);
TextView mEstTimeSavedCountTextView =
(TextView) view.findViewById(R.id.brave_stats_text_time_count);
TextView mAdsBlockedCountTextTextView =
(TextView) view.findViewById(R.id.brave_stats_text_ads_count_text);
TextView mDataSavedValueTextTextView =
(TextView) view.findViewById(R.id.brave_stats_data_saved_value_text);
TextView mEstTimeSavedCountTextTextView =
(TextView) view.findViewById(R.id.brave_stats_text_time_count_text);
long trackersBlockedCount =
BravePrefServiceBridge.getInstance().getTrackersBlockedCount(mProfile);
long adsBlockedCount = BravePrefServiceBridge.getInstance().getAdsBlockedCount(mProfile);
long dataSaved = BravePrefServiceBridge.getInstance().getDataSaved(mProfile);
long estimatedMillisecondsSaved =
(trackersBlockedCount + adsBlockedCount) * BraveStatsUtil.MILLISECONDS_PER_ITEM;
Pair<String, String> adsTrackersPair =
BraveStatsUtil.getBraveStatsStringFormNumberPair(adsBlockedCount, false);
Pair<String, String> dataSavedPair =
BraveStatsUtil.getBraveStatsStringFormNumberPair(dataSaved, true);
Pair<String, String> timeSavedPair =
BraveStatsUtil.getBraveStatsStringFromTime(estimatedMillisecondsSaved / 1000);
mAdsBlockedCountTextView.setText(adsTrackersPair.first);
mDataSavedValueTextView.setText(dataSavedPair.first);
mEstTimeSavedCountTextView.setText(timeSavedPair.first);
mAdsBlockedCountTextTextView.setText(adsTrackersPair.second);
mDataSavedValueTextTextView.setText(dataSavedPair.second);
mEstTimeSavedCountTextTextView.setText(timeSavedPair.second);
}
private void showPopupMenu(Context context, View view, final int position) {
PopupMenu popup = new PopupMenu(context, view);
popup.getMenuInflater().inflate(R.menu.ntp_widget_menu, popup.getMenu());
@@ -13,6 +13,7 @@ import android.widget.TextView;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BraveRewardsHelper;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.ntp.widget.NTPWidgetManager;
import org.chromium.chrome.browser.ntp_background_images.util.NTPUtil;
import org.chromium.chrome.browser.ntp_background_images.util.SponsoredImageUtil;
import org.chromium.chrome.browser.preferences.BravePref;
@@ -30,6 +31,10 @@ public class BraveTileView extends TileView {
public void setTitle(String title, int titleLines) {
super.setTitle(title, titleLines);
TextView mTitleView = findViewById(R.id.tile_view_title);
mTitleView.setTextColor(getResources().getColor(android.R.color.black));
if (NTPWidgetManager.getInstance().getUsedWidgets().size() > 0
|| UserPrefs.get(Profile.getLastUsedRegularProfile())
.getBoolean(BravePref.NEW_TAB_PAGE_SHOW_BACKGROUND_IMAGE)) {
mTitleView.setTextColor(getResources().getColor(android.R.color.black));
}
}
}
@@ -13,6 +13,7 @@
android:orientation="vertical">
<LinearLayout
android:id="@+id/brave_stats_title_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
@@ -9,5 +9,4 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
android:background="@color/topsite_bg_color"
android:layout_gravity="center_horizontal" />