diff --git a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java index 71b5e4ffa6a7..4e64349e0c10 100644 --- a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java +++ b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java @@ -465,14 +465,9 @@ private void initPreferenceObserver() { mIsShowOptin = sharedPreferences.getBoolean(BraveNewsPreferences.PREF_SHOW_OPTIN, false); mIsShowNewsOn = BravePrefServiceBridge.getInstance().getShowNews(); - if ((!mIsNewsOn && mIsShowOptin) || (mIsNewsOn && !mIsShowOptin)) { - SharedPreferences.Editor sharedPreferencesEditor = sharedPreferences.edit(); - sharedPreferencesEditor.putBoolean(BraveNewsPreferences.PREF_SHOW_OPTIN, true); - sharedPreferencesEditor.apply(); - mOptinLayout.setVisibility(View.VISIBLE); - mRecyclerView.setVisibility(View.GONE); - initNews(); - } + mOptinLayout.setVisibility(View.GONE); + mRecyclerView.setVisibility(View.VISIBLE); + initNews(); } }; } @@ -832,7 +827,7 @@ private void initNews() { SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences(); mIsNewsOn = BravePrefServiceBridge.getInstance().getNewsOptIn(); - mIsShowOptin = sharedPreferences.getBoolean(BraveNewsPreferences.PREF_SHOW_OPTIN, false); + mIsShowOptin = sharedPreferences.getBoolean(BraveNewsPreferences.PREF_SHOW_OPTIN, true); mIsShowNewsOn = BravePrefServiceBridge.getInstance().getShowNews(); if ((!mIsNewsOn && mIsShowOptin) || (mIsNewsOn && mIsShowOptin)) { @@ -1279,6 +1274,8 @@ public void onClick(View v) { SharedPreferences.Editor sharedPreferencesEditor = sharedPreferences.edit(); sharedPreferencesEditor.putBoolean(BraveNewsPreferences.PREF_SHOW_OPTIN, false); sharedPreferencesEditor.apply(); + BravePrefServiceBridge.getInstance().setNewsOptIn(true); + BravePrefServiceBridge.getInstance().setShowNews(false); correctPosition(false); mParentScrollView.fullScroll(NestedScrollView.FOCUS_UP); mImageCreditLayout.setAlpha(1.0f); diff --git a/android/java/org/chromium/chrome/browser/settings/BraveNewsPreferences.java b/android/java/org/chromium/chrome/browser/settings/BraveNewsPreferences.java index 0d62bfac8289..d09c087b2205 100644 --- a/android/java/org/chromium/chrome/browser/settings/BraveNewsPreferences.java +++ b/android/java/org/chromium/chrome/browser/settings/BraveNewsPreferences.java @@ -196,29 +196,43 @@ public void onCreate(Bundle savedInstanceState) { mAddSource.setText(""); } - // Ensure the shownews pref is false when it's unchechecked - if (!mShowNews.isChecked()) { - BravePrefServiceBridge.getInstance().setShowNews(false); + boolean isNewsOn = BravePrefServiceBridge.getInstance().getNewsOptIn(); + boolean isShowNewsOn = BravePrefServiceBridge.getInstance().getShowNews(); + if (isNewsOn) { + mTurnOnNews.setVisible(false); + mShowNews.setVisible(true); + if (isShowNewsOn) { + mShowNews.setChecked(true); + } + setSourcesVisibility(isShowNewsOn); + } else { + mTurnOnNews.setChecked(false); + mShowNews.setVisible(false); + setSourcesVisibility(isNewsOn); } - mTurnOnNews.setVisible(false); - setSourcesVisibility(BravePrefServiceBridge.getInstance().getShowNews()); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); if (PREF_TURN_ON_NEWS.equals(key)) { - // Unused for now as we temporarly remove the Enable switch - BravePrefServiceBridge.getInstance().setShowNews(false); + if ((boolean) newValue) { + mTurnOnNews.setVisible(false); + mShowNews.setVisible(true); + mShowNews.setChecked(true); + BravePrefServiceBridge.getInstance().setNewsOptIn(true); + BravePrefServiceBridge.getInstance().setShowNews(true); + SharedPreferences.Editor sharedPreferencesEditor = + ContextUtils.getAppSharedPreferences().edit(); + sharedPreferencesEditor.putBoolean(BraveNewsPreferences.PREF_SHOW_OPTIN, false); + sharedPreferencesEditor.apply(); + } } else if (PREF_SHOW_NEWS.equals(key)) { SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); sharedPreferencesEditor.putBoolean(BraveNewsPreferences.PREF_SHOW_OPTIN, false); sharedPreferencesEditor.apply(); BravePrefServiceBridge.getInstance().setShowNews((boolean) newValue); - // Sets Enable switch to the same value to keep the conditions in BraveNewTabLayout.java - // valid - BravePrefServiceBridge.getInstance().setNewsOptIn((boolean) newValue); } else if (PREF_RSS_SOURCES.equals(key)) { if (((String) newValue).equals("")) {