Merge "Fix NPE caused by status update outside activity lifecycle" into lmp-mr1-dev

This commit is contained in:
Alexandra Gherghina
2014-11-18 10:02:36 +00:00
committed by Android (Google) Code Review
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

View File

@@ -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();
}
}
/**