summaryrefslogtreecommitdiff
path: root/src/com/android/dialer
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/dialer')
-rw-r--r--src/com/android/dialer/PhoneCallDetails.java13
-rw-r--r--src/com/android/dialer/PhoneCallDetailsHelper.java11
-rw-r--r--src/com/android/dialer/calllog/CallLogAdapter.java5
-rw-r--r--src/com/android/dialer/list/ListsFragment.java23
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();
}
}