Merge "Improve scrolling, handle onNestedPreFling" into lmp-dev
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java
index 2f0ee53..e5c3c58 100644
--- a/src/com/android/dialer/calllog/CallLogFragment.java
+++ b/src/com/android/dialer/calllog/CallLogFragment.java
@@ -601,7 +601,7 @@
view.getLocalVisibleRect(localVisibleRect);
final int scrollingNeeded = localVisibleRect.top > 0 ? -localVisibleRect.top
: view.getMeasuredHeight() - localVisibleRect.height();
-
+ final ListView listView = getListView();
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
private int mCurrentScroll = 0;
@@ -618,9 +618,11 @@
view.requestLayout();
if (isExpand) {
- int scrollBy = (int) (value * scrollingNeeded) - mCurrentScroll;
- getListView().smoothScrollBy(scrollBy, /* duration = */ 0);
- mCurrentScroll += scrollBy;
+ if (listView != null) {
+ int scrollBy = (int) (value * scrollingNeeded) - mCurrentScroll;
+ listView.smoothScrollBy(scrollBy, /* duration = */ 0);
+ mCurrentScroll += scrollBy;
+ }
}
}
});
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index 9eb6884..7faed07 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -225,7 +225,7 @@
public void onCallStateChanged(int state, String incomingNumber) {
// Log.i(TAG, "PhoneStateListener.onCallStateChanged: "
// + state + ", '" + incomingNumber + "'");
- if ((state == TelephonyManager.CALL_STATE_IDLE) && dialpadChooserVisible()) {
+ if ((state == TelephonyManager.CALL_STATE_IDLE) && isDialpadChooserVisible()) {
// Log.i(TAG, "Call ended with dialpad chooser visible! Taking it down...");
// Note there's a race condition in the UI here: the
// dialpad chooser could conceivably disappear (on its
@@ -838,7 +838,6 @@
}
mPressedDialpadKeys.add(view);
} else {
- view.jumpDrawablesToCurrentState();
mPressedDialpadKeys.remove(view);
if (mPressedDialpadKeys.isEmpty()) {
stopTone();
@@ -1211,7 +1210,7 @@
}
if (enabled) {
- // Log.i(TAG, "Showing dialpad chooser!");
+ Log.i(TAG, "Showing dialpad chooser!");
if (mDialpadView != null) {
mDialpadView.setVisibility(View.GONE);
}
@@ -1226,7 +1225,7 @@
}
mDialpadChooser.setAdapter(mDialpadChooserAdapter);
} else {
- // Log.i(TAG, "Displaying normal Dialer UI.");
+ Log.i(TAG, "Displaying normal Dialer UI.");
if (mDialpadView != null) {
mDialpadView.setVisibility(View.VISIBLE);
} else {
@@ -1241,7 +1240,7 @@
/**
* @return true if we're currently showing the "dialpad chooser" UI.
*/
- private boolean dialpadChooserVisible() {
+ private boolean isDialpadChooserVisible() {
return mDialpadChooser.getVisibility() == View.VISIBLE;
}
@@ -1604,7 +1603,7 @@
final DialtactsActivity activity = (DialtactsActivity) getActivity();
final DialpadView dialpadView = (DialpadView) getView().findViewById(R.id.dialpad_view);
if (activity == null) return;
- if (!hidden) {
+ if (!hidden && !isDialpadChooserVisible()) {
if (mAnimate) {
dialpadView.animateShow();
}