summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/com/android/dialer/DialtactsActivity.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 63b0cb839..52ee530e6 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -161,6 +161,11 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
private boolean mInRegularSearch;
/**
+ * True if the dialpad is only temporarily showing due to being in call
+ */
+ private boolean mInCallDialpadUp;
+
+ /**
* True when this activity has been launched for the first time.
*/
private boolean mFirstLaunch;
@@ -312,7 +317,11 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
super.onResume();
if (mFirstLaunch) {
displayFragment(getIntent());
+ } else if (!phoneIsInUse() && mInCallDialpadUp) {
+ hideDialpadFragment(false, true);
+ mInCallDialpadUp = false;
}
+
mFirstLaunch = false;
mDialerDatabaseHelper.startSmartDialUpdateThread();
}
@@ -396,6 +405,11 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
break;
}
case R.id.dialpad_button:
+ // Reset the boolean flag that tracks whether the dialpad was up because
+ // we were in call. Regardless of whether it was true before, we want to
+ // show the dialpad because the user has explicitly clicked the dialpad
+ // button.
+ mInCallDialpadUp = false;
showDialpadFragment(true);
break;
case R.id.call_history_on_dialpad_button:
@@ -632,6 +646,9 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
if (mDialpadFragment != null && (phoneIsInUse() || isDialIntent(intent))) {
mDialpadFragment.setStartedFromNewIntent(true);
+ if (!mDialpadFragment.isVisible()) {
+ mInCallDialpadUp = true;
+ }
showDialpadFragment(false);
}
}