Merge "Extract ShowAllContactsFragment and add it to its own activity" into klp-dev
diff --git a/res/layout/dialpad_fragment.xml b/res/layout/dialpad_fragment.xml
index 178e33b..b79214a 100644
--- a/res/layout/dialpad_fragment.xml
+++ b/res/layout/dialpad_fragment.xml
@@ -82,7 +82,7 @@
android:background="@color/dialpad_primary_text_color">
<ImageButton
android:id="@+id/call_history_on_dialpad_button"
- android:layout_height="@dimen/fake_action_bar_height"
+ android:layout_height="match_parent"
android:layout_width="@dimen/fake_menu_button_min_width"
android:layout_gravity="bottom|start"
android:background="@drawable/btn_call"
@@ -100,7 +100,7 @@
android:src="@drawable/ic_dial_action_call" />
<ImageButton
android:id="@+id/overflow_menu_on_dialpad"
- android:layout_height="@dimen/fake_action_bar_height"
+ android:layout_height="match_parent"
android:layout_width="@dimen/fake_menu_button_min_width"
android:layout_gravity="bottom|end"
android:background="@drawable/btn_call"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f35df9d..6ea6db6 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -547,52 +547,53 @@
<!-- Title of activity that displays a list of all calls -->
<string name="call_log_activity_title">History</string>
- <!-- Do not translate. -->
+ <!-- The digit to be displayed on the 0 key of the dialpad [CHAR LIMIT=1]-->
<string name="dialpad_0_number">0</string>
- <!-- Do not translate. -->
- <string name="dialpad_0_letters">+</string>
- <!-- Do not translate. -->
+ <!-- The digit to be displayed on the 1 key of the dialpad [CHAR LIMIT=1]-->
<string name="dialpad_1_number">1</string>
- <!-- Do not translate. -->
- <string name="dialpad_1_letters"></string>
- <!-- Do not translate. -->
+ <!-- The digit to be displayed on the 2 key of the dialpad [CHAR LIMIT=1]-->
<string name="dialpad_2_number">2</string>
- <!-- Do not translate. -->
- <string name="dialpad_2_letters">ABC</string>
- <!-- Do not translate. -->
+ <!-- The digit to be displayed on the 3 key of the dialpad [CHAR LIMIT=1]-->
<string name="dialpad_3_number">3</string>
- <!-- Do not translate. -->
- <string name="dialpad_3_letters">DEF</string>
- <!-- Do not translate. -->
+ <!-- The digit to be displayed on the 4 key of the dialpad [CHAR LIMIT=1]-->
<string name="dialpad_4_number">4</string>
- <!-- Do not translate. -->
- <string name="dialpad_4_letters">GHI</string>
- <!-- Do not translate. -->
+ <!-- The digit to be displayed on the 5 key of the dialpad [CHAR LIMIT=1]-->
<string name="dialpad_5_number">5</string>
- <!-- Do not translate. -->
- <string name="dialpad_5_letters">JKL</string>
- <!-- Do not translate. -->
+ <!-- The digit to be displayed on the 6 key of the dialpad [CHAR LIMIT=1]-->
<string name="dialpad_6_number">6</string>
- <!-- Do not translate. -->
- <string name="dialpad_6_letters">MNO</string>
- <!-- Do not translate. -->
+ <!-- The digit to be displayed on the 7 key of the dialpad [CHAR LIMIT=1]-->
<string name="dialpad_7_number">7</string>
- <!-- Do not translate. -->
- <string name="dialpad_7_letters">PQRS</string>
- <!-- Do not translate. -->
+ <!-- The digit to be displayed on the 8 key of the dialpad [CHAR LIMIT=1]-->
<string name="dialpad_8_number">8</string>
- <!-- Do not translate. -->
- <string name="dialpad_8_letters">TUV</string>
- <!-- Do not translate. -->
+ <!-- The digit to be displayed on the 9 key of the dialpad [CHAR LIMIT=1]-->
<string name="dialpad_9_number">9</string>
<!-- Do not translate. -->
- <string name="dialpad_9_letters">WXYZ</string>
- <!-- Do not translate. -->
<string name="dialpad_star_number">*</string>
<!-- Do not translate. -->
- <string name="dialpad_star_letters"></string>
- <!-- Do not translate. -->
<string name="dialpad_pound_number">#</string>
+
+ <!-- Do not translate. -->
+ <string name="dialpad_0_letters">+</string>
+ <!-- Do not translate. -->
+ <string name="dialpad_1_letters"></string>
+ <!-- Do not translate. -->
+ <string name="dialpad_2_letters">ABC</string>
+ <!-- Do not translate. -->
+ <string name="dialpad_3_letters">DEF</string>
+ <!-- Do not translate. -->
+ <string name="dialpad_4_letters">GHI</string>
+ <!-- Do not translate. -->
+ <string name="dialpad_5_letters">JKL</string>
+ <!-- Do not translate. -->
+ <string name="dialpad_6_letters">MNO</string>
+ <!-- Do not translate. -->
+ <string name="dialpad_7_letters">PQRS</string>
+ <!-- Do not translate. -->
+ <string name="dialpad_8_letters">TUV</string>
+ <!-- Do not translate. -->
+ <string name="dialpad_9_letters">WXYZ</string>
+ <!-- Do not translate. -->
+ <string name="dialpad_star_letters"></string>
<!-- Do not translate. -->
<string name="dialpad_pound_letters"></string>
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 61fab17..8381c8d 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -81,9 +81,6 @@
/**
* The dialer tab's title is 'phone', a more common name (see strings.xml).
- *
- * TODO krelease: All classes currently prefixed with New will replace the original classes or
- * be renamed more appropriately before shipping.
*/
public class DialtactsActivity extends TransactionSafeActivity implements View.OnClickListener,
DialpadFragment.OnDialpadQueryChangedListener, PopupMenu.OnMenuItemClickListener,
@@ -349,6 +346,8 @@
final PopupMenu popupMenu = new PopupMenu(DialtactsActivity.this, view);
final Menu menu = popupMenu.getMenu();
popupMenu.inflate(R.menu.dialtacts_options);
+ final MenuItem clearFrequents = menu.findItem(R.id.menu_clear_frequents);
+ clearFrequents.setVisible(mPhoneFavoriteFragment.hasFrequents());
popupMenu.setOnMenuItemClickListener(this);
popupMenu.show();
break;
@@ -358,9 +357,8 @@
break;
case R.id.call_history_on_dialpad_button:
case R.id.call_history_button:
- // TODO krelease: This should start an intent with content type
- // CallLog.Calls.CONTENT_TYPE, once the intent filters for the call log activity
- // is enabled
+ // Use explicit CallLogActivity intent instead of ACTION_VIEW +
+ // CONTENT_TYPE, so that we always open our call log from our dialer
final Intent intent = new Intent(this, CallLogActivity.class);
startActivity(intent);
break;
@@ -401,15 +399,19 @@
}
private void showDialpadFragment(boolean animate) {
+ mDialpadFragment.setAdjustTranslationForAnimation(animate);
final FragmentTransaction ft = getFragmentManager().beginTransaction();
if (animate) {
ft.setCustomAnimations(R.anim.slide_in, 0);
+ } else {
+ mDialpadFragment.setYFraction(0);
}
ft.show(mDialpadFragment);
ft.commit();
}
private void hideDialpadFragment(boolean animate) {
+ mDialpadFragment.setAdjustTranslationForAnimation(animate);
final FragmentTransaction ft = getFragmentManager().beginTransaction();
if (animate) {
ft.setCustomAnimations(0, R.anim.slide_out);
@@ -568,9 +570,6 @@
* @param intent Intent that contains information about which tab should be selected
*/
private void displayFragment(Intent intent) {
- // TODO krelease: Make navigation via intent work by displaying the correct fragment
- // as appropriate.
-
// If we got here by hitting send and we're in call forward along to the in-call activity
boolean recentCallsRequest = Calls.CONTENT_TYPE.equals(intent.resolveType(
getContentResolver()));
@@ -581,9 +580,7 @@
if (mDialpadFragment != null && (phoneIsInUse() || isDialIntent(intent))) {
mDialpadFragment.setStartedFromNewIntent(true);
- // TODO krelease: This should use showDialpadFragment(false) to avoid animating
- // the dialpad in. Need to fix the onPreDrawListener in NewDialpadFragment first.
- showDialpadFragment(true);
+ showDialpadFragment(false);
}
}
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java
index 5d75004..a76d0c1 100644
--- a/src/com/android/dialer/calllog/CallLogFragment.java
+++ b/src/com/android/dialer/calllog/CallLogFragment.java
@@ -90,7 +90,6 @@
private final Handler mHandler = new Handler();
private TelephonyManager mTelephonyManager;
- private PhoneStateListener mPhoneStateListener;
private class CustomContentObserver extends ContentObserver {
public CustomContentObserver() {
@@ -322,7 +321,6 @@
mAdapter.changeCursor(null);
getActivity().getContentResolver().unregisterContentObserver(mCallLogObserver);
getActivity().getContentResolver().unregisterContentObserver(mContactsObserver);
- unregisterPhoneCallReceiver();
}
@Override
@@ -340,12 +338,6 @@
}
private void updateCallList(int filterType) {
- if (filterType == CallLogQueryHandler.CALL_TYPE_ALL) {
- unregisterPhoneCallReceiver();
- } else {
- // TODO krelease: Make this work
- //registerPhoneCallReceiver();
- }
mCallLogQueryHandler.fetchCalls(filterType);
}
@@ -487,48 +479,4 @@
serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_NOTIFICATIONS);
getActivity().startService(serviceIntent);
}
-
- // TODO krelease: Make the ViewPager switch to the correct tab (All) when a phone call is
- // placed.
- // This should probably be moved to the call log activity.
- /**
- * Register a phone call filter to reset the call type when a phone call is place.
- */
- /*
- private void registerPhoneCallReceiver() {
- if (mPhoneStateListener != null) {
- return; // Already registered.
- }
- mTelephonyManager = (TelephonyManager) getActivity().getSystemService(
- Context.TELEPHONY_SERVICE);
- mPhoneStateListener = new PhoneStateListener() {
- @Override
- public void onCallStateChanged(int state, String incomingNumber) {
- if (state != TelephonyManager.CALL_STATE_OFFHOOK &&
- state != TelephonyManager.CALL_STATE_RINGING) {
- return;
- }
- mHandler.post(new Runnable() {
- @Override
- public void run() {
- if (getActivity() == null || getActivity().isFinishing()) {
- return;
- }
- }
- });
- }
- };
- mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
- }
- */
-
- /**
- * Un-registers the phone call receiver.
- */
- private void unregisterPhoneCallReceiver() {
- if (mPhoneStateListener != null) {
- mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
- mPhoneStateListener = null;
- }
- }
}
diff --git a/src/com/android/dialer/calllog/CallLogListItemHelper.java b/src/com/android/dialer/calllog/CallLogListItemHelper.java
index fdebeb1..23366e4 100644
--- a/src/com/android/dialer/calllog/CallLogListItemHelper.java
+++ b/src/com/android/dialer/calllog/CallLogListItemHelper.java
@@ -27,10 +27,6 @@
/**
* Helper class to fill in the views of a call log entry.
- * TODO krelease: The only difference between this and the original is that we don't touch
- * divider views, which are not present in the new dialer. Once the new dialer replaces
- * the old one, we can replace it entirely. Otherwise we would have redundant divider=null
- * checks all over the place.
*/
/* package */class CallLogListItemHelper {
/** Helper for populating the details of a phone call. */
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index 3052c67..f3a1e99 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -262,6 +262,7 @@
private boolean mStartedFromNewIntent = false;
private boolean mFirstLaunch = false;
+ private boolean mAdjustTranslationForAnimation = false;
private static final String PREF_DIGITS_FILLED_BY_INTENT = "pref_digits_filled_by_intent";
@@ -350,15 +351,17 @@
false);
fragmentView.buildLayer();
- // TODO krelease: Get rid of this ugly hack which is to prevent the first frame of the
- // animation from drawing the fragment at translationY = 0
final ViewTreeObserver vto = fragmentView.getViewTreeObserver();
+ // Adjust the translation of the DialpadFragment in a preDrawListener instead of in
+ // DialtactsActivity, because at the point in time when the DialpadFragment is added,
+ // its views have not been laid out yet.
final OnPreDrawListener preDrawListener = new OnPreDrawListener() {
@Override
public boolean onPreDraw() {
+
if (isHidden()) return true;
- if (fragmentView.getTranslationY() == 0) {
+ if (mAdjustTranslationForAnimation && fragmentView.getTranslationY() == 0) {
((DialpadSlidingLinearLayout) fragmentView).setYFraction(
DIALPAD_SLIDE_FRACTION);
}
@@ -1660,6 +1663,10 @@
// TODO: Filter out emergency numbers if
// the carrier does not want redial for
// these.
+ // If the fragment has already been detached since the last time
+ // we called queryLastOutgoingCall in onResume there is no point
+ // doing anything here.
+ if (getActivity() == null) return;
mLastNumberDialed = number;
updateDialAndDeleteButtonEnabledState();
}
@@ -1691,4 +1698,12 @@
activity.hideSearchBar();
}
}
+
+ public void setAdjustTranslationForAnimation(boolean value) {
+ mAdjustTranslationForAnimation = value;
+ }
+
+ public void setYFraction(float yFraction) {
+ ((DialpadSlidingLinearLayout) getView()).setYFraction(yFraction);
+ }
}
diff --git a/src/com/android/dialer/list/PhoneFavoriteFragment.java b/src/com/android/dialer/list/PhoneFavoriteFragment.java
index 589a7b1..b6a5fb4 100644
--- a/src/com/android/dialer/list/PhoneFavoriteFragment.java
+++ b/src/com/android/dialer/list/PhoneFavoriteFragment.java
@@ -166,8 +166,6 @@
new ContactTileLoaderListener();
private final ScrollListener mScrollListener = new ScrollListener();
- private boolean mOptionsMenuHasFrequents;
-
@Override
public void onAttach(Activity activity) {
if (DEBUG) Log.d(TAG, "onAttach()");
@@ -250,24 +248,8 @@
return listLayout;
}
-
- // TODO krelease: update the options menu when displaying the popup menu instead. We could
- // possibly get rid of this method entirely.
- private boolean isOptionsMenuChanged() {
- return mOptionsMenuHasFrequents != hasFrequents();
- }
-
- // TODO krelease: Configure the menu items properly. Since the menu items show up as a PopupMenu
- // rather than a normal actionbar menu, the initialization should be done there.
- /*
- @Override
- public void onPrepareOptionsMenu(Menu menu) {
- final MenuItem clearFrequents = menu.findItem(R.id.menu_clear_frequents);
- mOptionsMenuHasFrequents = hasFrequents();
- clearFrequents.setVisible(mOptionsMenuHasFrequents);
- }*/
-
- private boolean hasFrequents() {
+ public boolean hasFrequents() {
+ if (mContactTileAdapter == null) return false;
return mContactTileAdapter.getNumFrequents() > 0;
}