From 98c596734a55a2fe9b8b0fccb45b2a9c1645ccb3 Mon Sep 17 00:00:00 2001 From: Ruslan Abdikeev Date: Mon, 8 Jun 2015 17:26:19 -0700 Subject: [PATCH] Revert of Revert of Ignore account management actions after onSaveInstanceState (patchset #1 id:1 of https://codereview.chromium.org/1143933005/) Reason for revert: Red herring; the actual reason for "non-working" "sign-out" and "go incognito" buttons was incorrect (absent) initialization of upstream-split parts of AccountManagementFragment. Original issue's description: > Revert of Ignore account management actions after onSaveInstanceState (patchset #1 id:1 of https://codereview.chromium.org/1144113005/) > > Reason for revert: > Nopes, didn't help, but made things worse: running another activity renders the dialog fragment unusable. > > Original issue's description: > > Ignore account management actions after onSaveInstanceState > > > > BUG=490629 > > > > Committed: https://crrev.com/01ef47a29ff30d2edf7e46fe70000cf5a54a4f2b > > Cr-Commit-Position: refs/heads/master@{#331909} > > TBR=newt@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=490629 > > Committed: https://crrev.com/c6f70ebd508e0245eae4ecc026ef5316a617493e > Cr-Commit-Position: refs/heads/master@{#332067} TBR=newt@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=490629 Review URL: https://codereview.chromium.org/1171763002 Cr-Commit-Position: refs/heads/master@{#333344} (cherry picked from commit 4e82fd7ba27533a09704d476d42d5726aabc29ff) Review URL: https://codereview.chromium.org/1173473002. Cr-Commit-Position: refs/branch-heads/2403@{#251} Cr-Branched-From: f54b8097a9c45ed4ad308133d49f05325d6c5070-refs/heads/master@{#330231} --- .../browser/signin/AccountManagementFragment.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java index 1c102ffdebfb1..9faee3126a445 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java @@ -118,6 +118,8 @@ public class AccountManagementFragment extends PreferenceFragment private ArrayList mAccountsListPreferences = new ArrayList(); private Preference mPrimaryAccountPreference; + private boolean mSaveInstanceStateWasCalled; + private AccountManagementFragmentDelegate getDelegate() { return AccountManagementScreenHelper.getDelegate(); } @@ -157,6 +159,12 @@ public void onPause() { ProfileSyncService.get(getActivity()).removeSyncStateChangedListener(this); } + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + mSaveInstanceStateWasCalled = true; + } + /** * Initiate fetching the user accounts data (images and the full name). * Fetched data will be sent to observers of ProfileDownloader. @@ -219,6 +227,7 @@ private void configureSignOutSwitch() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { if ((boolean) newValue) return true; + if (mSaveInstanceStateWasCalled) return false; if (ChromeSigninController.get(getActivity()).isSignedIn() && getSignOutAllowedPreferenceValue(getActivity())) { @@ -252,6 +261,8 @@ private void configureAddAccountPreference(String fullName) { addAccount.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { + if (mSaveInstanceStateWasCalled) return false; + AccountManagementScreenHelper.logEvent( ProfileAccountManagementMetrics.ADD_ACCOUNT, mGaiaServiceType); @@ -284,6 +295,7 @@ private void configureGoIncognitoPreferences(String fullName) { goIncognito.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { + if (mSaveInstanceStateWasCalled) return false; if (!PrefServiceBridge.getInstance().isIncognitoModeEnabled()) return false; AccountManagementFragmentDelegate delegate = getDelegate(); @@ -389,6 +401,8 @@ private void updateAccountsList() { pref.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { + if (mSaveInstanceStateWasCalled) return false; + AccountManagementScreenHelper.logEvent( ProfileAccountManagementMetrics.CLICK_PRIMARY_ACCOUNT, mGaiaServiceType);