Fix NPE caused by status update outside activity lifecycle
Bug: 18373656 Change-Id: I3c7db15df7c47b65a42a13fc7a3a077c3ad48f77
This commit is contained in:
@@ -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
|
||||
|
@@ -231,7 +231,11 @@ public class ManageAccountsSettings extends AccountPreferenceBase
|
||||
@Override
|
||||
protected void onSyncStateUpdated() {
|
||||
showSyncState();
|
||||
getActivity().invalidateOptionsMenu();
|
||||
// Catch any delayed delivery of update messages
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) {
|
||||
activity.invalidateOptionsMenu();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user