diff options
| author | arangelov <arangelov@google.com> | 2020-03-05 22:24:13 +0000 |
|---|---|---|
| committer | Antoan Angelov <arangelov@google.com> | 2020-03-06 15:34:34 +0000 |
| commit | 4c0513d8c77bd85dee791cbc1f22ee136f758e33 (patch) | |
| tree | c2b2b13e3c0889f6f84630127faf3ee92b984406 /core/java | |
| parent | fff2d76ccb057bf676e1184a8c83d08e4c7b7a9a (diff) | |
Prevent intent resolver from changing height when no app targets
If we select the inactive tab, and there are no resolved targets,
the intent resolver changes its height for a few frames.
This is because first we show and reload the list view as we
switch to the other, and then in onPostListReady we show the
empty state screen for no apps available. There are few frames
between these two events, when the list view has a height of 0.
That's when the ResolverViewPager recalculates its height and
thus reduces the intent resolver height. Then as the empty state
screen is shown, the proper intent resolver height is restored.
The fix is to move the showListView call to onPostListReady.
Test: manual
Fixes: 150888674
Change-Id: I685568e183bbd5708242e1228195ec6b09023272
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java | 3 | ||||
| -rw-r--r-- | core/java/com/android/internal/app/ResolverActivity.java | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java b/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java index 18d77386d063..0a1094bcc9af 100644 --- a/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java +++ b/core/java/com/android/internal/app/AbstractMultiProfilePagerAdapter.java @@ -327,7 +327,6 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter { return false; } } - showListView(activeListAdapter); return activeListAdapter.rebuildList(doPostProcessing); } @@ -408,7 +407,7 @@ public abstract class AbstractMultiProfilePagerAdapter extends PagerAdapter { emptyStateView.findViewById(R.id.resolver_empty_state_progress).setVisibility(View.GONE); } - private void showListView(ResolverListAdapter activeListAdapter) { + protected void showListView(ResolverListAdapter activeListAdapter) { ProfileDescriptor descriptor = getItem( userHandleToPageIndex(activeListAdapter.getUserHandle())); descriptor.rootView.findViewById(R.id.resolver_list).setVisibility(View.VISIBLE); diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index bd7b47d853d2..075a58b0403e 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -989,6 +989,8 @@ public class ResolverActivity extends Activity implements } if (shouldShowEmptyState(listAdapter)) { mMultiProfilePagerAdapter.showEmptyState(listAdapter); + } else { + mMultiProfilePagerAdapter.showListView(listAdapter); } if (doPostProcessing) { if (mMultiProfilePagerAdapter.getCurrentUserHandle().getIdentifier() |
