summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathanielWaggoner <nwaggoner@cyngn.com>2016-02-15 14:04:46 -0800
committerRichard MacGregor <rmacgregor@cyngn.com>2016-04-08 09:16:15 -0700
commitc05de726bc59d7182590ce22399f9cb48afd2ca7 (patch)
tree2e313d54ee0b5ff527a720747559df06fe9e76cd
parent61d7ca70700a45baf0b7a92277a6ddd3337688e3 (diff)
downloadandroid_packages_apps_InCallUI-c05de726bc59d7182590ce22399f9cb48afd2ca7.tar.gz
android_packages_apps_InCallUI-c05de726bc59d7182590ce22399f9cb48afd2ca7.tar.bz2
android_packages_apps_InCallUI-c05de726bc59d7182590ce22399f9cb48afd2ca7.zip
Resolves a few issues related to call buttons: The DeepLink slot will
now update after sending a link to be handled. onResume() will now start a new query. This gives the handling application an opportunity to trigger a "view" action instead of receiving the content as if it were new. Adds Caller information (the name) to the meta data shared in the intent. Change-Id: I2d76bb35445bfc590fb7e6e509660624ffb39241
-rw-r--r--res/values/cm_strings.xml2
-rw-r--r--src/com/android/incallui/CallButtonFragment.java4
-rw-r--r--src/com/android/incallui/CallButtonPresenter.java44
3 files changed, 39 insertions, 11 deletions
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
index 7494bc25..3aabf132 100644
--- a/res/values/cm_strings.xml
+++ b/res/values/cm_strings.xml
@@ -59,4 +59,6 @@
<string name="caller_info_failure"><xliff:g id="provider">%s</xliff:g> could not be reached</string>
<string name="caller_info_no_result">No <xliff:g id="provider">%s</xliff:g> match found</string>
<string name="caller_info_unauthenticated"><xliff:g id="provider">%s</xliff:g> setup incomplete</string>
+
+ <string name="call_button_contact_unknown">Unknown</string>
</resources>
diff --git a/src/com/android/incallui/CallButtonFragment.java b/src/com/android/incallui/CallButtonFragment.java
index 88e92c35..9abbab65 100644
--- a/src/com/android/incallui/CallButtonFragment.java
+++ b/src/com/android/incallui/CallButtonFragment.java
@@ -209,6 +209,7 @@ public class CallButtonFragment
public void onResume() {
if (getPresenter() != null) {
getPresenter().refreshMuteState();
+ getPresenter().refreshDeepLinkState();
}
super.onResume();
@@ -222,6 +223,7 @@ public class CallButtonFragment
}
public Drawable configureDeepLinkDrawable(Drawable drawable) {
+ drawable.mutate();
drawable.setTintList(getResources().getColorStateList(R.color.selectable_icon_tint));
drawable.setAutoMirrored(false);
return drawable;
@@ -286,7 +288,7 @@ public class CallButtonFragment
getPresenter().transferCallClicked();
break;
case R.id.takeNoteButton:
- getPresenter().takeNote();
+ getPresenter().handleNoteClick();
break;
default:
Log.wtf(this, "onClick: unexpected");
diff --git a/src/com/android/incallui/CallButtonPresenter.java b/src/com/android/incallui/CallButtonPresenter.java
index 605da023..e7228956 100644
--- a/src/com/android/incallui/CallButtonPresenter.java
+++ b/src/com/android/incallui/CallButtonPresenter.java
@@ -84,7 +84,6 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
private static final String KEY_PREVIOUS_MUTE_STATE = "incall_key_previous_mute_state";
private static final String RECORDING_WARNING_PRESENTED = "recording_warning_presented";
private static final boolean DEBUG = false;
- private static final String CALL_DISPLAY_NAME_UNKNOWN = "Unkown";
private Call mCall;
private boolean mAutomaticallyMuted = false;
private boolean mPreviousMuteState = false;
@@ -692,6 +691,10 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
mAutomaticallyMuted = false;
}
+ protected void refreshDeepLinkState() {
+ getPreferredLinks(mDeepLinkCallback);
+ }
+
private void contactUpdated() {
if (DEBUG) Log.i(this, "contactUpdated");
if (getUi() != null && mCall != null) {
@@ -778,16 +781,37 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto
/**
* Take a note triggered by the CallButtonFragment note button.
*/
- public void takeNote() {
- if(mCall != null && mDeepLink != null) {
- CallDeepLinkContent content = new CallDeepLinkContent(mDeepLink);
- content.setName(
- mCall.getCnapName() == null ? CALL_DISPLAY_NAME_UNKNOWN : mCall.getCnapName());
- content.setNumber(mCall.getNumber());
- content.setUri(DeepLinkIntegrationManager.generateCallUri(mCall.getNumber(),
- mCall.getTelecommCall().getDetails().getCreateTimeMillis()));
- getUi().getContext().startActivity(content.build());
+ public void handleNoteClick() {
+ if(mCall != null) {
+ if(mDeepLink.getAlreadyHasContent()) {
+ getUi().getContext().startActivity(mDeepLink.createViewIntent());
+ } else {
+ CallDeepLinkContent content = new CallDeepLinkContent(mDeepLink);
+ content.setName(getNameForCall());
+ content.setNumber(mCall.getNumber());
+ content.setUri(DeepLinkIntegrationManager.generateCallUri(mCall.getNumber(),
+ mCall.getTelecommCall().getDetails().getCreateTimeMillis()));
+ getUi().getContext().startActivity(content.build());
+ }
+ }
+ }
+
+ /**
+ * Gets the name to display for the call.
+ */
+ private String getNameForCall() {
+ String toRet = getUi().getContext().getResources().getString(R.string
+ .call_button_contact_unknown);
+ final ContactInfoCache cache = ContactInfoCache.getInstance(getUi().getContext());
+ if (cache != null && mCall != null) {
+ ContactCacheEntry contactInfo = cache.getInfo(mCall.getId());
+ if(contactInfo != null) {
+ if (!TextUtils.isEmpty(contactInfo.name)) {
+ toRet = contactInfo.name;
+ }
+ }
}
+ return toRet;
}
/**