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
This commit is contained in:
committed by
Antoan Angelov
parent
fff2d76ccb
commit
4c0513d8c7
@@ -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);
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user