summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaurice Chu <mochu@google.com>2012-04-30 17:47:47 -0700
committerMaurice Chu <mochu@google.com>2012-04-30 17:47:47 -0700
commit2871d61514f014926d991e8b037828c67438e522 (patch)
tree7b0e00268fd32e648ec88aecd4fee320a443b75e
parent311882ab2fc1e9c8264f5892a6d50722b834e348 (diff)
downloadpackages_apps_Contacts-2871d61514f014926d991e8b037828c67438e522.tar.gz
packages_apps_Contacts-2871d61514f014926d991e8b037828c67438e522.tar.bz2
packages_apps_Contacts-2871d61514f014926d991e8b037828c67438e522.zip
Made Favorites view in portrait orientation in 7" look like phone
Added two new configuration parameters in resources: - (integer) contact_tile_column_count_in_favorites - which specifies the number of columns for the image thumbnails in the favorites tab - (bool) config_use_two_panes_in_favorites - indicates whether favorites should be shown in two-pane mode Bug: 6379260 Change-Id: I41100b2aee507e0b9a2a37e9149b944a4831a3e9
-rw-r--r--res/layout-sw580dp/people_activity.xml41
-rw-r--r--res/values-sw580dp-w940dp/donottranslate_config.xml1
-rw-r--r--res/values-sw580dp-w940dp/integers.xml1
-rw-r--r--res/values-sw580dp/donottranslate_config.xml1
-rw-r--r--res/values-sw580dp/integers.xml1
-rw-r--r--res/values-sw680dp-w1000dp/donottranslate_config.xml22
-rw-r--r--res/values-sw680dp-w1000dp/integers.xml3
-rw-r--r--res/values-sw680dp/donottranslate_config.xml1
-rw-r--r--res/values-sw680dp/integers.xml1
-rw-r--r--res/values-w470dp/integers.xml1
-rw-r--r--res/values/donottranslate_config.xml6
-rw-r--r--res/values/integers.xml3
-rw-r--r--src/com/android/contacts/activities/PeopleActivity.java16
-rw-r--r--src/com/android/contacts/list/ContactTileListFragment.java18
-rw-r--r--src/com/android/contacts/list/PhoneFavoriteFragment.java2
-rw-r--r--src/com/android/contacts/util/PhoneCapabilityTester.java7
16 files changed, 59 insertions, 66 deletions
diff --git a/res/layout-sw580dp/people_activity.xml b/res/layout-sw580dp/people_activity.xml
index 93f77957b..42c6afc59 100644
--- a/res/layout-sw580dp/people_activity.xml
+++ b/res/layout-sw580dp/people_activity.xml
@@ -78,7 +78,7 @@
class="com.android.contacts.detail.ContactLoaderFragment"
android:layout_height="0dip"
android:layout_width="0dip"
- android:visibility="gone"/>
+ android:visibility="gone" />
</view>
<!-- Right panel detail view for Groups tab -->
@@ -100,42 +100,21 @@
android:visibility="gone" />
</view>
- <!-- Two-panel view under the Favorites tab -->
- <LinearLayout
+ <!-- Single panel view under the Favorites tab (Strequent) -->
+ <FrameLayout
android:id="@+id/favorites_view"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/list_background_holo"
- android:baselineAligned="false">
-
- <!-- Starred -->
- <FrameLayout
- android:layout_width="0dip"
- android:layout_height="match_parent"
- android:layout_weight="10"
- android:background="@drawable/panel_favorites_holo_light">
+ android:layout_height="match_parent">
- <fragment
- android:id="@+id/favorites_fragment"
- class="com.android.contacts.list.ContactTileListFragment"
- android:layout_height="match_parent"
- android:layout_width="match_parent"
- android:layout_marginRight="16dip"
- android:layout_marginLeft="16dip"/>
-
- </FrameLayout>
-
- <!-- Most Frequent -->
<fragment
- android:id="@+id/frequent_fragment"
- class="com.android.contacts.list.ContactTileFrequentFragment"
- android:layout_width="0dip"
+ android:id="@+id/favorites_fragment"
+ class="com.android.contacts.list.ContactTileListFragment"
android:layout_height="match_parent"
- android:layout_weight="8"
- android:layout_marginTop="16dip"
- android:layout_marginRight="16dip"/>
+ android:layout_width="match_parent"
+ android:layout_marginRight="16dip"
+ android:layout_marginLeft="16dip" />
- </LinearLayout>
+ </FrameLayout>
</LinearLayout>
diff --git a/res/values-sw580dp-w940dp/donottranslate_config.xml b/res/values-sw580dp-w940dp/donottranslate_config.xml
index 92d2780cb..5e5be3098 100644
--- a/res/values-sw580dp-w940dp/donottranslate_config.xml
+++ b/res/values-sw580dp-w940dp/donottranslate_config.xml
@@ -19,4 +19,5 @@
<resources>
<bool name="config_browse_list_show_images">true</bool>
+ <bool name="config_use_two_panes_in_favorites">true</bool>
</resources>
diff --git a/res/values-sw580dp-w940dp/integers.xml b/res/values-sw580dp-w940dp/integers.xml
index 8ce96de4a..191eeb801 100644
--- a/res/values-sw580dp-w940dp/integers.xml
+++ b/res/values-sw580dp-w940dp/integers.xml
@@ -15,5 +15,6 @@
-->
<resources>
<integer name="contact_tile_column_count">3</integer>
+ <integer name="contact_tile_column_count_in_favorites">3</integer>
<integer name="updates_tab_snippet_max_lines">7</integer>
</resources>
diff --git a/res/values-sw580dp/donottranslate_config.xml b/res/values-sw580dp/donottranslate_config.xml
index cf4286e60..3d0dea078 100644
--- a/res/values-sw580dp/donottranslate_config.xml
+++ b/res/values-sw580dp/donottranslate_config.xml
@@ -19,6 +19,7 @@
<resources>
<bool name="config_use_two_panes">true</bool>
+ <bool name="config_use_two_panes_in_favorites">false</bool>
<bool name="show_home_icon">true</bool>
<bool name="config_show_group_action_in_action_bar">false</bool>
<bool name="config_browse_list_show_images">false</bool>
diff --git a/res/values-sw580dp/integers.xml b/res/values-sw580dp/integers.xml
index a62fa1481..cdf6e4a6e 100644
--- a/res/values-sw580dp/integers.xml
+++ b/res/values-sw580dp/integers.xml
@@ -15,5 +15,6 @@
-->
<resources>
<integer name="contact_tile_column_count">2</integer>
+ <integer name="contact_tile_column_count_in_favorites">3</integer>
<integer name="updates_tab_snippet_max_lines">4</integer>
</resources>
diff --git a/res/values-sw680dp-w1000dp/donottranslate_config.xml b/res/values-sw680dp-w1000dp/donottranslate_config.xml
deleted file mode 100644
index 92d2780cb..000000000
--- a/res/values-sw680dp-w1000dp/donottranslate_config.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<resources>
- <bool name="config_browse_list_show_images">true</bool>
-</resources>
diff --git a/res/values-sw680dp-w1000dp/integers.xml b/res/values-sw680dp-w1000dp/integers.xml
index 5fda2ed54..bc9b2b700 100644
--- a/res/values-sw680dp-w1000dp/integers.xml
+++ b/res/values-sw680dp-w1000dp/integers.xml
@@ -15,4 +15,5 @@
-->
<resources>
<integer name="contact_tile_column_count">4</integer>
-</resources> \ No newline at end of file
+ <integer name="contact_tile_column_count_in_favorites">4</integer>
+</resources>
diff --git a/res/values-sw680dp/donottranslate_config.xml b/res/values-sw680dp/donottranslate_config.xml
index 92d2780cb..5e5be3098 100644
--- a/res/values-sw680dp/donottranslate_config.xml
+++ b/res/values-sw680dp/donottranslate_config.xml
@@ -19,4 +19,5 @@
<resources>
<bool name="config_browse_list_show_images">true</bool>
+ <bool name="config_use_two_panes_in_favorites">true</bool>
</resources>
diff --git a/res/values-sw680dp/integers.xml b/res/values-sw680dp/integers.xml
index eaf597190..5b348a510 100644
--- a/res/values-sw680dp/integers.xml
+++ b/res/values-sw680dp/integers.xml
@@ -15,5 +15,6 @@
-->
<resources>
<integer name="contact_tile_column_count">2</integer>
+ <integer name="contact_tile_column_count_in_favorites">2</integer>
<integer name="updates_tab_snippet_max_lines">7</integer>
</resources>
diff --git a/res/values-w470dp/integers.xml b/res/values-w470dp/integers.xml
index d247e463e..bc9b2b700 100644
--- a/res/values-w470dp/integers.xml
+++ b/res/values-w470dp/integers.xml
@@ -15,4 +15,5 @@
-->
<resources>
<integer name="contact_tile_column_count">4</integer>
+ <integer name="contact_tile_column_count_in_favorites">4</integer>
</resources>
diff --git a/res/values/donottranslate_config.xml b/res/values/donottranslate_config.xml
index 64a12437c..dd9409779 100644
--- a/res/values/donottranslate_config.xml
+++ b/res/values/donottranslate_config.xml
@@ -107,6 +107,12 @@
shown in their own screens. This flag must be in sync with the layout definitions. -->
<bool name="config_use_two_panes">false</bool>
+ <!-- If true, Contacts uses two panes in the favorites view, one for starred and one for
+ frequently contacted. If false, only one list is shown with starred on top and frequently
+ contacted listed below. Note: This should not be true if config_use_two_panes is
+ false. -->
+ <bool name="config_use_two_panes_in_favorites">false</bool>
+
<!-- If true, the "home" icon on the action bar will be shown. -->
<bool name="show_home_icon">false</bool>
diff --git a/res/values/integers.xml b/res/values/integers.xml
index e742ba068..6d5f7c9c8 100644
--- a/res/values/integers.xml
+++ b/res/values/integers.xml
@@ -18,6 +18,9 @@
<!-- Determines the number of columns in a ContactTileRow -->
<integer name="contact_tile_column_count">2</integer>
+ <!-- Determines the number of columns in a ContactTileRow in the favorites tab -->
+ <integer name="contact_tile_column_count_in_favorites">2</integer>
+
<!-- Max lines to display of a contact's snippet in the "updates" tab of the contact card tab carousel -->
<integer name="updates_tab_snippet_max_lines">3</integer>
</resources>
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 2d6e4c8bc..4955b1a34 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -402,11 +402,13 @@ public class PeopleActivity extends ContactsActivity
mGroupDetailsView = getView(R.id.group_details_view);
mBrowserView = getView(R.id.browse_view);
- // 2-pane only fragments
- mFrequentFragment = getFragment(R.id.frequent_fragment);
- mFrequentFragment.setListener(mFavoritesFragmentListener);
- mFrequentFragment.setDisplayType(DisplayType.FREQUENT_ONLY);
- mFrequentFragment.enableQuickContact(true);
+ // Only favorites tab with two panes has a separate frequent fragment
+ if (PhoneCapabilityTester.isUsingTwoPanesInFavorites(this)) {
+ mFrequentFragment = getFragment(R.id.frequent_fragment);
+ mFrequentFragment.setListener(mFavoritesFragmentListener);
+ mFrequentFragment.setDisplayType(DisplayType.FREQUENT_ONLY);
+ mFrequentFragment.enableQuickContact(true);
+ }
mContactDetailLoaderFragment = getFragment(R.id.contact_detail_loader_fragment);
mContactDetailLoaderFragment.setListener(mContactDetailLoaderFragmentListener);
@@ -430,7 +432,7 @@ public class PeopleActivity extends ContactsActivity
fragmentManager.executePendingTransactions();
// Setting Properties after fragment is created
- if (PhoneCapabilityTester.isUsingTwoPanes(this)) {
+ if (PhoneCapabilityTester.isUsingTwoPanesInFavorites(this)) {
mFavoritesFragment.enableQuickContact(true);
mFavoritesFragment.setDisplayType(DisplayType.STARRED_ONLY);
} else {
@@ -1448,7 +1450,7 @@ public class PeopleActivity extends ContactsActivity
* @return
*/
private boolean hasFrequents() {
- if (PhoneCapabilityTester.isUsingTwoPanes(this)) {
+ if (PhoneCapabilityTester.isUsingTwoPanesInFavorites(this)) {
return mFrequentFragment.hasFrequents();
} else {
return mFavoritesFragment.hasFrequents();
diff --git a/src/com/android/contacts/list/ContactTileListFragment.java b/src/com/android/contacts/list/ContactTileListFragment.java
index 9f34c543e..4ee20f5dd 100644
--- a/src/com/android/contacts/list/ContactTileListFragment.java
+++ b/src/com/android/contacts/list/ContactTileListFragment.java
@@ -19,6 +19,7 @@ import com.android.contacts.ContactPhotoManager;
import com.android.contacts.ContactTileLoaderFactory;
import com.android.contacts.R;
import com.android.contacts.list.ContactTileAdapter.DisplayType;
+import com.android.contacts.util.PhoneCapabilityTester;
import android.app.Activity;
import android.app.Fragment;
@@ -31,6 +32,7 @@ import android.database.Cursor;
import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -53,8 +55,6 @@ public class ContactTileListFragment extends Fragment {
void onCallNumberDirectly(String phoneNumber);
}
- private static int LOADER_CONTACTS = 1;
-
private Listener mListener;
private ContactTileAdapter mAdapter;
private DisplayType mDisplayType;
@@ -68,7 +68,7 @@ public class ContactTileListFragment extends Fragment {
super.onAttach(activity);
Resources res = getResources();
- int columnCount = res.getInteger(R.integer.contact_tile_column_count);
+ int columnCount = res.getInteger(R.integer.contact_tile_column_count_in_favorites);
mAdapter = new ContactTileAdapter(activity, mAdapterListener,
columnCount, mDisplayType);
@@ -97,7 +97,17 @@ public class ContactTileListFragment extends Fragment {
@Override
public void onStart() {
super.onStart();
- getLoaderManager().initLoader(LOADER_CONTACTS, null, mContactTileLoaderListener);
+
+ // initialize the loader for this display type and destroy all others
+ final DisplayType[] loaderTypes = mDisplayType.values();
+ for (int i = 0; i < loaderTypes.length; i++) {
+ if (loaderTypes[i] == mDisplayType) {
+ getLoaderManager().initLoader(mDisplayType.ordinal(), null,
+ mContactTileLoaderListener);
+ } else {
+ getLoaderManager().destroyLoader(loaderTypes[i].ordinal());
+ }
+ }
}
/**
diff --git a/src/com/android/contacts/list/PhoneFavoriteFragment.java b/src/com/android/contacts/list/PhoneFavoriteFragment.java
index a8eafdcdd..170790ff8 100644
--- a/src/com/android/contacts/list/PhoneFavoriteFragment.java
+++ b/src/com/android/contacts/list/PhoneFavoriteFragment.java
@@ -275,7 +275,7 @@ public class PhoneFavoriteFragment extends Fragment implements OnItemClickListen
// that will be available on onCreateView().
mContactTileAdapter = new ContactTileAdapter(activity, mContactTileAdapterListener,
- getResources().getInteger(R.integer.contact_tile_column_count),
+ getResources().getInteger(R.integer.contact_tile_column_count_in_favorites),
ContactTileAdapter.DisplayType.STREQUENT_PHONE_ONLY);
mContactTileAdapter.setPhotoLoader(ContactPhotoManager.getInstance(activity));
diff --git a/src/com/android/contacts/util/PhoneCapabilityTester.java b/src/com/android/contacts/util/PhoneCapabilityTester.java
index d3a806026..ce248bbaf 100644
--- a/src/com/android/contacts/util/PhoneCapabilityTester.java
+++ b/src/com/android/contacts/util/PhoneCapabilityTester.java
@@ -89,4 +89,11 @@ public final class PhoneCapabilityTester {
public static boolean isUsingTwoPanes(Context context) {
return context.getResources().getBoolean(R.bool.config_use_two_panes);
}
+
+ /**
+ * True if the favorites tab should be shown in two-pane mode. False, otherwise.
+ */
+ public static boolean isUsingTwoPanesInFavorites(Context context) {
+ return context.getResources().getBoolean(R.bool.config_use_two_panes_in_favorites);
+ }
}