diff options
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/dialer/PhoneCallDetails.java | 13 | ||||
-rw-r--r-- | src/com/android/dialer/PhoneCallDetailsHelper.java | 11 | ||||
-rw-r--r-- | src/com/android/dialer/calllog/CallLogAdapter.java | 5 | ||||
-rw-r--r-- | src/com/android/dialer/list/ListsFragment.java | 23 |
4 files changed, 35 insertions, 17 deletions
diff --git a/src/com/android/dialer/PhoneCallDetails.java b/src/com/android/dialer/PhoneCallDetails.java index add63151a..403c4e86c 100644 --- a/src/com/android/dialer/PhoneCallDetails.java +++ b/src/com/android/dialer/PhoneCallDetails.java @@ -19,12 +19,9 @@ package com.android.dialer; import com.android.dialer.calllog.PhoneNumberDisplayUtil; import android.content.Context; -import android.graphics.drawable.Drawable; import android.net.Uri; import android.provider.CallLog.Calls; -import android.provider.ContactsContract.CommonDataKinds.Phone; import android.telecom.PhoneAccountHandle; -import android.text.TextUtils; /** * The details of a phone call to be shown in the UI. @@ -87,10 +84,19 @@ public class PhoneCallDetails { // Voicemail transcription public String transcription; + // The display string for the number. public String displayNumber; + + // Whether the contact number is a voicemail number. public boolean isVoicemail; /** + * If this is a voicemail, whether the message is read. For other types of calls, this defaults + * to {@code true}. + */ + public boolean isRead = true; + + /** * Constructor with required fields for the details of a call with a number associated with a * contact. */ @@ -104,7 +110,6 @@ public class PhoneCallDetails { this.numberPresentation = numberPresentation; this.formattedNumber = formattedNumber; this.isVoicemail = isVoicemail; - this.displayNumber = PhoneNumberDisplayUtil.getDisplayNumber( context, this.number, diff --git a/src/com/android/dialer/PhoneCallDetailsHelper.java b/src/com/android/dialer/PhoneCallDetailsHelper.java index 68b47afcf..2dc0810e8 100644 --- a/src/com/android/dialer/PhoneCallDetailsHelper.java +++ b/src/com/android/dialer/PhoneCallDetailsHelper.java @@ -18,6 +18,7 @@ package com.android.dialer; import android.content.Context; import android.content.res.Resources; +import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.provider.CallLog; import android.provider.CallLog.Calls; @@ -140,6 +141,12 @@ public class PhoneCallDetailsHelper { views.voicemailTranscriptionView.setText(null); views.voicemailTranscriptionView.setVisibility(View.GONE); } + + // Bold if not read + Typeface typeface = details.isRead ? Typeface.SANS_SERIF : Typeface.DEFAULT_BOLD; + views.nameView.setTypeface(typeface); + views.voicemailTranscriptionView.setTypeface(typeface); + views.callLocationAndDate.setTypeface(typeface); } /** @@ -183,7 +190,9 @@ public class PhoneCallDetailsHelper { if (TextUtils.isEmpty(details.name) && !TextUtils.isEmpty(details.geocode)) { numberFormattedLabel = details.geocode; - } else { + } else if (!(details.numberType == Phone.TYPE_CUSTOM + && TextUtils.isEmpty(details.numberLabel))) { + // Get type label only if it will not be "Custom" because of an empty number label. numberFormattedLabel = Phone.getTypeLabel( mResources, details.numberType, details.numberLabel); } diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java index bd478bd38..921ec506c 100644 --- a/src/com/android/dialer/calllog/CallLogAdapter.java +++ b/src/com/android/dialer/calllog/CallLogAdapter.java @@ -24,6 +24,7 @@ import android.net.Uri; import android.support.v7.widget.RecyclerView; import android.os.Bundle; import android.os.Trace; +import android.provider.CallLog; import android.support.v7.widget.RecyclerView.ViewHolder; import android.telecom.PhoneAccountHandle; import android.telephony.PhoneNumberUtils; @@ -291,7 +292,6 @@ public class CallLogAdapter extends GroupingListAdapter private ViewHolder createCallLogEntryViewHolder(ViewGroup parent) { LayoutInflater inflater = LayoutInflater.from(mContext); View view = inflater.inflate(R.layout.call_log_list_item, parent, false); - CallLogListItemViewHolder viewHolder = CallLogListItemViewHolder.create( view, mContext, @@ -360,6 +360,9 @@ public class CallLogAdapter extends GroupingListAdapter details.features = getCallFeatures(c, count); details.geocode = c.getString(CallLogQuery.GEOCODED_LOCATION); details.transcription = c.getString(CallLogQuery.TRANSCRIPTION); + if (details.callTypes[0] == CallLog.Calls.VOICEMAIL_TYPE) { + details.isRead = c.getInt(CallLogQuery.IS_READ) == 1; + } if (!c.isNull(CallLogQuery.DATA_USAGE)) { details.dataUsage = c.getLong(CallLogQuery.DATA_USAGE); diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java index 49226d61e..0e3df5284 100644 --- a/src/com/android/dialer/list/ListsFragment.java +++ b/src/com/android/dialer/list/ListsFragment.java @@ -9,6 +9,7 @@ import android.content.SharedPreferences; import android.database.Cursor; import android.os.Bundle; import android.os.Trace; +import android.preference.PreferenceManager; import android.provider.CallLog.Calls; import android.support.v13.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; @@ -62,7 +63,7 @@ public class ListsFragment extends Fragment // Oldest recents entry to display is 2 weeks old. private static final long OLDEST_RECENTS_DATE = 1000L * 60 * 60 * 24 * 14; - private static final String KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER = + private static final String PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER = "has_active_voicemail_provider"; public interface HostInterface { @@ -81,7 +82,9 @@ public class ListsFragment extends Fragment private AllContactsFragment mAllContactsFragment; private CallLogFragment mVoicemailFragment; + private SharedPreferences mPrefs; private boolean mHasActiveVoicemailProvider; + private VoicemailStatusHelper mVoicemailStatusHelper; private ArrayList<OnPageChangeListener> mOnPageChangeListeners = new ArrayList<OnPageChangeListener>(); @@ -165,10 +168,10 @@ public class ListsFragment extends Fragment mVoicemailStatusHelper = new VoicemailStatusHelperImpl(); - if (savedInstanceState != null) { - mHasActiveVoicemailProvider = savedInstanceState.getBoolean( - KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER, false); - } + mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); + mHasActiveVoicemailProvider = mPrefs.getBoolean( + PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER, false); + Trace.endSection(); } @@ -235,12 +238,6 @@ public class ListsFragment extends Fragment } @Override - public void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putBoolean(KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER, mHasActiveVoicemailProvider); - } - - @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { mTabIndex = getRtlPosition(position); @@ -283,6 +280,10 @@ public class ListsFragment extends Fragment mHasActiveVoicemailProvider = hasActiveVoicemailProvider; mViewPagerAdapter.notifyDataSetChanged(); mViewPagerTabs.setViewPager(mViewPager); + + mPrefs.edit() + .putBoolean(PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER, hasActiveVoicemailProvider) + .commit(); } } |