From 5a2ff67efabab5211589f66d4ce39d5c694332f4 Mon Sep 17 00:00:00 2001 From: tapanmodh Date: Wed, 30 Mar 2022 00:50:08 +0530 Subject: [PATCH 1/3] Android Brave News Settings Header Display Fix --- .../chrome/browser/app/BraveActivity.java | 1 - .../browser/ntp/BraveNewTabPageLayout.java | 51 +++++++++++-------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/android/java/org/chromium/chrome/browser/app/BraveActivity.java b/android/java/org/chromium/chrome/browser/app/BraveActivity.java index 4afab6e565c6..212d0a77afff 100644 --- a/android/java/org/chromium/chrome/browser/app/BraveActivity.java +++ b/android/java/org/chromium/chrome/browser/app/BraveActivity.java @@ -29,7 +29,6 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; -import android.os.Handler; import android.provider.Settings; import android.text.TextUtils; import android.util.DisplayMetrics; diff --git a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java index 9a0a4db14856..ed0aced1f4eb 100644 --- a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java +++ b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java @@ -283,7 +283,6 @@ protected void onFinishInflate() { ntpWidgetViewPager.setAdapter(ntpWidgetAdapter); mComesFromNewTab = false; mTouchScroll = false; - ntpWidgetViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled( @@ -610,24 +609,27 @@ protected void onAttachedToWindow() { initNews(); if (BraveActivity.getBraveActivity() != null && mIsNewsOn) { - Tab tab = BraveActivity.getBraveActivity().getActivityTab(); - if (tab != null && tab.getUrl().getSpec() != null - && UrlUtilities.isNTPUrl(tab.getUrl().getSpec())) { - BraveActivity.getBraveActivity().inflateNewsSettingsBar(); - mSettingsBar = - (LinearLayout) mCompositorView.findViewById(R.id.news_settings_bar); - if (mSettingsBar != null) { - mSettingsBar.setVisibility(View.VISIBLE); - } - mNewContentButton = (RelativeLayout) mCompositorView.findViewById( - R.id.new_content_layout_id); - } else { - if (tab != null) { - } - if (!mComesFromNewTab) { - BraveActivity.getBraveActivity().removeSettingsBar(); + new Handler().post(() -> { + Tab tab = BraveActivity.getBraveActivity().getActivityTab(); + + if (tab != null && tab.getUrl().getSpec() != null + && UrlUtilities.isNTPUrl(tab.getUrl().getSpec())) { + BraveActivity.getBraveActivity().inflateNewsSettingsBar(); + mSettingsBar = + (LinearLayout) mCompositorView.findViewById(R.id.news_settings_bar); + if (mSettingsBar != null) { + mSettingsBar.setVisibility(View.VISIBLE); + } + mNewContentButton = (RelativeLayout) mCompositorView.findViewById( + R.id.new_content_layout_id); + } else { + if (tab != null) { + } + if (!mComesFromNewTab) { + BraveActivity.getBraveActivity().removeSettingsBar(); + } } - } + }); } initPreferenceObserver(); if (mPreferenceObserver != null) { @@ -662,6 +664,13 @@ private void initPreferenceObserver() { BraveActivity.getBraveActivity().inflateNewsSettingsBar(); } } + mIsNewsOn = BravePrefServiceBridge.getInstance().getNewsOptIn(); + mSettingsBar = (LinearLayout) mCompositorView.findViewById(R.id.news_settings_bar); + if (mSettingsBar != null) { + mSettingsBar.setVisibility(View.VISIBLE); + } + mNewContentButton = + (RelativeLayout) mCompositorView.findViewById(R.id.new_content_layout_id); refreshFeed(); } else if (TextUtils.equals(key, BravePreferenceKeys.BRAVE_NEWS_PREF_TURN_ON_NEWS)) { mIsNewsOn = BravePrefServiceBridge.getInstance().getNewsOptIn(); @@ -952,7 +961,6 @@ private void initNews() { mNtpContent = (BraveNewTabPageLayout) findViewById(R.id.ntp_content); mTouchX = -200; mTouchScroll = false; - SharedPreferencesManager.getInstance().writeBoolean( BravePreferenceKeys.BRAVE_NEWS_CHANGE_SOURCE, false); // init Brave news parameters @@ -1019,7 +1027,6 @@ private void initNews() { boolean isFeedLoaded = BraveActivity.getBraveActivity().isLoadedFeed(); boolean isFromNewTab = BraveActivity.getBraveActivity().isComesFromNewTab(); - CopyOnWriteArrayList existingNewsFeedObject = BraveActivity.getBraveActivity().getNewsItemsFeedCards(); Tab tab = BraveActivity.getBraveActivity().getActivityTab(); @@ -1081,7 +1088,6 @@ public void run() { mOptinLayout.setVisibility(View.GONE); } } - ViewTreeObserver parentScrollViewObserver = mParentScrollView.getViewTreeObserver(); mParentScrollView.getViewTreeObserver().addOnScrollChangedListener( new ViewTreeObserver.OnScrollChangedListener() { @@ -1151,6 +1157,7 @@ public void onScrollChanged() { } else { boolean isFromNewTab = BraveActivity.getBraveActivity() .isComesFromNewTab(); + if (scrollY > 200 && (mTouchScroll || isFromNewTab)) { mSettingsBar.setVisibility(View.VISIBLE); mSettingsBar.setAlpha(1); @@ -1176,7 +1183,6 @@ public boolean onTouch(View v, MotionEvent event) { int widgetTopLeftX = location[0]; int widgetTopLeftY = location[1]; mTouchScroll = true; - if (mTouchX > widgetTopLeftX && mTouchX < widgetTopLeftX + ntpWidgetLayout.getWidth() && (mTouchY > widgetTopLeftY @@ -1415,6 +1421,7 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { try { int offset = recyclerView.computeVerticalScrollOffset(); mTouchScroll = true; + mFirstVisibleCard = linearLayoutManager.findFirstVisibleItemPosition(); mParentScrollView.scrollBy(0, offset + 2); From 2d8f96fd0636970e91ed08f747085c67272a7af3 Mon Sep 17 00:00:00 2001 From: tapanmodh Date: Wed, 30 Mar 2022 00:57:21 +0530 Subject: [PATCH 2/3] Android Brave News Settings Header Display Fix --- .../chromium/chrome/browser/ntp/BraveNewTabPageLayout.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java index ed0aced1f4eb..a09dd26e149a 100644 --- a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java +++ b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java @@ -283,6 +283,7 @@ protected void onFinishInflate() { ntpWidgetViewPager.setAdapter(ntpWidgetAdapter); mComesFromNewTab = false; mTouchScroll = false; + ntpWidgetViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled( @@ -961,6 +962,7 @@ private void initNews() { mNtpContent = (BraveNewTabPageLayout) findViewById(R.id.ntp_content); mTouchX = -200; mTouchScroll = false; + SharedPreferencesManager.getInstance().writeBoolean( BravePreferenceKeys.BRAVE_NEWS_CHANGE_SOURCE, false); // init Brave news parameters @@ -1027,6 +1029,7 @@ private void initNews() { boolean isFeedLoaded = BraveActivity.getBraveActivity().isLoadedFeed(); boolean isFromNewTab = BraveActivity.getBraveActivity().isComesFromNewTab(); + CopyOnWriteArrayList existingNewsFeedObject = BraveActivity.getBraveActivity().getNewsItemsFeedCards(); Tab tab = BraveActivity.getBraveActivity().getActivityTab(); @@ -1088,6 +1091,7 @@ public void run() { mOptinLayout.setVisibility(View.GONE); } } + ViewTreeObserver parentScrollViewObserver = mParentScrollView.getViewTreeObserver(); mParentScrollView.getViewTreeObserver().addOnScrollChangedListener( new ViewTreeObserver.OnScrollChangedListener() { @@ -1157,7 +1161,6 @@ public void onScrollChanged() { } else { boolean isFromNewTab = BraveActivity.getBraveActivity() .isComesFromNewTab(); - if (scrollY > 200 && (mTouchScroll || isFromNewTab)) { mSettingsBar.setVisibility(View.VISIBLE); mSettingsBar.setAlpha(1); @@ -1183,6 +1186,7 @@ public boolean onTouch(View v, MotionEvent event) { int widgetTopLeftX = location[0]; int widgetTopLeftY = location[1]; mTouchScroll = true; + if (mTouchX > widgetTopLeftX && mTouchX < widgetTopLeftX + ntpWidgetLayout.getWidth() && (mTouchY > widgetTopLeftY @@ -1421,7 +1425,6 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { try { int offset = recyclerView.computeVerticalScrollOffset(); mTouchScroll = true; - mFirstVisibleCard = linearLayoutManager.findFirstVisibleItemPosition(); mParentScrollView.scrollBy(0, offset + 2); From 3e40759220bf12d3bdbba8531cd7ef29e084baf3 Mon Sep 17 00:00:00 2001 From: tapanmodh Date: Wed, 30 Mar 2022 01:10:35 +0530 Subject: [PATCH 3/3] Android Brave News Settings Header Display Fix --- .../chromium/chrome/browser/ntp/BraveNewTabPageLayout.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java index a09dd26e149a..7fa0d5539068 100644 --- a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java +++ b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java @@ -283,7 +283,7 @@ protected void onFinishInflate() { ntpWidgetViewPager.setAdapter(ntpWidgetAdapter); mComesFromNewTab = false; mTouchScroll = false; - + ntpWidgetViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled( @@ -1029,7 +1029,7 @@ private void initNews() { boolean isFeedLoaded = BraveActivity.getBraveActivity().isLoadedFeed(); boolean isFromNewTab = BraveActivity.getBraveActivity().isComesFromNewTab(); - + CopyOnWriteArrayList existingNewsFeedObject = BraveActivity.getBraveActivity().getNewsItemsFeedCards(); Tab tab = BraveActivity.getBraveActivity().getActivityTab();