Fixed issues with the handling of a null contact
Bug: 3215879
Bug: 3203553
Change-Id: Icc3f588dff88c375ab72b4d55b4a74ea311cf885
diff --git a/src/com/android/contacts/views/ContactLoader.java b/src/com/android/contacts/views/ContactLoader.java
index 85ca803..b3001a2 100644
--- a/src/com/android/contacts/views/ContactLoader.java
+++ b/src/com/android/contacts/views/ContactLoader.java
@@ -956,6 +956,10 @@
mLoadGroupMetaData = loadGroupMetaData;
}
+ public Uri getLookupUri() {
+ return mLookupUri;
+ }
+
@Override
public void startLoading() {
if (mContact != null) {
diff --git a/src/com/android/contacts/views/detail/ContactDetailFragment.java b/src/com/android/contacts/views/detail/ContactDetailFragment.java
index eb5c65c..9fdb59e 100644
--- a/src/com/android/contacts/views/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/views/detail/ContactDetailFragment.java
@@ -271,6 +271,7 @@
mTransitionAnimationRequested = mContactDataDisplayed;
mContactDataDisplayed = true;
if (mLookupUri == null) {
+ getLoaderManager().stopLoader(LOADER_DETAILS);
mContactData = null;
bindData();
} else if (getActivity() != null) {
@@ -1245,14 +1246,18 @@
@Override
public void onLoadFinished(Loader<ContactLoader.Result> loader, ContactLoader.Result data) {
- if (data == ContactLoader.Result.NOT_FOUND || data == ContactLoader.Result.ERROR) {
- // Item has been deleted
- Log.i(TAG, "No contact found. Closing activity");
- if (mListener != null) mListener.onContactNotFound();
- return;
+ if (data != ContactLoader.Result.NOT_FOUND && data != ContactLoader.Result.ERROR) {
+ mContactData = data;
+ } else {
+ Log.i(TAG, "No contact found: " + ((ContactLoader)loader).getLookupUri());
+ mContactData = null;
}
- mContactData = data;
+
bindData();
+
+ if (mContactData == null && mListener != null) {
+ mListener.onContactNotFound();
+ }
}
};