summaryrefslogtreecommitdiff
path: root/java/com/android
diff options
context:
space:
mode:
authorroldenburg <roldenburg@google.com>2017-12-13 15:58:01 -0800
committerCopybara-Service <copybara-piper@google.com>2017-12-13 17:15:26 -0800
commit19c6c256bbb6f6a2d1c5772b6cd85f2a07d50a1c (patch)
treed76206a3e97e4f4af3754dda82469c058a7dd13a /java/com/android
parent467149161c2754e28f6e6da101141772b017183e (diff)
Add reloadReachabilities to Duo interface
Bug: 70034799 Test: DuoImplTest, GoogleDialtactsActivityTest PiperOrigin-RevId: 178971440 Change-Id: Ib624bd340fbeac11474db198763ae77eddb03ae3
Diffstat (limited to 'java/com/android')
-rw-r--r--java/com/android/dialer/app/DialtactsActivity.java5
-rw-r--r--java/com/android/dialer/database/DialerDatabaseHelper.java15
-rw-r--r--java/com/android/dialer/duo/Duo.java24
-rw-r--r--java/com/android/dialer/duo/stub/DuoStub.java3
4 files changed, 42 insertions, 5 deletions
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index 48796dba3..cc3f81b3c 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -109,6 +109,7 @@ import com.android.dialer.database.DialerDatabaseHelper;
import com.android.dialer.dialpadview.DialpadFragment;
import com.android.dialer.dialpadview.DialpadFragment.DialpadListener;
import com.android.dialer.dialpadview.DialpadFragment.LastOutgoingCallCallback;
+import com.android.dialer.duo.DuoComponent;
import com.android.dialer.interactions.PhoneNumberInteraction;
import com.android.dialer.interactions.PhoneNumberInteraction.InteractionErrorCode;
import com.android.dialer.logging.DialerImpression;
@@ -836,6 +837,10 @@ public class DialtactsActivity extends TransactionSafeActivity
.setActionTextColor(getResources().getColor(R.color.dialer_snackbar_action_text_color))
.show();
}
+ } else if (requestCode == ActivityRequestCodes.DIALTACTS_DUO) {
+ // We just returned from starting Duo for a task. Reload our reachability data since it
+ // may have changed after a user finished activating Duo.
+ DuoComponent.get(this).getDuo().reloadReachability(this);
}
super.onActivityResult(requestCode, resultCode, data);
}
diff --git a/java/com/android/dialer/database/DialerDatabaseHelper.java b/java/com/android/dialer/database/DialerDatabaseHelper.java
index 9a2581221..113e86314 100644
--- a/java/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/java/com/android/dialer/database/DialerDatabaseHelper.java
@@ -26,19 +26,21 @@ import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteStatement;
import android.net.Uri;
-import android.os.AsyncTask;
import android.provider.BaseColumns;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.Directory;
+import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
import android.support.annotation.WorkerThread;
import android.text.TextUtils;
import com.android.contacts.common.R;
import com.android.contacts.common.util.StopWatch;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutor.Worker;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
import com.android.dialer.smartdial.SmartDialNameMatcher;
import com.android.dialer.smartdial.SmartDialPrefix;
@@ -332,7 +334,11 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
/** Starts the database upgrade process in the background. */
public void startSmartDialUpdateThread() {
if (PermissionsUtil.hasContactsReadPermissions(mContext)) {
- new SmartDialUpdateAsyncTask().execute();
+ DialerExecutorComponent.get(mContext)
+ .dialerExecutorFactory()
+ .createNonUiTaskBuilder(new UpdateSmartDialWorker())
+ .build()
+ .executeParallel(null);
}
}
@@ -1228,10 +1234,11 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
}
}
- private class SmartDialUpdateAsyncTask extends AsyncTask<Object, Object, Object> {
+ private class UpdateSmartDialWorker implements Worker<Void, Void> {
+ @Nullable
@Override
- protected Object doInBackground(Object... objects) {
+ public Void doInBackground(@Nullable Void input) throws Throwable {
updateSmartDialDatabase();
return null;
}
diff --git a/java/com/android/dialer/duo/Duo.java b/java/com/android/dialer/duo/Duo.java
index 9012dee4f..5f49e3e7e 100644
--- a/java/com/android/dialer/duo/Duo.java
+++ b/java/com/android/dialer/duo/Duo.java
@@ -30,6 +30,7 @@ import java.util.List;
/** Interface for Duo video call integration. */
public interface Duo {
+ /** @return true if the Duo integration is enabled on this device. */
boolean isEnabled(@NonNull Context context);
/**
@@ -38,32 +39,53 @@ public interface Duo {
*/
boolean isActivated(@NonNull Context context);
+ /** @return true if the parameter number is reachable on Duo. */
@MainThread
boolean isReachable(@NonNull Context context, @Nullable String number);
- /** @return {@code null} if result is unknown. */
+ /**
+ * @return true if the number supports upgrading a voice call to a Duo video call. Returns {@code
+ * null} if result is unknown.
+ */
@MainThread
Optional<Boolean> supportsUpgrade(@NonNull Context context, @Nullable String number);
+ /** Starts a task to update the reachability of the parameter numbers asynchronously. */
@MainThread
void updateReachability(@NonNull Context context, @NonNull List<String> numbers);
+ /**
+ * Clears the current reachability data and starts a task to load the latest reachability data
+ * asynchronously.
+ */
+ @MainThread
+ void reloadReachability(@NonNull Context context);
+
+ /**
+ * @return an Intent to start a Duo video call with the parameter number. Must be started using
+ * startActivityForResult.
+ */
@MainThread
Intent getIntent(@NonNull Context context, @NonNull String number);
+ /** Requests upgrading the parameter ongoing call to a Duo video call. */
@MainThread
void requestUpgrade(@NonNull Context context, Call call);
+ /** Registers a listener for reachability data changes. */
@MainThread
void registerListener(@NonNull DuoListener listener);
+ /** Unregisters a listener for reachability data changes. */
@MainThread
void unregisterListener(@NonNull DuoListener listener);
+ /** The string resource to use for outgoing Duo call entries in call details. */
@StringRes
@MainThread
int getOutgoingCallTypeText();
+ /** The string resource to use for incoming Duo call entries in call details. */
@StringRes
@MainThread
int getIncomingCallTypeText();
diff --git a/java/com/android/dialer/duo/stub/DuoStub.java b/java/com/android/dialer/duo/stub/DuoStub.java
index 628d6dc27..398e99035 100644
--- a/java/com/android/dialer/duo/stub/DuoStub.java
+++ b/java/com/android/dialer/duo/stub/DuoStub.java
@@ -68,6 +68,9 @@ public class DuoStub implements Duo {
Assert.isNotNull(numbers);
}
+ @Override
+ public void reloadReachability(@NonNull Context context) {}
+
@MainThread
@Override
public Intent getIntent(@NonNull Context context, @NonNull String number) {