diff options
Diffstat (limited to 'java/com/android/dialer/app/calllog')
3 files changed, 40 insertions, 30 deletions
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java index 589029827..47ef32d42 100644 --- a/java/com/android/dialer/app/calllog/CallLogAdapter.java +++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java @@ -610,29 +610,31 @@ public class CallLogAdapter extends GroupingListAdapter // Restoring multi selected entries ArrayList<String> listOfSelectedItems = savedInstanceState.getStringArrayList(KEY_ACTION_MODE); - LogUtil.i( - "CallLogAdapter.onRestoreInstanceState", - "restored selectedItemsList:%d", - listOfSelectedItems.size()); - - if (!listOfSelectedItems.isEmpty()) { - for (int i = 0; i < listOfSelectedItems.size(); i++) { - String voicemailUri = listOfSelectedItems.get(i); - int id = getVoicemailId(voicemailUri); + if (listOfSelectedItems != null) { + LogUtil.i( + "CallLogAdapter.onRestoreInstanceState", + "restored selectedItemsList:%d", + listOfSelectedItems.size()); + + if (!listOfSelectedItems.isEmpty()) { + for (int i = 0; i < listOfSelectedItems.size(); i++) { + String voicemailUri = listOfSelectedItems.get(i); + int id = getVoicemailId(voicemailUri); + LogUtil.i( + "CallLogAdapter.onRestoreInstanceState", + "restoring selected index %d, id=%d, uri=%s ", + i, + id, + voicemailUri); + selectedItems.put(id, voicemailUri); + } + LogUtil.i( - "CallLogAdapter.onRestoreInstanceState", - "restoring selected index %d, id=%d, uri=%s ", - i, - id, - voicemailUri); - selectedItems.put(id, voicemailUri); + "CallLogAdapter.onRestoreInstance", + "restored selectedItems %s", + selectedItems.toString()); + updateActionBar(); } - - LogUtil.i( - "CallLogAdapter.onRestoreInstance", - "restored selectedItems %s", - selectedItems.toString()); - updateActionBar(); } } } diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java index 5cb0244c5..5e8da032b 100644 --- a/java/com/android/dialer/app/calllog/CallLogFragment.java +++ b/java/com/android/dialer/app/calllog/CallLogFragment.java @@ -450,7 +450,9 @@ public class CallLogFragment extends Fragment @Override public void onDestroy() { LogUtil.enterBlock("CallLogFragment.onDestroy"); - mAdapter.changeCursor(null); + if (mAdapter != null) { + mAdapter.changeCursor(null); + } getActivity().getContentResolver().unregisterContentObserver(mCallLogObserver); getActivity().getContentResolver().unregisterContentObserver(mContactsObserver); @@ -467,7 +469,9 @@ public class CallLogFragment extends Fragment outState.putBoolean(KEY_HAS_READ_CALL_LOG_PERMISSION, mHasReadCallLogPermission); outState.putBoolean(KEY_REFRESH_DATA_REQUIRED, mRefreshDataRequired); outState.putBoolean(KEY_SELECT_ALL_MODE, selectAllMode); - mAdapter.onSaveInstanceState(outState); + if (mAdapter != null) { + mAdapter.onSaveInstanceState(outState); + } } @Override diff --git a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java index 96d917318..9d8b04036 100644 --- a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java +++ b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java @@ -128,19 +128,23 @@ public class VisualVoicemailCallLogFragment extends CallLogFragment { @Override public void onDestroy() { - getActivity() - .getContentResolver() - .unregisterContentObserver(mVoicemailErrorManager.getContentObserver()); - mVoicemailPlaybackPresenter.onDestroy(); - mVoicemailErrorManager.onDestroy(); - getActivity().getContentResolver().unregisterContentObserver(mVoicemailStatusObserver); + if (isAdded()) { + getActivity() + .getContentResolver() + .unregisterContentObserver(mVoicemailErrorManager.getContentObserver()); + mVoicemailPlaybackPresenter.onDestroy(); + mVoicemailErrorManager.onDestroy(); + getActivity().getContentResolver().unregisterContentObserver(mVoicemailStatusObserver); + } super.onDestroy(); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - mVoicemailPlaybackPresenter.onSaveInstanceState(outState); + if (mVoicemailPlaybackPresenter != null) { + mVoicemailPlaybackPresenter.onSaveInstanceState(outState); + } } @Override |