Loading java/com/android/dialer/app/DialtactsActivity.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -109,6 +109,7 @@ import com.android.dialer.database.DialerDatabaseHelper; import com.android.dialer.dialpadview.DialpadFragment; import com.android.dialer.dialpadview.DialpadFragment; import com.android.dialer.dialpadview.DialpadFragment.DialpadListener; import com.android.dialer.dialpadview.DialpadFragment.DialpadListener; import com.android.dialer.dialpadview.DialpadFragment.LastOutgoingCallCallback; 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; import com.android.dialer.interactions.PhoneNumberInteraction.InteractionErrorCode; import com.android.dialer.interactions.PhoneNumberInteraction.InteractionErrorCode; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.DialerImpression; Loading Loading @@ -836,6 +837,10 @@ public class DialtactsActivity extends TransactionSafeActivity .setActionTextColor(getResources().getColor(R.color.dialer_snackbar_action_text_color)) .setActionTextColor(getResources().getColor(R.color.dialer_snackbar_action_text_color)) .show(); .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); super.onActivityResult(requestCode, resultCode, data); } } Loading java/com/android/dialer/database/DialerDatabaseHelper.java +11 −4 Original line number Original line Diff line number Diff line Loading @@ -26,19 +26,21 @@ import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteStatement; import android.database.sqlite.SQLiteStatement; import android.net.Uri; import android.net.Uri; import android.os.AsyncTask; import android.provider.BaseColumns; import android.provider.BaseColumns; import android.provider.ContactsContract; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.Directory; import android.provider.ContactsContract.Directory; import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; import android.support.annotation.VisibleForTesting; import android.support.annotation.WorkerThread; import android.support.annotation.WorkerThread; import android.text.TextUtils; import android.text.TextUtils; import com.android.contacts.common.R; import com.android.contacts.common.R; import com.android.contacts.common.util.StopWatch; import com.android.contacts.common.util.StopWatch; import com.android.dialer.common.LogUtil; 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.database.FilteredNumberContract.FilteredNumberColumns; import com.android.dialer.smartdial.SmartDialNameMatcher; import com.android.dialer.smartdial.SmartDialNameMatcher; import com.android.dialer.smartdial.SmartDialPrefix; import com.android.dialer.smartdial.SmartDialPrefix; Loading Loading @@ -332,7 +334,11 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper { /** Starts the database upgrade process in the background. */ /** Starts the database upgrade process in the background. */ public void startSmartDialUpdateThread() { public void startSmartDialUpdateThread() { if (PermissionsUtil.hasContactsReadPermissions(mContext)) { if (PermissionsUtil.hasContactsReadPermissions(mContext)) { new SmartDialUpdateAsyncTask().execute(); DialerExecutorComponent.get(mContext) .dialerExecutorFactory() .createNonUiTaskBuilder(new UpdateSmartDialWorker()) .build() .executeParallel(null); } } } } Loading Loading @@ -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 @Override protected Object doInBackground(Object... objects) { public Void doInBackground(@Nullable Void input) throws Throwable { updateSmartDialDatabase(); updateSmartDialDatabase(); return null; return null; } } Loading java/com/android/dialer/duo/Duo.java +23 −1 Original line number Original line Diff line number Diff line Loading @@ -30,6 +30,7 @@ import java.util.List; /** Interface for Duo video call integration. */ /** Interface for Duo video call integration. */ public interface Duo { public interface Duo { /** @return true if the Duo integration is enabled on this device. */ boolean isEnabled(@NonNull Context context); boolean isEnabled(@NonNull Context context); /** /** Loading @@ -38,32 +39,53 @@ public interface Duo { */ */ boolean isActivated(@NonNull Context context); boolean isActivated(@NonNull Context context); /** @return true if the parameter number is reachable on Duo. */ @MainThread @MainThread boolean isReachable(@NonNull Context context, @Nullable String number); 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 @MainThread Optional<Boolean> supportsUpgrade(@NonNull Context context, @Nullable String number); Optional<Boolean> supportsUpgrade(@NonNull Context context, @Nullable String number); /** Starts a task to update the reachability of the parameter numbers asynchronously. */ @MainThread @MainThread void updateReachability(@NonNull Context context, @NonNull List<String> numbers); 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 @MainThread Intent getIntent(@NonNull Context context, @NonNull String number); Intent getIntent(@NonNull Context context, @NonNull String number); /** Requests upgrading the parameter ongoing call to a Duo video call. */ @MainThread @MainThread void requestUpgrade(@NonNull Context context, Call call); void requestUpgrade(@NonNull Context context, Call call); /** Registers a listener for reachability data changes. */ @MainThread @MainThread void registerListener(@NonNull DuoListener listener); void registerListener(@NonNull DuoListener listener); /** Unregisters a listener for reachability data changes. */ @MainThread @MainThread void unregisterListener(@NonNull DuoListener listener); void unregisterListener(@NonNull DuoListener listener); /** The string resource to use for outgoing Duo call entries in call details. */ @StringRes @StringRes @MainThread @MainThread int getOutgoingCallTypeText(); int getOutgoingCallTypeText(); /** The string resource to use for incoming Duo call entries in call details. */ @StringRes @StringRes @MainThread @MainThread int getIncomingCallTypeText(); int getIncomingCallTypeText(); Loading java/com/android/dialer/duo/stub/DuoStub.java +3 −0 Original line number Original line Diff line number Diff line Loading @@ -68,6 +68,9 @@ public class DuoStub implements Duo { Assert.isNotNull(numbers); Assert.isNotNull(numbers); } } @Override public void reloadReachability(@NonNull Context context) {} @MainThread @MainThread @Override @Override public Intent getIntent(@NonNull Context context, @NonNull String number) { public Intent getIntent(@NonNull Context context, @NonNull String number) { Loading Loading
java/com/android/dialer/app/DialtactsActivity.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -109,6 +109,7 @@ import com.android.dialer.database.DialerDatabaseHelper; import com.android.dialer.dialpadview.DialpadFragment; import com.android.dialer.dialpadview.DialpadFragment; import com.android.dialer.dialpadview.DialpadFragment.DialpadListener; import com.android.dialer.dialpadview.DialpadFragment.DialpadListener; import com.android.dialer.dialpadview.DialpadFragment.LastOutgoingCallCallback; 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; import com.android.dialer.interactions.PhoneNumberInteraction.InteractionErrorCode; import com.android.dialer.interactions.PhoneNumberInteraction.InteractionErrorCode; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.DialerImpression; Loading Loading @@ -836,6 +837,10 @@ public class DialtactsActivity extends TransactionSafeActivity .setActionTextColor(getResources().getColor(R.color.dialer_snackbar_action_text_color)) .setActionTextColor(getResources().getColor(R.color.dialer_snackbar_action_text_color)) .show(); .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); super.onActivityResult(requestCode, resultCode, data); } } Loading
java/com/android/dialer/database/DialerDatabaseHelper.java +11 −4 Original line number Original line Diff line number Diff line Loading @@ -26,19 +26,21 @@ import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteStatement; import android.database.sqlite.SQLiteStatement; import android.net.Uri; import android.net.Uri; import android.os.AsyncTask; import android.provider.BaseColumns; import android.provider.BaseColumns; import android.provider.ContactsContract; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.Directory; import android.provider.ContactsContract.Directory; import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; import android.support.annotation.VisibleForTesting; import android.support.annotation.WorkerThread; import android.support.annotation.WorkerThread; import android.text.TextUtils; import android.text.TextUtils; import com.android.contacts.common.R; import com.android.contacts.common.R; import com.android.contacts.common.util.StopWatch; import com.android.contacts.common.util.StopWatch; import com.android.dialer.common.LogUtil; 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.database.FilteredNumberContract.FilteredNumberColumns; import com.android.dialer.smartdial.SmartDialNameMatcher; import com.android.dialer.smartdial.SmartDialNameMatcher; import com.android.dialer.smartdial.SmartDialPrefix; import com.android.dialer.smartdial.SmartDialPrefix; Loading Loading @@ -332,7 +334,11 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper { /** Starts the database upgrade process in the background. */ /** Starts the database upgrade process in the background. */ public void startSmartDialUpdateThread() { public void startSmartDialUpdateThread() { if (PermissionsUtil.hasContactsReadPermissions(mContext)) { if (PermissionsUtil.hasContactsReadPermissions(mContext)) { new SmartDialUpdateAsyncTask().execute(); DialerExecutorComponent.get(mContext) .dialerExecutorFactory() .createNonUiTaskBuilder(new UpdateSmartDialWorker()) .build() .executeParallel(null); } } } } Loading Loading @@ -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 @Override protected Object doInBackground(Object... objects) { public Void doInBackground(@Nullable Void input) throws Throwable { updateSmartDialDatabase(); updateSmartDialDatabase(); return null; return null; } } Loading
java/com/android/dialer/duo/Duo.java +23 −1 Original line number Original line Diff line number Diff line Loading @@ -30,6 +30,7 @@ import java.util.List; /** Interface for Duo video call integration. */ /** Interface for Duo video call integration. */ public interface Duo { public interface Duo { /** @return true if the Duo integration is enabled on this device. */ boolean isEnabled(@NonNull Context context); boolean isEnabled(@NonNull Context context); /** /** Loading @@ -38,32 +39,53 @@ public interface Duo { */ */ boolean isActivated(@NonNull Context context); boolean isActivated(@NonNull Context context); /** @return true if the parameter number is reachable on Duo. */ @MainThread @MainThread boolean isReachable(@NonNull Context context, @Nullable String number); 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 @MainThread Optional<Boolean> supportsUpgrade(@NonNull Context context, @Nullable String number); Optional<Boolean> supportsUpgrade(@NonNull Context context, @Nullable String number); /** Starts a task to update the reachability of the parameter numbers asynchronously. */ @MainThread @MainThread void updateReachability(@NonNull Context context, @NonNull List<String> numbers); 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 @MainThread Intent getIntent(@NonNull Context context, @NonNull String number); Intent getIntent(@NonNull Context context, @NonNull String number); /** Requests upgrading the parameter ongoing call to a Duo video call. */ @MainThread @MainThread void requestUpgrade(@NonNull Context context, Call call); void requestUpgrade(@NonNull Context context, Call call); /** Registers a listener for reachability data changes. */ @MainThread @MainThread void registerListener(@NonNull DuoListener listener); void registerListener(@NonNull DuoListener listener); /** Unregisters a listener for reachability data changes. */ @MainThread @MainThread void unregisterListener(@NonNull DuoListener listener); void unregisterListener(@NonNull DuoListener listener); /** The string resource to use for outgoing Duo call entries in call details. */ @StringRes @StringRes @MainThread @MainThread int getOutgoingCallTypeText(); int getOutgoingCallTypeText(); /** The string resource to use for incoming Duo call entries in call details. */ @StringRes @StringRes @MainThread @MainThread int getIncomingCallTypeText(); int getIncomingCallTypeText(); Loading
java/com/android/dialer/duo/stub/DuoStub.java +3 −0 Original line number Original line Diff line number Diff line Loading @@ -68,6 +68,9 @@ public class DuoStub implements Duo { Assert.isNotNull(numbers); Assert.isNotNull(numbers); } } @Override public void reloadReachability(@NonNull Context context) {} @MainThread @MainThread @Override @Override public Intent getIntent(@NonNull Context context, @NonNull String number) { public Intent getIntent(@NonNull Context context, @NonNull String number) { Loading