summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/com/android/dialer/precall/impl/AndroidManifest.xml1
-rw-r--r--java/com/android/dialer/precall/impl/CallingAccountSelector.java24
-rw-r--r--java/com/android/dialer/precall/impl/PreCallActivity.java2
-rw-r--r--java/com/android/dialer/precall/impl/PreCallCoordinatorImpl.java2
4 files changed, 18 insertions, 11 deletions
diff --git a/java/com/android/dialer/precall/impl/AndroidManifest.xml b/java/com/android/dialer/precall/impl/AndroidManifest.xml
index d3d0f538d..b960f6bad 100644
--- a/java/com/android/dialer/precall/impl/AndroidManifest.xml
+++ b/java/com/android/dialer/precall/impl/AndroidManifest.xml
@@ -23,6 +23,7 @@
android:name="com.android.dialer.precall.impl.PreCallActivity"
android:excludeFromRecents="true"
android:noHistory="true"
+ android:showWhenLocked="true"
android:theme="@style/Theme.PreCall.DialogHolder">
</activity>
</application>
diff --git a/java/com/android/dialer/precall/impl/CallingAccountSelector.java b/java/com/android/dialer/precall/impl/CallingAccountSelector.java
index 144d94e20..4d2e6063a 100644
--- a/java/com/android/dialer/precall/impl/CallingAccountSelector.java
+++ b/java/com/android/dialer/precall/impl/CallingAccountSelector.java
@@ -119,12 +119,12 @@ public class CallingAccountSelector implements PreCallAction {
PendingAction pendingAction = coordinator.startPendingAction();
DialerExecutorComponent.get(coordinator.getActivity())
.dialerExecutorFactory()
- .createUiTaskBuilder(
- activity.getFragmentManager(),
- "PreferredAccountWorker",
- new PreferredAccountWorker(phoneNumber))
+ .createNonUiTaskBuilder(new PreferredAccountWorker(phoneNumber))
.onSuccess(
(result -> {
+ if (isDiscarding) {
+ return;
+ }
if (result.phoneAccountHandle.isPresent()) {
coordinator.getBuilder().setPhoneAccountHandle(result.phoneAccountHandle.get());
pendingAction.finish();
@@ -213,7 +213,9 @@ public class CallingAccountSelector implements PreCallAction {
@Override
public void onDiscard() {
isDiscarding = true;
- selectPhoneAccountDialogFragment.dismiss();
+ if (selectPhoneAccountDialogFragment != null) {
+ selectPhoneAccountDialogFragment.dismiss();
+ }
}
private static class PreferredAccountWorkerResult {
@@ -353,11 +355,13 @@ public class CallingAccountSelector implements PreCallAction {
new WritePreferredAccountWorkerInput(
coordinator.getActivity(), dataId, selectedAccountHandle));
}
- DialerExecutorComponent.get(coordinator.getActivity())
- .dialerExecutorFactory()
- .createNonUiTaskBuilder(new UserSelectionReporter(selectedAccountHandle, number))
- .build()
- .executeParallel(coordinator.getActivity());
+ if (number != null) {
+ DialerExecutorComponent.get(coordinator.getActivity())
+ .dialerExecutorFactory()
+ .createNonUiTaskBuilder(new UserSelectionReporter(selectedAccountHandle, number))
+ .build()
+ .executeParallel(coordinator.getActivity());
+ }
listener.finish();
}
diff --git a/java/com/android/dialer/precall/impl/PreCallActivity.java b/java/com/android/dialer/precall/impl/PreCallActivity.java
index 938d31d5f..eadba2b11 100644
--- a/java/com/android/dialer/precall/impl/PreCallActivity.java
+++ b/java/com/android/dialer/precall/impl/PreCallActivity.java
@@ -19,6 +19,7 @@ package com.android.dialer.precall.impl;
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
+import android.view.WindowManager.LayoutParams;
/** A transparent activity to host dialogs for {@link PreCallCoordinatorImpl} */
public class PreCallActivity extends Activity {
@@ -30,6 +31,7 @@ public class PreCallActivity extends Activity {
super.onCreate(savedInstanceState);
preCallCoordinator = new PreCallCoordinatorImpl(this);
preCallCoordinator.onCreate(getIntent(), savedInstanceState);
+ getWindow().addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
}
@Override
diff --git a/java/com/android/dialer/precall/impl/PreCallCoordinatorImpl.java b/java/com/android/dialer/precall/impl/PreCallCoordinatorImpl.java
index de32cc2ae..94ba90d75 100644
--- a/java/com/android/dialer/precall/impl/PreCallCoordinatorImpl.java
+++ b/java/com/android/dialer/precall/impl/PreCallCoordinatorImpl.java
@@ -59,7 +59,6 @@ public class PreCallCoordinatorImpl implements PreCallCoordinator {
} else {
builder = Assert.isNotNull(intent.getParcelableExtra(EXTRA_CALL_INTENT_BUILDER));
}
- actions = PreCallComponent.get(activity).getPreCall().getActions();
}
void onRestoreInstanceState(Bundle savedInstanceState) {
@@ -68,6 +67,7 @@ public class PreCallCoordinatorImpl implements PreCallCoordinator {
}
void onResume() {
+ actions = PreCallComponent.get(activity).getPreCall().getActions();
runNextAction();
}