Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 697ab26e authored by Josh Gargus's avatar Josh Gargus
Browse files

Prevent action-bar icons from changing while QuickContacts active.

We were setting a flag in onPause() to ensure that we re-initialize the UI
properly in onResume().  However, this was causing a side-effect when the
background PeopleActivity received loader-notifications that were triggered
by the foreground QuickContactsActivity, because the code triggered by the
loader-notification was looking at the flag set in onPause().

To fix this, showContactsUnavailableFragmentIfNecessary(), gains a boolean
"forceUpdate" argument, which more directly reflects the intended usage.

Also, rename sCUFIN() to updateViewConfiguration().  It's cleaner.  And more
accurate.

Bug: 6117162
Change-Id: I35b9f06c0deeffe94d5cf80d4df58a9866387792
parent 05cbcc93
Loading
Loading
Loading
Loading
+6 −10
Original line number Original line Diff line number Diff line
@@ -150,7 +150,7 @@ public class PeopleActivity extends ContactsActivity


    private ContactsUnavailableFragment mContactsUnavailableFragment;
    private ContactsUnavailableFragment mContactsUnavailableFragment;
    private ProviderStatusWatcher mProviderStatusWatcher;
    private ProviderStatusWatcher mProviderStatusWatcher;
    private int mProviderStatus = -1;
    private int mProviderStatus;


    private boolean mOptionsMenuContactsAvailable;
    private boolean mOptionsMenuContactsAvailable;


@@ -490,8 +490,6 @@ public class PeopleActivity extends ContactsActivity
    @Override
    @Override
    protected void onPause() {
    protected void onPause() {
        mOptionsMenuContactsAvailable = false;
        mOptionsMenuContactsAvailable = false;

        mProviderStatus = -1;
        mProviderStatusWatcher.stop();
        mProviderStatusWatcher.stop();
        super.onPause();
        super.onPause();
    }
    }
@@ -499,8 +497,9 @@ public class PeopleActivity extends ContactsActivity
    @Override
    @Override
    protected void onResume() {
    protected void onResume() {
        super.onResume();
        super.onResume();

        mProviderStatusWatcher.start();
        mProviderStatusWatcher.start();
        showContactsUnavailableFragmentIfNecessary();
        updateViewConfiguration(true);


        // Re-register the listener, which may have been cleared when onSaveInstanceState was
        // Re-register the listener, which may have been cleared when onSaveInstanceState was
        // called.  See also: onSaveInstanceState
        // called.  See also: onSaveInstanceState
@@ -983,15 +982,12 @@ public class PeopleActivity extends ContactsActivity


    @Override
    @Override
    public void onProviderStatusChange() {
    public void onProviderStatusChange() {
        showContactsUnavailableFragmentIfNecessary();
        updateViewConfiguration(false);
    }
    }


    private void showContactsUnavailableFragmentIfNecessary() {
    private void updateViewConfiguration(boolean forceUpdate) {
        int providerStatus = mProviderStatusWatcher.getProviderStatus();
        int providerStatus = mProviderStatusWatcher.getProviderStatus();
        if (providerStatus == mProviderStatus) {
        if (!forceUpdate && (providerStatus == mProviderStatus)) return;
            return;
        }

        mProviderStatus = providerStatus;
        mProviderStatus = providerStatus;


        View contactsUnavailableView = findViewById(R.id.contacts_unavailable_view);
        View contactsUnavailableView = findViewById(R.id.contacts_unavailable_view);