Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1f1b88e2 authored by roldenburg's avatar roldenburg Committed by android-build-merger
Browse files

Merge "Add reloadReachabilities to Duo interface" am: 84bb0db1 am: a335b486

am: 335329f6

Change-Id: I49bbcbcbffe2f991c84ed74a0f53d1b0250919ff
parents 2a54bc2a 335329f6
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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);
  }
  }
+11 −4
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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);
    }
    }
  }
  }


@@ -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;
    }
    }
+23 −1
Original line number Original line Diff line number Diff line
@@ -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);


  /**
  /**
@@ -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();
+3 −0
Original line number Original line Diff line number Diff line
@@ -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) {