Take user to install Duo if they tap "Set up" without the app installed
Bug: 70034799
Test: DuoImplTest, GoogleCallLogAdapterTest
PiperOrigin-RevId: 178981398
Change-Id: Id524dfe61bf3a2358d863dd8d5f7c6c083b8063c
diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
index a5a0cff..a6489cd 100644
--- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
+++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
@@ -683,7 +683,11 @@
inviteVideoButtonView.setTag(IntentProvider.getDuoInviteIntentProvider(number));
inviteVideoButtonView.setVisibility(View.VISIBLE);
} else if (duo.isEnabled(mContext)) {
- setUpVideoButtonView.setTag(IntentProvider.getSetUpDuoIntentProvider());
+ if (!duo.isInstalled(mContext)) {
+ setUpVideoButtonView.setTag(IntentProvider.getInstallDuoIntentProvider());
+ } else {
+ setUpVideoButtonView.setTag(IntentProvider.getSetUpDuoIntentProvider());
+ }
setUpVideoButtonView.setVisibility(View.VISIBLE);
}
break;
diff --git a/java/com/android/dialer/app/calllog/IntentProvider.java b/java/com/android/dialer/app/calllog/IntentProvider.java
index 996bca0..c86a260 100644
--- a/java/com/android/dialer/app/calllog/IntentProvider.java
+++ b/java/com/android/dialer/app/calllog/IntentProvider.java
@@ -104,6 +104,26 @@
};
}
+ public static IntentProvider getInstallDuoIntentProvider() {
+ return new IntentProvider() {
+ @Override
+ public Intent getIntent(Context context) {
+ return new Intent(
+ Intent.ACTION_VIEW,
+ new Uri.Builder()
+ .scheme("https")
+ .authority("play.google.com")
+ .appendEncodedPath("store/apps/details")
+ .appendQueryParameter("id", "com.google.android.apps.tachyon")
+ .appendQueryParameter(
+ "referrer",
+ "utm_source=dialer&utm_medium=text&utm_campaign=product") // This string is from
+ // the Duo team
+ .build());
+ }
+ };
+ }
+
public static IntentProvider getSetUpDuoIntentProvider() {
return new IntentProvider() {
@Override
diff --git a/java/com/android/dialer/duo/Duo.java b/java/com/android/dialer/duo/Duo.java
index 5f49e3e..d914784 100644
--- a/java/com/android/dialer/duo/Duo.java
+++ b/java/com/android/dialer/duo/Duo.java
@@ -33,6 +33,9 @@
/** @return true if the Duo integration is enabled on this device. */
boolean isEnabled(@NonNull Context context);
+ /** @return true if Duo is installed on this device. */
+ boolean isInstalled(@NonNull Context context);
+
/**
* @return true if Duo is installed and the user has gone through the set-up flow confirming their
* phone number.
diff --git a/java/com/android/dialer/duo/stub/DuoStub.java b/java/com/android/dialer/duo/stub/DuoStub.java
index 398e990..cfa400a 100644
--- a/java/com/android/dialer/duo/stub/DuoStub.java
+++ b/java/com/android/dialer/duo/stub/DuoStub.java
@@ -41,6 +41,11 @@
}
@Override
+ public boolean isInstalled(@NonNull Context context) {
+ return false;
+ }
+
+ @Override
public boolean isActivated(@NonNull Context context) {
return false;
}