summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authormaxwelb <maxwelb@google.com>2017-10-06 23:41:08 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-10-06 23:41:08 +0000
commit997c31b954c2ca6971e47ed93f5cb5e3522c854b (patch)
treee15bcbffb7d14d3f6c58dfd992ab123f90164de7 /java
parent0429052242e3ee4475442f884a553dfcb795a938 (diff)
parent30842b209934a98a0220673e2ab6b4bf500c15d3 (diff)
Merge changes I620aacf3,Ie5fe2fc1,I41f98fe2
am: 30842b2099 Change-Id: Ia603717089816e10f1603b1671a7253019952f83
Diffstat (limited to 'java')
-rw-r--r--java/com/android/dialer/app/res/layout/call_log_list_item.xml3
-rw-r--r--java/com/android/dialer/common/concurrent/DialerExecutors.java6
-rw-r--r--java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java20
-rw-r--r--java/com/android/dialer/theme/res/values/colors.xml2
-rw-r--r--java/com/android/dialer/theme/res/values/dimens.xml3
-rw-r--r--java/com/android/incallui/ConferenceParticipantListAdapter.java56
-rw-r--r--java/com/android/incallui/call/DialerCall.java4
-rw-r--r--java/com/android/incallui/res/layout/caller_in_conference.xml9
8 files changed, 95 insertions, 8 deletions
diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item.xml b/java/com/android/dialer/app/res/layout/call_log_list_item.xml
index 39dcbacf5..4382008d4 100644
--- a/java/com/android/dialer/app/res/layout/call_log_list_item.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_list_item.xml
@@ -170,8 +170,7 @@
android:layout_height="wrap_content"
android:textColor="@color/call_log_voicemail_transcript_branding_color"
android:textSize="@dimen/call_log_voicemail_transcription_text_size"
- android:paddingTop="2dp"
- android:maxLines="1"/>
+ android:paddingTop="2dp"/>
</LinearLayout>
diff --git a/java/com/android/dialer/common/concurrent/DialerExecutors.java b/java/com/android/dialer/common/concurrent/DialerExecutors.java
index 81b3c5cb3..850c28cdd 100644
--- a/java/com/android/dialer/common/concurrent/DialerExecutors.java
+++ b/java/com/android/dialer/common/concurrent/DialerExecutors.java
@@ -21,7 +21,7 @@ import android.support.annotation.NonNull;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.DialerExecutor.Worker;
-import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
@@ -136,7 +136,7 @@ public final class DialerExecutors {
return new DefaultDialerExecutorFactory().createNonUiTaskBuilder(Assert.isNotNull(worker));
}
- private static final Executor lowPriorityThreadPool =
+ private static final ExecutorService lowPriorityThreadPool =
Executors.newFixedThreadPool(
5,
new ThreadFactory() {
@@ -155,7 +155,7 @@ public final class DialerExecutors {
* <p>This exists to prevent each individual dialer component from having to create its own
* threads/pools, which would result in the application having more threads than really necessary.
*/
- public static Executor getLowPriorityThreadPool() {
+ public static ExecutorService getLowPriorityThreadPool() {
return lowPriorityThreadPool;
}
}
diff --git a/java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java b/java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java
index cc509f41b..a00ee75bf 100644
--- a/java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java
+++ b/java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java
@@ -16,6 +16,7 @@
package com.android.dialer.phonenumberproto;
+import android.support.annotation.AnyThread;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
@@ -24,6 +25,8 @@ import com.android.dialer.DialerPhoneNumber;
import com.android.dialer.DialerPhoneNumber.RawInput;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.i18n.phonenumbers.NumberParseException;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
import com.google.i18n.phonenumbers.PhoneNumberUtil.MatchType;
@@ -46,7 +49,7 @@ public class DialerPhoneNumberUtil {
/**
* Parses the provided raw phone number into a {@link DialerPhoneNumber}.
*
- * @see PhoneNumberUtil#parse(String, String)
+ * @see PhoneNumberUtil#parse(CharSequence, String)
*/
@WorkerThread
public DialerPhoneNumber parse(@Nullable String numberToParse, @Nullable String defaultRegion) {
@@ -73,6 +76,21 @@ public class DialerPhoneNumberUtil {
}
/**
+ * Parses the provided raw phone number into a Future result of {@link DialerPhoneNumber}.
+ *
+ * <p>Work is run on the provided {@link ListeningExecutorService}.
+ *
+ * @see PhoneNumberUtil#parse(CharSequence, String)
+ */
+ @AnyThread
+ public ListenableFuture<DialerPhoneNumber> parse(
+ @Nullable String numberToParse,
+ @Nullable String defaultRegion,
+ @NonNull ListeningExecutorService service) {
+ return service.submit(() -> parse(numberToParse, defaultRegion));
+ }
+
+ /**
* Returns true if the two numbers were parseable by libphonenumber and are an {@link
* MatchType#EXACT_MATCH} or if they have the same raw input.
*/
diff --git a/java/com/android/dialer/theme/res/values/colors.xml b/java/com/android/dialer/theme/res/values/colors.xml
index 0e6f54fb6..3c8cabbc5 100644
--- a/java/com/android/dialer/theme/res/values/colors.xml
+++ b/java/com/android/dialer/theme/res/values/colors.xml
@@ -42,6 +42,8 @@
<!-- Secondary text color in the Phone app -->
<color name="dialer_secondary_text_color">#636363</color>
+ <!-- 38% opacity -->
+ <color name="dialer_secondary_text_color_hiden">#61000000</color>
<!-- Color of the theme of the Dialer app -->
<color name="dialtacts_theme_color">@color/dialer_theme_color</color>
diff --git a/java/com/android/dialer/theme/res/values/dimens.xml b/java/com/android/dialer/theme/res/values/dimens.xml
index ee52c97e6..972cb535c 100644
--- a/java/com/android/dialer/theme/res/values/dimens.xml
+++ b/java/com/android/dialer/theme/res/values/dimens.xml
@@ -38,4 +38,7 @@
<dimen name="actionbar_contentInsetStart">72dp</dimen>
<dimen name="call_log_icon_margin">2dp</dimen>
+
+ <item name="alpha_enabled" format="float" type="dimen">1.0</item>
+ <item name="alpha_hiden" format="float" type="dimen">0.54</item>
</resources>
diff --git a/java/com/android/incallui/ConferenceParticipantListAdapter.java b/java/com/android/incallui/ConferenceParticipantListAdapter.java
index 70cdf245f..d0f488501 100644
--- a/java/com/android/incallui/ConferenceParticipantListAdapter.java
+++ b/java/com/android/incallui/ConferenceParticipantListAdapter.java
@@ -24,6 +24,7 @@ import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
import android.util.ArraySet;
+import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -245,7 +246,8 @@ public class ConferenceParticipantListAdapter extends BaseAdapter {
contactCache.lookupKey,
contactCache.displayPhotoUri,
thisRowCanSeparate,
- thisRowCanDisconnect);
+ thisRowCanDisconnect,
+ call.getNonConferenceState());
// Tag the row in the conference participant list with the call id to make it easier to
// find calls when contact cache information is loaded.
@@ -290,9 +292,11 @@ public class ConferenceParticipantListAdapter extends BaseAdapter {
String lookupKey,
Uri photoUri,
boolean thisRowCanSeparate,
- boolean thisRowCanDisconnect) {
+ boolean thisRowCanDisconnect,
+ int callState) {
final ImageView photoView = (ImageView) view.findViewById(R.id.callerPhoto);
+ final TextView statusTextView = (TextView) view.findViewById(R.id.conferenceCallerStatus);
final TextView nameTextView = (TextView) view.findViewById(R.id.conferenceCallerName);
final TextView numberTextView = (TextView) view.findViewById(R.id.conferenceCallerNumber);
final TextView numberTypeTextView =
@@ -300,6 +304,13 @@ public class ConferenceParticipantListAdapter extends BaseAdapter {
final View endButton = view.findViewById(R.id.conferenceCallerDisconnect);
final View separateButton = view.findViewById(R.id.conferenceCallerSeparate);
+ if (callState == DialerCall.State.ONHOLD) {
+ setViewsOnHold(photoView, statusTextView, nameTextView, numberTextView, numberTypeTextView);
+ } else {
+ setViewsNotOnHold(
+ photoView, statusTextView, nameTextView, numberTextView, numberTypeTextView);
+ }
+
endButton.setVisibility(thisRowCanDisconnect ? View.VISIBLE : View.GONE);
if (thisRowCanDisconnect) {
endButton.setOnClickListener(mDisconnectListener);
@@ -338,6 +349,47 @@ public class ConferenceParticipantListAdapter extends BaseAdapter {
}
}
+ private void setViewsOnHold(
+ ImageView photoView,
+ TextView statusTextView,
+ TextView nameTextView,
+ TextView numberTextView,
+ TextView numberTypeTextView) {
+ CharSequence onHoldText =
+ TextUtils.concat(getContext().getText(R.string.notification_on_hold).toString(), " • ");
+ statusTextView.setText(onHoldText);
+ statusTextView.setVisibility(View.VISIBLE);
+
+ int onHoldColor = getContext().getColor(R.color.dialer_secondary_text_color_hiden);
+ nameTextView.setTextColor(onHoldColor);
+ numberTextView.setTextColor(onHoldColor);
+ numberTypeTextView.setTextColor(onHoldColor);
+
+ TypedValue alpha = new TypedValue();
+ getContext().getResources().getValue(R.dimen.alpha_hiden, alpha, true);
+ photoView.setAlpha(alpha.getFloat());
+ }
+
+ private void setViewsNotOnHold(
+ ImageView photoView,
+ TextView statusTextView,
+ TextView nameTextView,
+ TextView numberTextView,
+ TextView numberTypeTextView) {
+ statusTextView.setVisibility(View.GONE);
+
+ nameTextView.setTextColor(
+ getContext().getColor(R.color.conference_call_manager_caller_name_text_color));
+ numberTextView.setTextColor(
+ getContext().getColor(R.color.conference_call_manager_secondary_text_color));
+ numberTypeTextView.setTextColor(
+ getContext().getColor(R.color.conference_call_manager_secondary_text_color));
+
+ TypedValue alpha = new TypedValue();
+ getContext().getResources().getValue(R.dimen.alpha_enabled, alpha, true);
+ photoView.setAlpha(alpha.getFloat());
+ }
+
/**
* Updates the participant info list which is bound to the ListView. Stores the call and contact
* info for all entries. The list is sorted alphabetically by participant name.
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index 82a29ee84..d393b4211 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -706,6 +706,10 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa
}
}
+ public int getNonConferenceState() {
+ return mState;
+ }
+
public void setState(int state) {
if (state == State.INCOMING) {
mLogState.isIncoming = true;
diff --git a/java/com/android/incallui/res/layout/caller_in_conference.xml b/java/com/android/incallui/res/layout/caller_in_conference.xml
index 4f4b2f043..37918188f 100644
--- a/java/com/android/incallui/res/layout/caller_in_conference.xml
+++ b/java/com/android/incallui/res/layout/caller_in_conference.xml
@@ -62,6 +62,15 @@
android:gravity="bottom"
android:orientation="horizontal">
+ <!-- Status (only support on hold now) -->
+ <TextView
+ android:id="@+id/conferenceCallerStatus"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ style="@style/SecondaryText"
+ android:textColor="@color/dialer_secondary_text_color_hiden"
+ android:visibility="gone"/>
+
<!-- Number -->
<TextView
android:id="@+id/conferenceCallerNumber"