summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/com/android/dialer/dialpad/DialpadFragment.java35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index fdcd14073..4034d9cbe 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -401,6 +401,12 @@ public class DialpadFragment extends Fragment
* @return true when {@link #mDigits} is actually filled by the Intent.
*/
private boolean fillDigitsIfNecessary(Intent intent) {
+ // Only fills digits from an intent if it is a new intent.
+ // Otherwise falls back to the previously used number.
+ if (!mFirstLaunch && !mStartedFromNewIntent) {
+ return false;
+ }
+
final String action = intent.getAction();
if (Intent.ACTION_DIAL.equals(action) || Intent.ACTION_VIEW.equals(action)) {
Uri uri = intent.getData();
@@ -439,7 +445,6 @@ public class DialpadFragment extends Fragment
}
}
}
-
return false;
}
@@ -463,7 +468,17 @@ public class DialpadFragment extends Fragment
* Checks the given Intent and changes dialpad's UI state. For example, if the Intent requires
* the screen to enter "Add Call" mode, this method will show correct UI for the mode.
*/
- private void configureScreenFromIntent(Intent intent) {
+ private void configureScreenFromIntent(Activity parent) {
+ // If we were not invoked with a DIAL intent,
+ if (!(parent instanceof DialtactsActivity)) {
+ setStartedFromNewIntent(false);
+ return;
+ }
+
+ // See if we were invoked with a DIAL intent. If we were, fill in the appropriate
+ // digits in the dialer field.
+ Intent intent = parent.getIntent();
+
if (!isLayoutReady()) {
// This happens typically when parent's Activity#onNewIntent() is called while
// Fragment#onCreateView() isn't called yet, and thus we cannot configure Views at
@@ -499,8 +514,8 @@ public class DialpadFragment extends Fragment
}
}
-
showDialpadChooser(needToShowDialpadChooser);
+ setStartedFromNewIntent(false);
}
public void setStartedFromNewIntent(boolean value) {
@@ -540,13 +555,6 @@ public class DialpadFragment extends Fragment
}
@Override
- public void onStart() {
- super.onStart();
- configureScreenFromIntent(getActivity().getIntent());
- setStartedFromNewIntent(false);
- }
-
- @Override
public void onResume() {
super.onResume();
@@ -595,12 +603,7 @@ public class DialpadFragment extends Fragment
// the dialpad edittext to prevent entries from being loaded from a null cache.
initializeSmartDialingState();
- Activity parent = getActivity();
- if (parent instanceof DialtactsActivity) {
- // See if we were invoked with a DIAL intent. If we were, fill in the appropriate
- // digits in the dialer field.
- fillDigitsIfNecessary(parent.getIntent());
- }
+ configureScreenFromIntent(getActivity());
stopWatch.lap("fdin");