summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnthony Chen <ajchen@google.com>2016-10-24 16:58:15 -0700
committerAnthony Chen <ajchen@google.com>2016-10-26 14:58:22 -0700
commite23918bbc5b7c304ac7f71790340955b5cd32be8 (patch)
tree7fb835ab6d810eaa8d541fcc38ad953ad1904e17
parent7769221ffa38608eb6d64301e188083aff20ece0 (diff)
downloadplatform_packages_apps_Car_Dialer-e23918bbc5b7c304ac7f71790340955b5cd32be8.tar.gz
platform_packages_apps_Car_Dialer-e23918bbc5b7c304ac7f71790340955b5cd32be8.tar.bz2
platform_packages_apps_Car_Dialer-e23918bbc5b7c304ac7f71790340955b5cd32be8.zip
Fix bug where dialpad does not get dismissed.
There was a delay when updating the current fragment to be the speed dial fragment. Removing this delay allows the fragment to be updated immediately and the dialpad to be shown. The clean state from this ensures that the dialpad is properly dismissed. Lastly, clean up some code in TelecomActivity. Test: manually tested Bug: 32380006 Change-Id: Ice8c7b4f5db8cb2fe704c74a66de30c8d99c5e5e
-rw-r--r--src/com/android/car/dialer/TelecomActivity.java61
1 files changed, 20 insertions, 41 deletions
diff --git a/src/com/android/car/dialer/TelecomActivity.java b/src/com/android/car/dialer/TelecomActivity.java
index cc18c493..55e435ac 100644
--- a/src/com/android/car/dialer/TelecomActivity.java
+++ b/src/com/android/car/dialer/TelecomActivity.java
@@ -22,7 +22,6 @@ import android.database.Cursor;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
-import android.os.Handler;
import android.support.car.Car;
import android.support.car.app.menu.CarDrawerActivity;
import android.support.car.app.menu.CarMenu;
@@ -57,33 +56,14 @@ public class TelecomActivity extends CarDrawerActivity implements
DialerFragment.DialerBackButtonListener {
private static final String TAG = "Em.TelecomActivity";
- public static final String ACTION_ANSWER_CALL =
- "com.android.car.dialer.ANSWER_CALL";
- public static final String ACTION_END_CALL =
- "com.android.car.dialer.END_CALL";
-
- public static final String CALL_LOG_EMPTY_PLACEHOLDER = "call_log_empty_placeholder";
-
+ private static final String ACTION_ANSWER_CALL = "com.android.car.dialer.ANSWER_CALL";
+ private static final String ACTION_END_CALL = "com.android.car.dialer.END_CALL";
private static final String DIALER_BACKSTACK = "DialerBackstack";
-
- // Delay after the last call disconnects to go back to the speed dial fragment
- private static final int POST_DISCONNECT_DELAY_MS = 3000;
private static final String FRAGMENT_CLASS_KEY = "FRAGMENT_CLASS_KEY";
- private final UiBluetoothMonitor.Listener mBluetoothListener =
- new UiBluetoothMonitor.Listener() {
- @Override
- public void onStateChanged() {
- updateCurrentFragment();
- }
- };
+ public static final String CALL_LOG_EMPTY_PLACEHOLDER = "call_log_empty_placeholder";
- private final Runnable mSpeedDialRunnable = new Runnable() {
- @Override
- public void run() {
- showSpeedDialFragment();
- }
- };
+ private final UiBluetoothMonitor.Listener mBluetoothListener = this::updateCurrentFragment;
public TelecomActivity(Proxy proxy, Context context, Car car) {
super(proxy, context, car);
@@ -105,8 +85,6 @@ public class TelecomActivity extends CarDrawerActivity implements
private DialerFragment mDialerFragment;
private boolean mDialerFragmentOpened;
- private Handler mHandler;
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -119,7 +97,6 @@ public class TelecomActivity extends CarDrawerActivity implements
getWindow().getDecorView().setBackgroundColor(context.getColor(R.color.phone_theme));
setTitle(context.getString(R.string.phone_app_name));
- mHandler = new Handler();
setCarMenuCallbacks(new TelecomMenuCallbacks());
mUiCallManager = UiCallManager.getInstance(context);
@@ -146,7 +123,6 @@ public class TelecomActivity extends CarDrawerActivity implements
@Override
protected void onPause() {
super.onPause();
- mHandler.removeCallbacks(mSpeedDialRunnable);
mUiCallManager.removeListener(mCarCallListener);
mUiBluetoothMonitor.removeListener(mBluetoothListener);
}
@@ -171,10 +147,14 @@ public class TelecomActivity extends CarDrawerActivity implements
Log.d(TAG, "onResume");
}
super.onResume();
+
+ // Update the current fragment before handling the intent so that any UI updates in
+ // handleIntent() is not overridden by updateCurrentFragment().
+ updateCurrentFragment();
handleIntent();
+
mUiCallManager.addListener(mCarCallListener);
mUiBluetoothMonitor.addListener(mBluetoothListener);
- updateCurrentFragment();
}
// TODO: move to base class.
@@ -248,7 +228,7 @@ public class TelecomActivity extends CarDrawerActivity implements
* Will switch to the drawer or no-hfp fragment as necessary.
*/
private void updateCurrentFragment() {
- if (Log.isLoggable(TAG, Log.DEBUG)) {
+ if (vdebug()) {
Log.d(TAG, "updateCurrentFragment");
}
@@ -264,30 +244,29 @@ public class TelecomActivity extends CarDrawerActivity implements
} else {
UiCall ongoingCall = mUiCallManager.getPrimaryCall();
- if (Log.isLoggable(TAG, Log.DEBUG)) {
- Log.d(TAG, "ongoingCall: " + ongoingCall + ", mCurrentFragment: " + mCurrentFragment);
+ if (vdebug()) {
+ Log.d(TAG, "ongoingCall: " + ongoingCall + ", mCurrentFragment: "
+ + mCurrentFragment);
}
if (ongoingCall == null && mCurrentFragment instanceof OngoingCallFragment) {
- mHandler.postDelayed(mSpeedDialRunnable, POST_DISCONNECT_DELAY_MS);
+ showSpeedDialFragment();
} else if (ongoingCall != null) {
- mHandler.removeCallbacks(mSpeedDialRunnable);
showOngoingCallFragment();
} else if (DialerFragment.class.getSimpleName().equals(mCurrentFragmentName)) {
showDialer();
} else {
- mHandler.removeCallbacks(mSpeedDialRunnable);
showSpeedDialFragment();
}
}
- if (Log.isLoggable(TAG, Log.DEBUG)) {
+ if (vdebug()) {
Log.d(TAG, "updateCurrentFragment: done");
}
}
- public void showSpeedDialFragment() {
- if (Log.isLoggable(TAG, Log.DEBUG)) {
+ private void showSpeedDialFragment() {
+ if (vdebug()) {
Log.d(TAG, "showSpeedDialFragment");
}
@@ -309,7 +288,7 @@ public class TelecomActivity extends CarDrawerActivity implements
}
private void showOngoingCallFragment() {
- if (Log.isLoggable(TAG, Log.DEBUG)) {
+ if (vdebug()) {
Log.d(TAG, "showOngoingCallFragment");
}
if (mCurrentFragment instanceof OngoingCallFragment) {
@@ -404,7 +383,7 @@ public class TelecomActivity extends CarDrawerActivity implements
}
private void setContentFragmentWithSlideAndDelayAnimation(Fragment fragment) {
- if (Log.isLoggable(TAG, Log.DEBUG)) {
+ if (vdebug()) {
Log.d(TAG, "setContentFragmentWithSlideAndDelayAnimation, fragment: " + fragment);
}
setContentFragmentWithAnimations(fragment,
@@ -412,7 +391,7 @@ public class TelecomActivity extends CarDrawerActivity implements
}
private void setContentFragmentWithFadeAnimation(Fragment fragment) {
- if (Log.isLoggable(TAG, Log.DEBUG)) {
+ if (vdebug()) {
Log.d(TAG, "setContentFragmentWithFadeAnimation, fragment: " + fragment);
}
setContentFragmentWithAnimations(fragment,