From 5c537adb89e5f7cbe4d1e965ab0ffa75370f08a8 Mon Sep 17 00:00:00 2001 From: Yorke Lee Date: Thu, 7 Aug 2014 14:43:28 -0700 Subject: Fix IllegalStateException in Dialer Bug: 16862804 Change-Id: Ifa16032686547bb2df213c9155662d0e85b72d49 --- src/com/android/dialer/list/PhoneFavoriteListView.java | 7 +++++++ .../android/dialer/list/PhoneFavoritesTileAdapter.java | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/com/android/dialer/list/PhoneFavoriteListView.java b/src/com/android/dialer/list/PhoneFavoriteListView.java index 4ecc1cd90..2b4575486 100644 --- a/src/com/android/dialer/list/PhoneFavoriteListView.java +++ b/src/com/android/dialer/list/PhoneFavoriteListView.java @@ -317,4 +317,11 @@ public class PhoneFavoriteListView extends GridView implements OnDragDropListene return (PhoneFavoriteSquareTileView) child; } + + // Temporary workaround for b/16862804 + @Override + public void onWindowFocusChanged(boolean hasWindowFocus) { + setAddStatesFromChildren(false); + super.onWindowFocusChanged(hasWindowFocus); + } } diff --git a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java index 382e42e56..600bd8b5c 100644 --- a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java +++ b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java @@ -35,7 +35,9 @@ import android.provider.ContactsContract.PinnedPositions; import android.text.TextUtils; import android.util.Log; import android.util.LongSparseArray; +import android.view.MotionEvent; import android.view.View; +import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.FrameLayout; @@ -129,6 +131,18 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements } }; + // Temporary workaround for b/16862804 + final OnTouchListener mOnTouchListener = new OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + if (v.getParent() != null) { + ViewGroup parent = (ViewGroup) v.getParent(); + parent.setAddStatesFromChildren(false); + } + return false; + } + }; + public interface OnDataSetChangedForAnimationListener { public void onDataSetChangedForAnimation(long... idsInPlace); public void cacheOffsetsForDatasetChange(); @@ -399,6 +413,8 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements tileView.setPhotoManager(mPhotoManager); tileView.setListener(mListener); tileView.loadFromContact(getItem(position)); + + tileView.setOnTouchListener(mOnTouchListener); return tileView; } -- cgit v1.2.3 From a0e630cded0b1346683db8663f07e85b781439b4 Mon Sep 17 00:00:00 2001 From: Sai Cheemalapati Date: Thu, 7 Aug 2014 13:35:41 -0700 Subject: Fixing possible crash on tab switch. Bug: 16873267 Change-Id: I66309fad4b2e49dd5ca8ba0d17a88a6a0ede07a9 --- src/com/android/dialer/list/ListsFragment.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java index 966d265dd..22cb35c0f 100644 --- a/src/com/android/dialer/list/ListsFragment.java +++ b/src/com/android/dialer/list/ListsFragment.java @@ -331,11 +331,11 @@ public class ListsFragment extends AnalyticsFragment implements CallLogQueryHand @Override public void onPageSelected(int position) { - if (position == TAB_INDEX_SPEED_DIAL) { + if (position == TAB_INDEX_SPEED_DIAL && mSpeedDialFragment != null) { mSpeedDialFragment.sendScreenView(); - } else if (position == TAB_INDEX_RECENTS) { + } else if (position == TAB_INDEX_RECENTS && mRecentsFragment != null) { mRecentsFragment.sendScreenView(); - } else if (position == TAB_INDEX_ALL_CONTACTS) { + } else if (position == TAB_INDEX_ALL_CONTACTS && mAllContactsFragment != null) { mAllContactsFragment.sendScreenView(); } final int count = mOnPageChangeListeners.size(); -- cgit v1.2.3 From 33abd64ddc92aaeb74e253bab0b8c1db3313cbb2 Mon Sep 17 00:00:00 2001 From: Yorke Lee Date: Tue, 9 Sep 2014 16:30:34 -0700 Subject: Set the visibility of the FAB correctly even if mAnimate is false When launching directly into the dialpad from a dial intent, the FAB wasn't getting shown sometimes due to animation being skipped. Make sure to force it to appear regardless of whether animation is required. Bug: 17443578 Change-Id: Ic53628b9792038cda0e3e447e5268e8e6fd22190 --- src/com/android/dialer/DialtactsActivity.java | 6 +++++- src/com/android/dialer/dialpad/DialpadFragment.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java index b80c27bd4..d7bfb00fb 100644 --- a/src/com/android/dialer/DialtactsActivity.java +++ b/src/com/android/dialer/DialtactsActivity.java @@ -622,7 +622,11 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O ft.show(mDialpadFragment); ft.commit(); - mFloatingActionButtonController.scaleOut(); + if (animate) { + mFloatingActionButtonController.scaleOut(); + } else { + mFloatingActionButtonController.setVisible(false); + } mActionBarController.onDialpadUp(); if (!isInSearchUi()) { diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java index 169b9f3c4..ee1d63438 100644 --- a/src/com/android/dialer/dialpad/DialpadFragment.java +++ b/src/com/android/dialer/dialpad/DialpadFragment.java @@ -1608,8 +1608,8 @@ public class DialpadFragment extends AnalyticsFragment if (!hidden) { if (mAnimate) { dialpadView.animateShow(); - mFloatingActionButtonController.scaleIn(mDialpadSlideInDuration); } + mFloatingActionButtonController.scaleIn(mAnimate ? mDialpadSlideInDuration : 0); activity.onDialpadShown(); mDigits.requestFocus(); } -- cgit v1.2.3