diff options
author | Andrew Lee <anwlee@google.com> | 2014-06-10 15:09:46 -0700 |
---|---|---|
committer | Andrew Lee <anwlee@google.com> | 2014-06-10 16:37:10 -0700 |
commit | 0a4327e6bfeedc23ddefb4df9f6e8041ebc87b59 (patch) | |
tree | 3fb090bcdcab68a17e4539b22241b4b28f9614c0 /src | |
parent | a6d7bd355e37674b4982525227bc969ea3a0c738 (diff) |
Update empty list assets and text.
- Add new assets for empty lists, delete old no favorites banner.
- Adapt phone_no_favorites.xml into generic container shown when
a list is empty.
- Add helper to DialerUtils to configure empty list view with
a provided image and message.
- Configure empty list view in relevant fragments.
- Some text styling/margin/padding to get things to spec. A
minimum height is used on the message so that the icons and text
will be laid out in a consistent manner.
Bug: 15513399
Change-Id: I52337a4544065a991d3b8084d96b01516a458c42
Diffstat (limited to 'src')
4 files changed, 49 insertions, 9 deletions
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java index ad86e240d..4f5c35518 100644 --- a/src/com/android/dialer/calllog/CallLogFragment.java +++ b/src/com/android/dialer/calllog/CallLogFragment.java @@ -40,6 +40,7 @@ import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; +import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; @@ -50,6 +51,7 @@ import com.android.contacts.common.util.PhoneNumberHelper; import com.android.contacts.common.util.ViewUtil; import com.android.dialer.R; import com.android.dialer.list.ListsFragment.HostInterface; +import com.android.dialer.util.DialerUtils; import com.android.dialer.util.EmptyLoader; import com.android.dialer.voicemail.VoicemailStatusHelper; import com.android.dialer.voicemail.VoicemailStatusHelper.StatusMessage; @@ -298,9 +300,11 @@ public class CallLogFragment extends ListFragment @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - updateEmptyMessage(mCallTypeFilter); + getListView().setEmptyView(view.findViewById(R.id.empty_list_view)); getListView().setItemsCanFocus(true); maybeAddFooterView(); + + updateEmptyMessage(mCallTypeFilter); } /** @@ -413,22 +417,23 @@ public class CallLogFragment extends ListFragment } private void updateEmptyMessage(int filterType) { - final String message; + final int messageId; switch (filterType) { case Calls.MISSED_TYPE: - message = getString(R.string.recentMissed_empty); + messageId = R.string.recentMissed_empty; break; case Calls.VOICEMAIL_TYPE: - message = getString(R.string.recentVoicemails_empty); + messageId = R.string.recentVoicemails_empty; break; case CallLogQueryHandler.CALL_TYPE_ALL: - message = getString(R.string.recentCalls_empty); + messageId = R.string.recentCalls_empty; break; default: throw new IllegalArgumentException("Unexpected filter type in CallLogFragment: " + filterType); } - ((TextView) getListView().getEmptyView()).setText(message); + DialerUtils.configureEmptyListView( + getListView().getEmptyView(), R.drawable.empty_call_log, messageId, getResources()); } public void callSelectedEntry() { diff --git a/src/com/android/dialer/list/AllContactsFragment.java b/src/com/android/dialer/list/AllContactsFragment.java index a796680e9..ddcb15df4 100644 --- a/src/com/android/dialer/list/AllContactsFragment.java +++ b/src/com/android/dialer/list/AllContactsFragment.java @@ -23,8 +23,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; -import android.widget.ListView; -import android.widget.QuickContactBadge; import com.android.contacts.common.list.ContactEntryListAdapter; import com.android.contacts.common.list.ContactEntryListFragment; @@ -32,6 +30,7 @@ import com.android.contacts.common.list.ContactListFilter; import com.android.contacts.common.list.DefaultContactListAdapter; import com.android.contacts.common.util.ViewUtil; import com.android.dialer.R; +import com.android.dialer.util.DialerUtils; /** * Fragments to show all contacts with phone numbers. @@ -50,6 +49,12 @@ public class AllContactsFragment extends ContactEntryListFragment<ContactEntryLi @Override public void onViewCreated(View view, android.os.Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); + + View emptyListView = view.findViewById(R.id.empty_list_view); + DialerUtils.configureEmptyListView(emptyListView, R.drawable.empty_contacts, + R.string.listFoundAllContactsZero, getResources()); + getListView().setEmptyView(emptyListView); + ViewUtil.addBottomPaddingToListViewForFab(getListView(), getResources()); } diff --git a/src/com/android/dialer/list/SpeedDialFragment.java b/src/com/android/dialer/list/SpeedDialFragment.java index 6e86a3e36..c21449288 100644 --- a/src/com/android/dialer/list/SpeedDialFragment.java +++ b/src/com/android/dialer/list/SpeedDialFragment.java @@ -23,6 +23,7 @@ import android.app.Fragment; import android.app.LoaderManager; import android.content.CursorLoader; import android.content.Loader; +import android.content.res.Resources; import android.database.Cursor; import android.graphics.Rect; import android.net.Uri; @@ -47,6 +48,7 @@ import com.android.contacts.common.ContactTileLoaderFactory; import com.android.contacts.common.list.ContactTileView; import com.android.contacts.common.list.OnPhoneNumberPickerActionListener; import com.android.dialer.R; +import com.android.dialer.util.DialerUtils; import java.util.ArrayList; import java.util.HashMap; @@ -208,7 +210,10 @@ public class SpeedDialFragment extends Fragment implements OnItemClickListener, (ImageView) getActivity().findViewById(R.id.contact_tile_drag_shadow_overlay); mListView.setDragShadowOverlay(dragShadowOverlay); - mEmptyView = mParentView.findViewById(R.id.phone_no_favorites_view); + final Resources resources = getResources(); + mEmptyView = mParentView.findViewById(R.id.empty_list_view); + DialerUtils.configureEmptyListView( + mEmptyView, R.drawable.empty_speed_dial, R.string.no_favorites, getResources()); mContactTileFrame = mParentView.findViewById(R.id.contact_tile_frame); diff --git a/src/com/android/dialer/util/DialerUtils.java b/src/com/android/dialer/util/DialerUtils.java index 584caa9a1..f1dfe20e0 100644 --- a/src/com/android/dialer/util/DialerUtils.java +++ b/src/com/android/dialer/util/DialerUtils.java @@ -21,8 +21,12 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.content.res.Resources; import android.net.Uri; import android.provider.Telephony; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; import android.widget.Toast; import com.android.contacts.common.CallUtil; @@ -82,4 +86,25 @@ public class DialerUtils { } return null; } + + /** + * Sets the image asset and text for an empty list view (see empty_list_view.xml). + * + * @param emptyListView The empty list view. + * @param imageResId The resource id for the drawable to set as the image. + * @param strResId The resource id for the string to set as the message. + * @param res The resources to obtain the image and string from. + */ + public static void configureEmptyListView( + View emptyListView, int imageResId, int strResId, Resources res) { + ImageView emptyListViewImage = + (ImageView) emptyListView.findViewById(R.id.emptyListViewImage); + + emptyListViewImage.setImageDrawable(res.getDrawable(imageResId)); + emptyListViewImage.setContentDescription(res.getString(strResId)); + + TextView emptyListViewMessage = + (TextView) emptyListView.findViewById(R.id.emptyListViewMessage); + emptyListViewMessage.setText(res.getString(strResId)); + } } |