Fix NPE caused by status update outside activity lifecycle

Bug: 18373656
Change-Id: I3c7db15df7c47b65a42a13fc7a3a077c3ad48f77
This commit is contained in:
Alexandra Gherghina
2014-11-14 12:29:28 +00:00
parent b4e9a055bf
commit 2a3d649766
2 changed files with 18 additions and 5 deletions

View File

@@ -24,6 +24,7 @@ import android.accounts.AccountManagerCallback;
import android.accounts.AccountManagerFuture;
import android.accounts.AuthenticatorException;
import android.accounts.OperationCanceledException;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.ContentResolver;
@@ -313,12 +314,18 @@ public class AccountSyncSettings extends AccountPreferenceBase {
private void startSyncForEnabledProviders() {
requestOrCancelSyncForEnabledProviders(true /* start them */);
getActivity().invalidateOptionsMenu();
final Activity activity = getActivity();
if (activity != null) {
activity.invalidateOptionsMenu();
}
}
private void cancelSyncForEnabledProviders() {
requestOrCancelSyncForEnabledProviders(false /* cancel them */);
getActivity().invalidateOptionsMenu();
final Activity activity = getActivity();
if (activity != null) {
activity.invalidateOptionsMenu();
}
}
private void requestOrCancelSyncForEnabledProviders(boolean startSync) {
@@ -367,7 +374,10 @@ public class AccountSyncSettings extends AccountPreferenceBase {
protected void onSyncStateUpdated() {
if (!isResumed()) return;
setFeedsState();
getActivity().invalidateOptionsMenu();
final Activity activity = getActivity();
if (activity != null) {
activity.invalidateOptionsMenu();
}
}
private void setFeedsState() {
@@ -440,7 +450,6 @@ public class AccountSyncSettings extends AccountPreferenceBase {
syncPref.setChecked(oneTimeSyncMode || syncEnabled);
}
mErrorInfoView.setVisibility(syncIsFailing ? View.VISIBLE : View.GONE);
getActivity().invalidateOptionsMenu();
}
@Override