summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-prod (mdb) <android-build-team-robot@google.com>2018-05-04 07:43:26 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-05-04 07:43:26 +0000
commit44262dfe095b7db41b2b3fff3cca1330b920cb8c (patch)
tree2ae81294108052156acc1d5ab14dc805a0336e91
parent6e1516d52539f2d41e57443249ca543d2481cce3 (diff)
parent91ac2cdd766780077ee23486651d8ffbebaa6773 (diff)
Merge changes I07cbb956,I7dda119f,I906250cb
* changes: Add content description to GlidePhotoManager. Set audio selector window type TYPE_APPLICATION_OVERLAY Fixed labels for speed dial UI.
-rw-r--r--java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java4
-rw-r--r--java/com/android/dialer/speeddial/FavoritesViewHolder.java13
-rw-r--r--java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java16
-rw-r--r--java/com/android/dialer/speeddial/loader/SpeedDialUiItemMutator.java6
-rw-r--r--java/com/android/incallui/AndroidManifest.xml3
-rw-r--r--java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java10
6 files changed, 43 insertions, 9 deletions
diff --git a/java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java b/java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java
index 562177c48..515a3ccbb 100644
--- a/java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java
+++ b/java/com/android/dialer/glidephotomanager/impl/GlidePhotoManagerImpl.java
@@ -62,6 +62,10 @@ public class GlidePhotoManagerImpl implements GlidePhotoManager {
@Override
public void loadContactPhoto(ImageView imageView, PhotoInfo photoInfo) {
Assert.isMainThread();
+ imageView.setContentDescription(
+ appContext.getString(
+ com.android.dialer.contactphoto.R.string.description_quick_contact_for,
+ photoInfo.getName()));
GlideRequest<Drawable> request = buildRequest(GlideApp.with(imageView), photoInfo);
request.into(imageView);
}
diff --git a/java/com/android/dialer/speeddial/FavoritesViewHolder.java b/java/com/android/dialer/speeddial/FavoritesViewHolder.java
index 474516ef2..f06672d8d 100644
--- a/java/com/android/dialer/speeddial/FavoritesViewHolder.java
+++ b/java/com/android/dialer/speeddial/FavoritesViewHolder.java
@@ -68,10 +68,15 @@ public class FavoritesViewHolder extends RecyclerView.ViewHolder
Assert.checkArgument(speedDialUiItem.isStarred());
nameView.setText(speedDialUiItem.name());
- if (speedDialUiItem.defaultChannel() != null) {
- phoneType.setText(speedDialUiItem.defaultChannel().label());
- videoCallIcon.setVisibility(
- speedDialUiItem.defaultChannel().isVideoTechnology() ? View.VISIBLE : View.GONE);
+
+ Channel channel = speedDialUiItem.defaultChannel();
+ if (channel == null) {
+ channel = speedDialUiItem.getDefaultVoiceChannel();
+ }
+
+ if (channel != null) {
+ phoneType.setText(channel.label());
+ videoCallIcon.setVisibility(channel.isVideoTechnology() ? View.VISIBLE : View.GONE);
} else {
phoneType.setText("");
videoCallIcon.setVisibility(View.GONE);
diff --git a/java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java b/java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java
index 325af238a..731c8c641 100644
--- a/java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java
+++ b/java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java
@@ -16,6 +16,7 @@
package com.android.dialer.speeddial.loader;
+import android.content.res.Resources;
import android.database.Cursor;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
@@ -102,7 +103,7 @@ public abstract class SpeedDialUiItem {
* <p>If the cursor started at row X, this method will advance to row Y s.t. rows X, X + 1, ... Y
* - 1 all belong to the same contact (that is, share the same contact id and lookup key).
*/
- public static SpeedDialUiItem fromCursor(Cursor cursor) {
+ public static SpeedDialUiItem fromCursor(Resources resources, Cursor cursor) {
Assert.checkArgument(cursor != null);
Assert.checkArgument(cursor.getCount() != 0);
String lookupKey = cursor.getString(LOOKUP_KEY);
@@ -125,7 +126,7 @@ public abstract class SpeedDialUiItem {
Channel.builder()
.setNumber(cursor.getString(NUMBER))
.setPhoneType(cursor.getInt(TYPE))
- .setLabel(TextUtils.isEmpty(cursor.getString(LABEL)) ? "" : cursor.getString(LABEL))
+ .setLabel(getLabel(resources, cursor))
.setTechnology(Channel.VOICE)
.build();
channels.add(channel);
@@ -141,6 +142,17 @@ public abstract class SpeedDialUiItem {
return builder.build();
}
+ private static String getLabel(Resources resources, Cursor cursor) {
+ int numberType = cursor.getInt(TYPE);
+ String numberLabel = cursor.getString(LABEL);
+
+ // Returns empty label instead of "custom" if the custom label is empty.
+ if (numberType == Phone.TYPE_CUSTOM && TextUtils.isEmpty(numberLabel)) {
+ return "";
+ }
+ return (String) Phone.getTypeLabel(resources, numberType, numberLabel);
+ }
+
public PhotoInfo getPhotoInfo() {
return PhotoInfo.newBuilder()
.setPhotoId(photoId())
diff --git a/java/com/android/dialer/speeddial/loader/SpeedDialUiItemMutator.java b/java/com/android/dialer/speeddial/loader/SpeedDialUiItemMutator.java
index 0a2a241b3..1ad37dc2a 100644
--- a/java/com/android/dialer/speeddial/loader/SpeedDialUiItemMutator.java
+++ b/java/com/android/dialer/speeddial/loader/SpeedDialUiItemMutator.java
@@ -205,7 +205,7 @@ public final class SpeedDialUiItemMutator {
return loadSpeedDialUiItemsInternal();
}
Assert.checkArgument(cursor.moveToFirst(), "Cursor should never be empty");
- SpeedDialUiItem item = SpeedDialUiItem.fromCursor(cursor);
+ SpeedDialUiItem item = SpeedDialUiItem.fromCursor(appContext.getResources(), cursor);
// Star the contact if it isn't starred already, then return.
if (!item.isStarred()) {
@@ -410,7 +410,7 @@ public final class SpeedDialUiItemMutator {
null)) {
Map<SpeedDialEntry, SpeedDialUiItem> map = new ArrayMap<>();
for (cursor.moveToFirst(); !cursor.isAfterLast(); /* Iterate in the loop */ ) {
- SpeedDialUiItem item = SpeedDialUiItem.fromCursor(cursor);
+ SpeedDialUiItem item = SpeedDialUiItem.fromCursor(appContext.getResources(), cursor);
for (SpeedDialEntry entry : entries) {
if (entry.contactId() == item.contactId()) {
// Update the id and pinned position to match it's corresponding SpeedDialEntry.
@@ -513,7 +513,7 @@ public final class SpeedDialUiItemMutator {
return contacts;
}
for (cursor.moveToFirst(); !cursor.isAfterLast(); /* Iterate in the loop */ ) {
- contacts.add(SpeedDialUiItem.fromCursor(cursor));
+ contacts.add(SpeedDialUiItem.fromCursor(appContext.getResources(), cursor));
}
return contacts;
}
diff --git a/java/com/android/incallui/AndroidManifest.xml b/java/com/android/incallui/AndroidManifest.xml
index 7286b0db7..b3d60d473 100644
--- a/java/com/android/incallui/AndroidManifest.xml
+++ b/java/com/android/incallui/AndroidManifest.xml
@@ -43,6 +43,9 @@
<!-- Set Bluetooth device -->
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
+ <!-- Set audio selector window type TYPE_APPLICATION_OVERLAY -->
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
+
<!-- Set android:taskAffinity="com.android.incallui" for all activities to ensure proper
navigation. Otherwise system could bring up DialtactsActivity instead, e.g. when user unmerge a
call.
diff --git a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
index cd17c25da..8d0c9525e 100644
--- a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
+++ b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
@@ -24,8 +24,10 @@ import android.content.DialogInterface;
import android.content.res.ColorStateList;
import android.graphics.PorterDuff.Mode;
import android.os.Bundle;
+import android.provider.Settings;
import android.support.annotation.Nullable;
import android.support.design.widget.BottomSheetDialogFragment;
+import android.support.v4.os.BuildCompat;
import android.telecom.CallAudioState;
import android.view.LayoutInflater;
import android.view.View;
@@ -76,6 +78,14 @@ public class AudioRouteSelectorDialogFragment extends BottomSheetDialogFragment
LogUtil.i("AudioRouteSelectorDialogFragment.onCreateDialog", null);
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+ if (Settings.canDrawOverlays(getContext())) {
+ dialog
+ .getWindow()
+ .setType(
+ BuildCompat.isAtLeastO()
+ ? WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
+ : WindowManager.LayoutParams.TYPE_PHONE);
+ }
return dialog;
}