Merge "Fix pop-up menus for photos in contact editor" into jb-dev
diff --git a/res/layout-sw580dp/search_header.xml b/res/layout-sw580dp/search_header.xml
index cf09190..85f0169 100644
--- a/res/layout-sw580dp/search_header.xml
+++ b/res/layout-sw580dp/search_header.xml
@@ -16,9 +16,10 @@
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
android:id="@+id/totalContactsText"
android:minHeight="@dimen/contact_filter_header_min_height"
- android:paddingTop="10dip"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="?android:attr/textColorTertiary"
- android:textStyle="bold" />
+ android:paddingTop="24dip"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="?android:attr/textColorTertiary" />
diff --git a/res/layout/search_header.xml b/res/layout/search_header.xml
index 44e4632..6907a62 100644
--- a/res/layout/search_header.xml
+++ b/res/layout/search_header.xml
@@ -16,8 +16,11 @@
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
android:id="@+id/totalContactsText"
android:minHeight="@dimen/contact_filter_header_min_height"
- android:paddingTop="10dip"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="?android:attr/textColorSecondary" />
\ No newline at end of file
+ android:paddingTop="24dip"
+ android:gravity="center_horizontal"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ android:textColor="?android:attr/textColorSecondary" />
diff --git a/res/mipmap-hdpi/ic_launcher_contacts.png b/res/mipmap-hdpi/ic_launcher_contacts.png
index fa60a53..e0136f6 100644
--- a/res/mipmap-hdpi/ic_launcher_contacts.png
+++ b/res/mipmap-hdpi/ic_launcher_contacts.png
Binary files differ
diff --git a/res/mipmap-hdpi/ic_launcher_shortcut_contact.png b/res/mipmap-hdpi/ic_launcher_shortcut_contact.png
index c867181..e132cd0 100644
--- a/res/mipmap-hdpi/ic_launcher_shortcut_contact.png
+++ b/res/mipmap-hdpi/ic_launcher_shortcut_contact.png
Binary files differ
diff --git a/res/mipmap-hdpi/ic_launcher_shortcut_directdial.png b/res/mipmap-hdpi/ic_launcher_shortcut_directdial.png
index c515815..f6ec866 100644
--- a/res/mipmap-hdpi/ic_launcher_shortcut_directdial.png
+++ b/res/mipmap-hdpi/ic_launcher_shortcut_directdial.png
Binary files differ
diff --git a/res/mipmap-hdpi/ic_launcher_shortcut_directmessage.png b/res/mipmap-hdpi/ic_launcher_shortcut_directmessage.png
index a347fa1..c8eb467 100644
--- a/res/mipmap-hdpi/ic_launcher_shortcut_directmessage.png
+++ b/res/mipmap-hdpi/ic_launcher_shortcut_directmessage.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_contacts.png b/res/mipmap-mdpi/ic_launcher_contacts.png
index b50d7dd..3d490c3 100644
--- a/res/mipmap-mdpi/ic_launcher_contacts.png
+++ b/res/mipmap-mdpi/ic_launcher_contacts.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_shortcut_contact.png b/res/mipmap-mdpi/ic_launcher_shortcut_contact.png
index dd3c8ff..218c915 100644
--- a/res/mipmap-mdpi/ic_launcher_shortcut_contact.png
+++ b/res/mipmap-mdpi/ic_launcher_shortcut_contact.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_shortcut_directdial.png b/res/mipmap-mdpi/ic_launcher_shortcut_directdial.png
index 1dfe8cc..50278c3 100644
--- a/res/mipmap-mdpi/ic_launcher_shortcut_directdial.png
+++ b/res/mipmap-mdpi/ic_launcher_shortcut_directdial.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_shortcut_directmessage.png b/res/mipmap-mdpi/ic_launcher_shortcut_directmessage.png
index c7dc525..698971b 100644
--- a/res/mipmap-mdpi/ic_launcher_shortcut_directmessage.png
+++ b/res/mipmap-mdpi/ic_launcher_shortcut_directmessage.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_contacts.png b/res/mipmap-xhdpi/ic_launcher_contacts.png
index 4b7eaaa..dde3cbb 100644
--- a/res/mipmap-xhdpi/ic_launcher_contacts.png
+++ b/res/mipmap-xhdpi/ic_launcher_contacts.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_shortcut_contact.png b/res/mipmap-xhdpi/ic_launcher_shortcut_contact.png
index baeb41f..8a5e25a 100644
--- a/res/mipmap-xhdpi/ic_launcher_shortcut_contact.png
+++ b/res/mipmap-xhdpi/ic_launcher_shortcut_contact.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_shortcut_directdial.png b/res/mipmap-xhdpi/ic_launcher_shortcut_directdial.png
index 39d039a..e060bc5 100644
--- a/res/mipmap-xhdpi/ic_launcher_shortcut_directdial.png
+++ b/res/mipmap-xhdpi/ic_launcher_shortcut_directdial.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_shortcut_directmessage.png b/res/mipmap-xhdpi/ic_launcher_shortcut_directmessage.png
index 7dd5d39..3222dc8 100644
--- a/res/mipmap-xhdpi/ic_launcher_shortcut_directmessage.png
+++ b/res/mipmap-xhdpi/ic_launcher_shortcut_directmessage.png
Binary files differ
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e24a7c3..8292a56 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -349,7 +349,7 @@
<string name="foundTooManyContacts">More than <xliff:g id="count">%d</xliff:g> found.</string>
<!-- Displayed at the top of the contacts showing the zero total number of contacts found when "Only contacts with phones" not selected. [CHAR LIMIT=30] -->
- <string name="listFoundAllContactsZero">None found.</string>
+ <string name="listFoundAllContactsZero">No contacts</string>
<!-- Displayed at the top of the contacts showing the total number of contacts found when typing search query -->
<plurals name="searchFoundContacts">
diff --git a/src/com/android/contacts/ContactLoader.java b/src/com/android/contacts/ContactLoader.java
index ab2ac41..10579f3 100644
--- a/src/com/android/contacts/ContactLoader.java
+++ b/src/com/android/contacts/ContactLoader.java
@@ -84,22 +84,25 @@
private boolean mLoadGroupMetaData;
private boolean mLoadStreamItems;
private boolean mLoadInvitableAccountTypes;
+ private boolean mPostViewNotification;
private Result mContact;
private ForceLoadContentObserver mObserver;
private final Set<Long> mNotifiedRawContactIds = Sets.newHashSet();
- public ContactLoader(Context context, Uri lookupUri) {
- this(context, lookupUri, false, false, false);
+ public ContactLoader(Context context, Uri lookupUri, boolean postViewNotification) {
+ this(context, lookupUri, false, false, false, postViewNotification);
}
public ContactLoader(Context context, Uri lookupUri, boolean loadGroupMetaData,
- boolean loadStreamItems, boolean loadInvitableAccountTypes) {
+ boolean loadStreamItems, boolean loadInvitableAccountTypes,
+ boolean postViewNotification) {
super(context);
mLookupUri = lookupUri;
mRequestedUri = lookupUri;
mLoadGroupMetaData = loadGroupMetaData;
mLoadStreamItems = loadStreamItems;
mLoadInvitableAccountTypes = loadInvitableAccountTypes;
+ mPostViewNotification = postViewNotification;
}
/**
@@ -1236,8 +1239,10 @@
mLookupUri, true, mObserver);
}
- // inform the source of the data that this contact is being looked at
- postViewNotificationToSyncAdapter();
+ if (mPostViewNotification) {
+ // inform the source of the data that this contact is being looked at
+ postViewNotificationToSyncAdapter();
+ }
}
super.deliverResult(mContact);
@@ -1301,11 +1306,13 @@
*/
public void upgradeToFullContact() {
// Everything requested already? Nothing to do, so let's bail out
- if (mLoadGroupMetaData && mLoadInvitableAccountTypes && mLoadStreamItems) return;
+ if (mLoadGroupMetaData && mLoadInvitableAccountTypes && mLoadStreamItems
+ && mPostViewNotification) return;
mLoadGroupMetaData = true;
mLoadInvitableAccountTypes = true;
mLoadStreamItems = true;
+ mPostViewNotification = true;
// Cache the current result, so that we only load the "missing" parts of the contact.
cacheResult();
diff --git a/src/com/android/contacts/ViewNotificationService.java b/src/com/android/contacts/ViewNotificationService.java
index a0890f2..a85c780 100644
--- a/src/com/android/contacts/ViewNotificationService.java
+++ b/src/com/android/contacts/ViewNotificationService.java
@@ -40,7 +40,7 @@
// We simply need to start a Loader here. When its done, it will send out the
// View-Notification automatically.
- final ContactLoader contactLoader = new ContactLoader(this, intent.getData());
+ final ContactLoader contactLoader = new ContactLoader(this, intent.getData(), true);
contactLoader.registerListener(0, new OnLoadCompleteListener<ContactLoader.Result>() {
@Override
public void onLoadComplete(Loader<Result> loader, Result data) {
diff --git a/src/com/android/contacts/activities/AttachPhotoActivity.java b/src/com/android/contacts/activities/AttachPhotoActivity.java
index 5a26ea2..7ae6e1e 100644
--- a/src/com/android/contacts/activities/AttachPhotoActivity.java
+++ b/src/com/android/contacts/activities/AttachPhotoActivity.java
@@ -149,7 +149,7 @@
// although this is convenient, it isn't quite as robust as using LoaderManager... for
// instance, the loader doesn't persist across Activity restarts.
private void loadContact(Uri contactUri, final Listener listener) {
- final ContactLoader loader = new ContactLoader(this, contactUri);
+ final ContactLoader loader = new ContactLoader(this, contactUri, true);
loader.registerListener(0, new OnLoadCompleteListener<ContactLoader.Result>() {
@Override
public void onLoadComplete(
diff --git a/src/com/android/contacts/detail/ContactLoaderFragment.java b/src/com/android/contacts/detail/ContactLoaderFragment.java
index 25c60d6..242b12b 100644
--- a/src/com/android/contacts/detail/ContactLoaderFragment.java
+++ b/src/com/android/contacts/detail/ContactLoaderFragment.java
@@ -185,7 +185,8 @@
public Loader<ContactLoader.Result> onCreateLoader(int id, Bundle args) {
Uri lookupUri = args.getParcelable(LOADER_ARG_CONTACT_URI);
return new ContactLoader(mContext, lookupUri, true /* loadGroupMetaData */,
- true /* loadStreamItems */, true /* load invitable account types */);
+ true /* loadStreamItems */, true /* load invitable account types */,
+ true /* postViewNotification */);
}
@Override
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index c8aa336..962a46b 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -1673,7 +1673,7 @@
@Override
public Loader<ContactLoader.Result> onCreateLoader(int id, Bundle args) {
mLoaderStartTime = SystemClock.elapsedRealtime();
- return new ContactLoader(mContext, mLookupUri);
+ return new ContactLoader(mContext, mLookupUri, true);
}
@Override
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 9c71ee2..7c93a26 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -562,7 +562,7 @@
if (mLookupUri == null) {
Log.wtf(TAG, "Lookup uri wasn't initialized. Loader was started too early");
}
- return new ContactLoader(getApplicationContext(), mLookupUri);
+ return new ContactLoader(getApplicationContext(), mLookupUri, false);
}
};
diff --git a/src/com/android/contacts/socialwidget/SocialWidgetProvider.java b/src/com/android/contacts/socialwidget/SocialWidgetProvider.java
index 6b56470..3283efd 100644
--- a/src/com/android/contacts/socialwidget/SocialWidgetProvider.java
+++ b/src/com/android/contacts/socialwidget/SocialWidgetProvider.java
@@ -116,7 +116,7 @@
return;
}
final ContactLoader contactLoader = new ContactLoader(context, contactUri, false, true,
- false);
+ false, true);
contactLoader.registerListener(0,
new ContactLoader.OnLoadCompleteListener<ContactLoader.Result>() {
@Override
diff --git a/tests/src/com/android/contacts/ContactLoaderTest.java b/tests/src/com/android/contacts/ContactLoaderTest.java
index f88b64e..5c215f9 100644
--- a/tests/src/com/android/contacts/ContactLoaderTest.java
+++ b/tests/src/com/android/contacts/ContactLoaderTest.java
@@ -75,7 +75,7 @@
}
private ContactLoader.Result assertLoadContact(Uri uri) {
- final ContactLoader loader = new ContactLoader(mMockContext, uri);
+ final ContactLoader loader = new ContactLoader(mMockContext, uri, true);
return getLoaderResultSynchronously(loader);
}