Merge "Import translations. DO NOT MERGE" into lmp-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index fa13adf..05cd5b5 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -40,6 +40,7 @@
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
+ <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE" />
<uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL" />
<uses-permission android:name="com.android.voicemail.permission.WRITE_VOICEMAIL" />
<uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL" />
@@ -294,7 +295,8 @@
</receiver>
<service android:name="com.android.incallui.InCallServiceImpl"
- android:process="com.android.incallui">
+ android:process="com.android.incallui"
+ android:permission="android.permission.BIND_INCALL_SERVICE" >
<intent-filter>
<action android:name="android.telecomm.InCallService"/>
</intent-filter>
diff --git a/res/drawable/floating_action_button.xml b/res/drawable/floating_action_button.xml
index 347e9d4..cbbfb85 100644
--- a/res/drawable/floating_action_button.xml
+++ b/res/drawable/floating_action_button.xml
@@ -16,6 +16,6 @@
-->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="@color/dialer_accent_color">
+ android:color="@color/floating_action_button_touch_tint">
<item android:drawable="@drawable/fab_blue" />
</ripple>
diff --git a/res/layout/call_log_list_item.xml b/res/layout/call_log_list_item.xml
index 4dcffb1..761f352 100644
--- a/res/layout/call_log_list_item.xml
+++ b/res/layout/call_log_list_item.xml
@@ -65,8 +65,9 @@
android:id="@+id/quick_contact_photo"
android:layout_width="@dimen/contact_photo_size"
android:layout_height="@dimen/contact_photo_size"
+ android:paddingTop="2dp"
android:nextFocusRight="@id/primary_action_view"
- android:layout_alignParentStart="true"
+ android:layout_gravity="top"
android:focusable="true"
/>
<LinearLayout
@@ -118,6 +119,7 @@
android:layout_height="@dimen/call_provider_small_icon_size"
android:layout_marginEnd="@dimen/call_log_icon_margin"
android:layout_gravity="center_vertical"
+ android:tint="?attr/call_log_secondary_text_color"
android:scaleType="centerInside"
/>
<TextView
@@ -137,9 +139,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
+ android:layout_marginEnd="@dimen/call_log_icon_margin"
android:src="@drawable/ic_card_phone"
android:tint="@color/recent_call_log_item_phone_icon_tint"
android:alpha="0.3"
+ android:importantForAccessibility="no"
android:visibility="gone"
/>
</LinearLayout>
diff --git a/res/layout/call_log_list_item_extra.xml b/res/layout/call_log_list_item_extra.xml
index fbf71f6..3623e3f 100644
--- a/res/layout/call_log_list_item_extra.xml
+++ b/res/layout/call_log_list_item_extra.xml
@@ -24,8 +24,6 @@
<View android:layout_width="match_parent"
android:layout_height="1px"
- android:layout_marginStart="@dimen/call_log_outer_margin"
- android:layout_marginEnd="@dimen/call_log_outer_margin"
android:background="@color/favorite_contacts_separator_color"/>
<LinearLayout android:id="@+id/badge_link_container"
@@ -40,9 +38,11 @@
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/badge_image"
+ android:tint="@color/dialpad_primary_text_color"
android:padding="@dimen/call_log_outer_margin"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:paddingStart="@dimen/call_log_start_margin"
android:id="@+id/badge_text"
android:textColor="@color/dialpad_primary_text_color"
android:layout_gravity="center_vertical"
@@ -50,8 +50,11 @@
<ImageView android:id="@+id/dismiss_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:paddingTop="8dip"
+ android:layout_gravity="center_vertical"
+ android:layout_marginEnd="@dimen/call_log_icon_margin"
android:src="@drawable/ic_close_dk"
+ android:tint="@color/recent_call_log_item_phone_icon_tint"
+ android:alpha="0.3"
android:background="?android:attr/selectableItemBackground"
android:visibility="gone"
android:contentDescription="@string/description_dismiss"/>
diff --git a/res/layout/phone_disambig_item.xml b/res/layout/phone_disambig_item.xml
index a097ce7..27bbda1 100755
--- a/res/layout/phone_disambig_item.xml
+++ b/res/layout/phone_disambig_item.xml
@@ -14,7 +14,8 @@
limitations under the License.
-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<view class="com.android.contacts.common.widget.ActivityTouchLinearLayout"
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
@@ -39,4 +40,4 @@
android:textAppearance="?android:attr/textAppearanceSmall"
android:textDirection="ltr" />
-</LinearLayout>
+</view>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 448d1e6..a3fd3f9 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -19,7 +19,6 @@
<color name="dialtacts_primary_text_color">#333</color>
<!-- Secondary text color in the Dialer -->
<color name="dialtacts_secondary_text_color">#737373</color>
- <color name="dialer_accent_color">#eeff41</color>
<color name="dialer_red_highlight_color">#ff1744</color>
<color name="dialer_green_highlight_color">#00c853</color>
@@ -100,7 +99,8 @@
<!-- Color for icons in the actionbar -->
<color name="actionbar_icon_color">#ffffff</color>
- <color name="dialer_dialpad_touch_tint">#331dc7db</color>
+ <color name="dialer_dialpad_touch_tint">#330288d1</color>
+ <color name="floating_action_button_touch_tint">#80ffffff</color>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5098369..f9bd79e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -788,17 +788,17 @@
<!-- Title for the category "sounds", which is shown above sounds and vibration related
settings. [CHAR LIMIT=30] -->
- <string name="sounds_and_vibrate_category_title">Sounds and Vibrate</string>
+ <string name="sounds_and_vibrate_category_title">Sounds and vibrate</string>
<!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
<string name="ringtone_title">Phone ringtone</string>
<!-- Setting option name to enable or disable vibration when ringing the phone.
[CHAR LIMIT=30] -->
- <string name="vibrate_on_ring_title">Vibrate when ringing</string>
+ <string name="vibrate_on_ring_title">"Also vibrate for calls</string>
<!-- Setting option name to enable or disable DTMF tone sound [CHAR LIMIT=30] -->
- <string name="dtmf_tone_enable_title">Dialpad touch tones</string>
+ <string name="dtmf_tone_enable_title">Dialpad tones</string>
<!-- Label for section of general call settings where miscellaneous settings are listed. -->
<string name="other_settings_title">Other</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index d0836a5..9d0fcd0 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -29,6 +29,7 @@
<item name="android:windowContentOverlay">@null</item>
<item name="android:listViewStyle">@style/ListViewStyle</item>
<item name="android:overlapAnchor">true</item>
+ <item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
<item name="activated_background">@drawable/list_item_activated_background</item>
<item name="section_header_background">@drawable/list_title_holo</item>
<item name="list_section_header_height">32dip</item>
@@ -164,5 +165,13 @@
<!-- Setting description. -->
<item name="android:textColorTertiary">@color/setting_secondary_color</item>
<item name="android:windowBackground">@color/setting_background_color</item>
+ <item name="android:colorAccent">@color/dialtacts_theme_color</item>
+ <item name="android:textColorLink">@color/dialtacts_theme_color</item>
+ </style>
+
+ <!-- Inherit from Theme.Material.Light.Dialog instead of Theme.Material.Light.Dialog.Alert
+ since the Alert dialog is private. They are identical anyway. -->
+ <style name="AlertDialogTheme" parent="@android:style/Theme.Material.Light.Dialog">
+ <item name="android:colorAccent">@color/dialtacts_theme_color</item>
</style>
</resources>
diff --git a/res/xml/general_settings.xml b/res/xml/general_settings.xml
index ecccdfd..7410211 100644
--- a/res/xml/general_settings.xml
+++ b/res/xml/general_settings.xml
@@ -48,17 +48,17 @@
android:ringtoneType="ringtone" />
<CheckBoxPreference
- android:key="button_vibrate_on_ring"
- android:title="@string/vibrate_on_ring_title"
- android:persistent="false"
- android:defaultValue="false" />
-
- <CheckBoxPreference
android:key="button_play_dtmf_tone"
android:title="@string/dtmf_tone_enable_title"
android:persistent="false"
android:defaultValue="true" />
+ <CheckBoxPreference
+ android:key="button_vibrate_on_ring"
+ android:title="@string/vibrate_on_ring_title"
+ android:persistent="false"
+ android:defaultValue="false" />
+
</PreferenceCategory>
<PreferenceCategory
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 12c52da..36f7b8d 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -102,7 +102,6 @@
* The dialer tab's title is 'phone', a more common name (see strings.xml).
*/
public class DialtactsActivity extends TransactionSafeActivity implements View.OnClickListener,
- View.OnTouchListener,
DialpadFragment.OnDialpadQueryChangedListener,
OnListFragmentScrolledListener,
DialpadFragment.HostInterface,
@@ -230,10 +229,6 @@
private String mActionMenuDialpadButtonStr;
private ImageButton mFloatingActionButton;
private FloatingActionButtonController mFloatingActionButtonController;
- /**
- * Additional offset for FAB to be lowered when dialpad is open.
- */
- private int mFloatingActionButtonDialpadMarginBottomOffset;
private int mActionBarHeight;
@@ -342,6 +337,15 @@
};
@Override
+ public boolean dispatchTouchEvent(MotionEvent ev) {
+ if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+ TouchPointManager.getInstance().setPoint((int) ev.getRawX(), (int) ev.getRawY());
+ }
+ return super.dispatchTouchEvent(ev);
+
+ }
+
+ @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mFirstLaunch = true;
@@ -390,11 +394,8 @@
int floatingActionButtonWidth = resources.getDimensionPixelSize(
R.dimen.floating_action_button_width);
mFloatingActionButton.setOnClickListener(this);
- mFloatingActionButton.setOnTouchListener(this);
mFloatingActionButtonController = new FloatingActionButtonController(this,
- floatingActionButtonContainer);
- mFloatingActionButtonDialpadMarginBottomOffset = resources.getDimensionPixelOffset(
- R.dimen.floating_action_button_dialpad_margin_bottom_offset);
+ floatingActionButtonContainer, mFloatingActionButton);
ImageButton optionsMenuButton =
(ImageButton) searchEditTextLayout.findViewById(R.id.dialtacts_options_menu_button);
@@ -467,8 +468,6 @@
if (!mIsDialpadShown) {
maybeExitSearchUi();
}
-
- recordTouchEvent(v, event);
return false;
}
});
@@ -570,18 +569,6 @@
}
@Override
- public boolean onTouch(View view, MotionEvent event) {
- recordTouchEvent(view, event);
- return false;
- }
-
- private void recordTouchEvent(View view, MotionEvent event) {
- if (event.getAction() == MotionEvent.ACTION_DOWN) {
- TouchPointManager.getInstance().setPoint((int) event.getRawX(), (int) event.getRawY());
- }
- }
-
- @Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_history:
@@ -1207,9 +1194,6 @@
align = FloatingActionButtonController.ALIGN_END;
}
}
- mFloatingActionButtonController.align(align,
- 0 /* offsetX */,
- mIsDialpadShown ? mFloatingActionButtonDialpadMarginBottomOffset : 0 /* offsetY */,
- animate);
+ mFloatingActionButtonController.align(align, 0 /* offsetX */, 0 /* offsetY */, animate);
}
}
diff --git a/src/com/android/dialer/PhoneCallDetailsHelper.java b/src/com/android/dialer/PhoneCallDetailsHelper.java
index be5ee72..c5f2fb6 100644
--- a/src/com/android/dialer/PhoneCallDetailsHelper.java
+++ b/src/com/android/dialer/PhoneCallDetailsHelper.java
@@ -25,6 +25,7 @@
import android.view.View;
import android.widget.TextView;
+import com.android.contacts.common.CallUtil;
import com.android.contacts.common.testing.NeededForTesting;
import com.android.contacts.common.util.PhoneNumberHelper;
import com.android.dialer.calllog.CallTypeHelper;
@@ -32,7 +33,6 @@
import com.android.dialer.calllog.PhoneNumberDisplayHelper;
import com.android.dialer.calllog.PhoneNumberUtilsWrapper;
import com.android.dialer.util.DialerUtils;
-
import com.google.common.collect.Lists;
import java.util.ArrayList;
@@ -85,8 +85,7 @@
// Show the video icon if the call had video enabled.
views.callTypeIcons.setShowVideo(
- (details.features & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO
- && DialerUtils.isVideoEnabled());
+ (details.features & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO);
views.callTypeIcons.requestLayout();
views.callTypeIcons.setVisibility(View.VISIBLE);
diff --git a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
index 7a8b922..d53f77f 100644
--- a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
+++ b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
@@ -26,6 +26,7 @@
import android.widget.BaseAdapter;
import android.widget.TextView;
+import com.android.contacts.common.CallUtil;
import com.android.dialer.PhoneCallDetails;
import com.android.dialer.R;
import com.android.dialer.util.DialerUtils;
@@ -123,7 +124,7 @@
int callType = details.callTypes[0];
boolean isVideoCall = (details.features & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO
- && DialerUtils.isVideoEnabled();
+ && CallUtil.isVideoEnabled(mContext);
callTypeIconView.clear();
callTypeIconView.add(callType);
diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java
index 0054ac0..2a47271 100644
--- a/src/com/android/dialer/calllog/CallLogActivity.java
+++ b/src/com/android/dialer/calllog/CallLogActivity.java
@@ -29,7 +29,9 @@
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+import android.view.MotionEvent;
+import com.android.contacts.common.interactions.TouchPointManager;
import com.android.contacts.common.list.ViewPagerTabs;
import com.android.dialer.DialtactsActivity;
import com.android.dialer.R;
@@ -104,6 +106,14 @@
}
@Override
+ public boolean dispatchTouchEvent(MotionEvent ev) {
+ if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+ TouchPointManager.getInstance().setPoint((int) ev.getRawX(), (int) ev.getRawY());
+ }
+ return super.dispatchTouchEvent(ev);
+ }
+
+ @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 64b1055..e009dda 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -16,7 +16,6 @@
package com.android.dialer.calllog;
-import android.content.ComponentName;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
@@ -29,9 +28,7 @@
import android.provider.CallLog.Calls;
import android.provider.ContactsContract.PhoneLookup;
import android.telecomm.PhoneAccountHandle;
-import android.telecomm.TelecommManager;
import android.text.TextUtils;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.AccessibilityDelegate;
@@ -39,7 +36,6 @@
import android.view.ViewStub;
import android.view.ViewTreeObserver;
import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityRecord;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@@ -66,6 +62,8 @@
public class CallLogAdapter extends GroupingListAdapter
implements ViewTreeObserver.OnPreDrawListener, CallLogGroupBuilder.GroupCreator {
+ private static final int VOICEMAIL_TRANSCRIPTION_MAX_LINES = 10;
+
/** The enumeration of {@link android.os.AsyncTask} objects used in this class. */
public enum Tasks {
REMOVE_CALL_LOG_ENTRIES,
@@ -777,7 +775,7 @@
null, accountIcon, features, dataUsage, transcription);
}
- mCallLogViewsHelper.setPhoneCallDetails(views, details);
+ mCallLogViewsHelper.setPhoneCallDetails(mContext, views, details);
int contactType = ContactPhotoManager.TYPE_DEFAULT;
@@ -887,6 +885,7 @@
private void expandOrCollapseActions(CallLogListItemView callLogItem, boolean isExpanded) {
final CallLogListItemViews views = (CallLogListItemViews)callLogItem.getTag();
+ expandVoicemailTranscriptionView(views, isExpanded);
if (isExpanded) {
// Inflate the view stub if necessary, and wire up the event handlers.
inflateActionViewStub(callLogItem);
@@ -909,6 +908,20 @@
}
}
+ public static void expandVoicemailTranscriptionView(CallLogListItemViews views,
+ boolean isExpanded) {
+ if (views.callType != Calls.VOICEMAIL_TYPE) {
+ return;
+ }
+
+ final TextView view = views.phoneCallDetailsViews.voicemailTranscriptionView;
+ if (TextUtils.isEmpty(view.getText())) {
+ return;
+ }
+ view.setMaxLines(isExpanded ? VOICEMAIL_TRANSCRIPTION_MAX_LINES : 1);
+ view.setSingleLine(!isExpanded);
+ }
+
/**
* Configures the action buttons in the expandable actions ViewStub. The ViewStub is not
* inflated during initial binding, so click handlers, tags and accessibility text must be set
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java
index ded65ed..b75e1c6 100644
--- a/src/com/android/dialer/calllog/CallLogFragment.java
+++ b/src/com/android/dialer/calllog/CallLogFragment.java
@@ -17,8 +17,8 @@
package com.android.dialer.calllog;
import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
-import android.animation.Animator.AnimatorListener;
import android.app.Activity;
import android.app.DialogFragment;
import android.app.KeyguardManager;
@@ -26,28 +26,24 @@
import android.content.Intent;
import android.database.ContentObserver;
import android.database.Cursor;
-import android.graphics.Outline;
-import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.provider.CallLog;
import android.provider.CallLog.Calls;
import android.provider.ContactsContract;
import android.provider.VoicemailContract.Status;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
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;
import com.android.common.io.MoreCloseables;
-import com.android.contacts.common.CallUtil;
import com.android.contacts.common.GeoUtil;
-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;
@@ -574,6 +570,7 @@
if (!isExpand) {
viewHolder.actionsView.setVisibility(View.VISIBLE);
}
+ CallLogAdapter.expandVoicemailTranscriptionView(viewHolder, !isExpand);
// Set up the fade effect for the action buttons.
if (isExpand) {
@@ -612,7 +609,7 @@
}
});
// Set everything to their final values when the animation's done.
- animator.addListener(new AnimatorListener() {
+ animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
view.getLayoutParams().height = LayoutParams.WRAP_CONTENT;
@@ -625,14 +622,8 @@
// is defaulting to the value (0) at the start of the expand animation.
viewHolder.actionsView.setAlpha(1);
}
+ CallLogAdapter.expandVoicemailTranscriptionView(viewHolder, isExpand);
}
-
- @Override
- public void onAnimationCancel(Animator animation) { }
- @Override
- public void onAnimationRepeat(Animator animation) { }
- @Override
- public void onAnimationStart(Animator animation) { }
});
animator.setDuration(mExpandCollapseDuration);
diff --git a/src/com/android/dialer/calllog/CallLogListItemHelper.java b/src/com/android/dialer/calllog/CallLogListItemHelper.java
index 78a0105..68ca7a8 100644
--- a/src/com/android/dialer/calllog/CallLogListItemHelper.java
+++ b/src/com/android/dialer/calllog/CallLogListItemHelper.java
@@ -16,14 +16,15 @@
package com.android.dialer.calllog;
+import android.content.Context;
import android.content.res.Resources;
import android.provider.CallLog.Calls;
import android.text.TextUtils;
+import com.android.contacts.common.CallUtil;
import com.android.dialer.PhoneCallDetails;
import com.android.dialer.PhoneCallDetailsHelper;
import com.android.dialer.R;
-import com.android.dialer.util.DialerUtils;
/**
* Helper class to fill in the views of a call log entry.
@@ -52,17 +53,19 @@
/**
* Sets the name, label, and number for a contact.
*
+ * @param context The application context.
* @param views the views to populate
* @param details the details of a phone call needed to fill in the data
*/
- public void setPhoneCallDetails(CallLogListItemViews views, PhoneCallDetails details) {
+ public void setPhoneCallDetails(
+ Context context, CallLogListItemViews views, PhoneCallDetails details) {
mPhoneCallDetailsHelper.setPhoneCallDetails(views.phoneCallDetailsViews, details);
// Set the accessibility text for the contact badge
views.quickContactView.setContentDescription(getContactBadgeDescription(details));
// Set the primary action accessibility description
- views.primaryActionView.setContentDescription(getCallDescription(details));
+ views.primaryActionView.setContentDescription(getCallDescription(context, details));
// Cache name or number of caller. Used when setting the content descriptions of buttons
// when the actions ViewStub is inflated.
@@ -124,10 +127,12 @@
* Examples:
* 3 calls. New Voicemail. Missed call from Joe Smith mobile 2 hours ago.
* 2 calls. Answered call from John Doe mobile. Last called 1 hour ago.
+ *
+ * @param context The application context.
* @param details Details of call.
* @return Return call action description.
*/
- public CharSequence getCallDescription(PhoneCallDetails details) {
+ public CharSequence getCallDescription(Context context, PhoneCallDetails details) {
int lastCallType = getLastCallType(details.callTypes);
boolean isVoiceMail = lastCallType == Calls.VOICEMAIL_TYPE;
@@ -155,7 +160,7 @@
// If call had video capabilities, add the "Video Call" string.
if ((details.features & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO &&
- DialerUtils.isVideoEnabled()) {
+ CallUtil.isVideoEnabled(context)) {
callDescription.append(mResources.getString(R.string.description_video_call));
}
diff --git a/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java b/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
index 477aa86..837cfba 100644
--- a/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
+++ b/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
@@ -157,6 +157,7 @@
.setSmallIcon(icon)
.setContentTitle(title)
.setContentText(callers)
+ .setColor(resources.getColor(R.color.dialer_theme_color))
.setDefaults(callToNotify != null ? Notification.DEFAULT_ALL : 0)
.setDeleteIntent(createMarkNewVoicemailsAsOldIntent())
.setAutoCancel(true);
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index ce6c46d..84f1c64 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -650,11 +650,14 @@
mSmsPackageComponentName = DialerUtils.getSmsComponent(activity);
+ // Populate the overflow menu in onResume instead of onCreate, so that if the SMS activity
+ // is disabled while Dialer is paused, the "Send a text message" option can be correctly
+ // removed when resumed.
mOverflowMenuButton = mDialpadView.getOverflowMenuButton();
mOverflowPopupMenu = buildOptionsMenu(mOverflowMenuButton);
mOverflowMenuButton.setOnTouchListener(mOverflowPopupMenu.getDragToOpenListener());
mOverflowMenuButton.setOnClickListener(this);
- mOverflowMenuButton.setVisibility(View.INVISIBLE);
+ mOverflowMenuButton.setVisibility(isDigitsEmpty() ? View.INVISIBLE : View.VISIBLE);
}
@Override
diff --git a/src/com/android/dialer/list/RegularSearchListAdapter.java b/src/com/android/dialer/list/RegularSearchListAdapter.java
index 8e4382c..3ce4bea 100644
--- a/src/com/android/dialer/list/RegularSearchListAdapter.java
+++ b/src/com/android/dialer/list/RegularSearchListAdapter.java
@@ -21,12 +21,12 @@
import android.provider.ContactsContract;
import android.text.TextUtils;
+import com.android.contacts.common.CallUtil;
import com.android.contacts.common.list.DirectoryPartition;
import com.android.contacts.common.list.PhoneNumberListAdapter;
import com.android.dialer.calllog.ContactInfo;
import com.android.dialer.service.CachedNumberLookupService;
import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
-import com.android.dialer.util.DialerUtils;
/**
* List adapter to display regular search results.
@@ -75,7 +75,7 @@
// Otherwise, it should add it to a new contact as a name.
setShortcutEnabled(SHORTCUT_ADD_NUMBER_TO_CONTACTS, showNumberShortcuts);
setShortcutEnabled(SHORTCUT_MAKE_VIDEO_CALL,
- showNumberShortcuts && DialerUtils.isVideoEnabled());
+ showNumberShortcuts && CallUtil.isVideoEnabled(getContext()));
super.setQueryString(queryString);
}
}
diff --git a/src/com/android/dialer/list/SmartDialNumberListAdapter.java b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
index 231611d..b2e0310 100644
--- a/src/com/android/dialer/list/SmartDialNumberListAdapter.java
+++ b/src/com/android/dialer/list/SmartDialNumberListAdapter.java
@@ -25,6 +25,7 @@
import android.text.TextUtils;
import android.util.Log;
+import com.android.contacts.common.CallUtil;
import com.android.contacts.common.list.ContactListItemView;
import com.android.contacts.common.list.PhoneNumberListAdapter;
import com.android.contacts.common.list.PhoneNumberListAdapter.PhoneQuery;
@@ -32,7 +33,6 @@
import com.android.dialer.dialpad.SmartDialNameMatcher;
import com.android.dialer.dialpad.SmartDialPrefix;
import com.android.dialer.dialpad.SmartDialMatchPosition;
-import com.android.dialer.util.DialerUtils;
import java.util.ArrayList;
@@ -120,7 +120,7 @@
final boolean showNumberShortcuts = !TextUtils.isEmpty(getFormattedQueryString());
setShortcutEnabled(SHORTCUT_ADD_NUMBER_TO_CONTACTS, showNumberShortcuts);
setShortcutEnabled(SHORTCUT_MAKE_VIDEO_CALL,
- showNumberShortcuts && DialerUtils.isVideoEnabled());
+ showNumberShortcuts && CallUtil.isVideoEnabled(getContext()));
super.setQueryString(queryString);
}
}
diff --git a/src/com/android/dialer/util/DialerUtils.java b/src/com/android/dialer/util/DialerUtils.java
index 7f6e75b..686884a 100644
--- a/src/com/android/dialer/util/DialerUtils.java
+++ b/src/com/android/dialer/util/DialerUtils.java
@@ -183,10 +183,4 @@
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
-
- public static boolean isVideoEnabled() {
- // TODO: Write utility methods to check subscriptions and settings, and use it to determine
- // whether to enable or disable video call functionality.
- return false;
- }
}
diff --git a/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java b/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
index c001165..85dbf8c 100644
--- a/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
@@ -233,7 +233,7 @@
TEST_FORMATTED_NUMBER,
TEST_COUNTRY_ISO, TEST_GEOCODE,
new int[]{Calls.OUTGOING_TYPE, Calls.OUTGOING_TYPE}, TEST_DATE, TEST_DURATION);
- CharSequence description = mHelper.getCallDescription(details);
+ CharSequence description = mHelper.getCallDescription(getContext(), details);
assertFalse(description.toString()
.contains(this.mResources.getString(R.string.description_new_voicemail)));
}
@@ -247,7 +247,7 @@
TEST_FORMATTED_NUMBER,
TEST_COUNTRY_ISO, TEST_GEOCODE,
new int[]{Calls.INCOMING_TYPE, Calls.OUTGOING_TYPE}, TEST_DATE, TEST_DURATION);
- CharSequence description = mHelper.getCallDescription(details);
+ CharSequence description = mHelper.getCallDescription(getContext(), details);
assertFalse(description.toString()
.contains(this.mResources.getString(R.string.description_new_voicemail)));
}
@@ -261,7 +261,7 @@
TEST_FORMATTED_NUMBER,
TEST_COUNTRY_ISO, TEST_GEOCODE,
new int[]{Calls.MISSED_TYPE, Calls.OUTGOING_TYPE}, TEST_DATE, TEST_DURATION);
- CharSequence description = mHelper.getCallDescription(details);
+ CharSequence description = mHelper.getCallDescription(getContext(), details);
assertFalse(description.toString()
.contains(this.mResources.getString(R.string.description_new_voicemail)));
}
@@ -275,7 +275,7 @@
TEST_FORMATTED_NUMBER,
TEST_COUNTRY_ISO, TEST_GEOCODE,
new int[]{Calls.VOICEMAIL_TYPE, Calls.OUTGOING_TYPE}, TEST_DATE, TEST_DURATION);
- CharSequence description = mHelper.getCallDescription(details);
+ CharSequence description = mHelper.getCallDescription(getContext(), details);
assertTrue(description.toString()
.contains(this.mResources.getString(R.string.description_new_voicemail)));
}
@@ -289,7 +289,7 @@
TEST_FORMATTED_NUMBER,
TEST_COUNTRY_ISO, TEST_GEOCODE,
new int[]{Calls.VOICEMAIL_TYPE}, TEST_DATE, TEST_DURATION);
- CharSequence description = mHelper.getCallDescription(details);
+ CharSequence description = mHelper.getCallDescription(getContext(), details);
// Rather than hard coding the "X calls" string message, we'll generate it with an empty
// number of calls, and trim the resulting string. This gets us just the word "calls",
@@ -308,7 +308,7 @@
TEST_FORMATTED_NUMBER,
TEST_COUNTRY_ISO, TEST_GEOCODE,
new int[]{Calls.VOICEMAIL_TYPE, Calls.INCOMING_TYPE}, TEST_DATE, TEST_DURATION);
- CharSequence description = mHelper.getCallDescription(details);
+ CharSequence description = mHelper.getCallDescription(getContext(), details);
assertTrue(description.toString()
.contains(this.mResources.getString(R.string.description_num_calls, 2)));
}
@@ -324,7 +324,7 @@
new int[]{Calls.INCOMING_TYPE, Calls.INCOMING_TYPE}, TEST_DATE, TEST_DURATION,
null, null, Calls.FEATURES_VIDEO, null, null);
- CharSequence description = mHelper.getCallDescription(details);
+ CharSequence description = mHelper.getCallDescription(getContext(), details);
assertTrue(description.toString()
.contains(this.mResources.getString(R.string.description_video_call, 2)));
}
@@ -346,7 +346,7 @@
/** Sets the details of a phone call using the specified phone number. */
private void setPhoneCallDetailsWithNumberAndType(String number,
int presentation, String formattedNumber, int callType) {
- mHelper.setPhoneCallDetails(mViews,
+ mHelper.setPhoneCallDetails(getContext(), mViews,
new PhoneCallDetails(number, presentation, formattedNumber,
TEST_COUNTRY_ISO, TEST_GEOCODE,
new int[]{ callType }, TEST_DATE, TEST_DURATION)
@@ -355,7 +355,7 @@
/** Sets the details of a phone call using the specified call type. */
private void setPhoneCallDetailsWithTypes(int... types) {
- mHelper.setPhoneCallDetails(mViews,
+ mHelper.setPhoneCallDetails(getContext() ,mViews,
new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
types, TEST_DATE, TEST_DURATION)
@@ -364,7 +364,7 @@
/** Sets the details of an unread phone call using the specified call type. */
private void setUnreadPhoneCallDetailsWithTypes(int... types) {
- mHelper.setPhoneCallDetails(mViews,
+ mHelper.setPhoneCallDetails(getContext(), mViews,
new PhoneCallDetails(TEST_NUMBER, Calls.PRESENTATION_ALLOWED,
TEST_FORMATTED_NUMBER, TEST_COUNTRY_ISO, TEST_GEOCODE,
types, TEST_DATE, TEST_DURATION)