Merge "Remove empty space in Usage access"
This commit is contained in:
committed by
Android (Google) Code Review
commit
f660e72009
@@ -28,9 +28,9 @@
|
||||
settings:layout_behavior="com.android.settings.widget.FloatingAppBarScrollingViewBehavior">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/content_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingTop="@dimen/app_bar_height">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/list_container"
|
||||
|
@@ -185,7 +185,6 @@ public class ManageApplications extends InstrumentedFragment
|
||||
private ApplicationsAdapter mApplications;
|
||||
|
||||
private View mLoadingContainer;
|
||||
|
||||
private View mListContainer;
|
||||
private RecyclerView mRecyclerView;
|
||||
private SearchView mSearchView;
|
||||
@@ -216,10 +215,15 @@ public class ManageApplications extends InstrumentedFragment
|
||||
LIST_TYPE_MAIN,
|
||||
LIST_TYPE_STORAGE));
|
||||
|
||||
@VisibleForTesting
|
||||
View mSpinnerHeader;
|
||||
@VisibleForTesting
|
||||
FilterSpinnerAdapter mFilterAdapter;
|
||||
@VisibleForTesting
|
||||
View mContentContainer;
|
||||
|
||||
private View mRootView;
|
||||
private View mSpinnerHeader;
|
||||
private Spinner mFilterSpinner;
|
||||
private FilterSpinnerAdapter mFilterAdapter;
|
||||
private IUsageStatsManager mUsageStatsManager;
|
||||
private UserManager mUserManager;
|
||||
private NotificationBackend mNotificationBackend;
|
||||
@@ -326,6 +330,7 @@ public class ManageApplications extends InstrumentedFragment
|
||||
Bundle savedInstanceState) {
|
||||
mRootView = inflater.inflate(R.layout.manage_applications_apps, null);
|
||||
mLoadingContainer = mRootView.findViewById(R.id.loading_container);
|
||||
mContentContainer = mRootView.findViewById(R.id.content_container);
|
||||
mListContainer = mRootView.findViewById(R.id.list_container);
|
||||
if (mListContainer != null) {
|
||||
// Create adapter and list view here
|
||||
@@ -794,8 +799,7 @@ public class ManageApplications extends InstrumentedFragment
|
||||
}
|
||||
mFilterOptions.add(filter);
|
||||
Collections.sort(mFilterOptions);
|
||||
mManageApplications.mSpinnerHeader.setVisibility(
|
||||
mFilterOptions.size() > 1 ? View.VISIBLE : View.GONE);
|
||||
updateFilterView(mFilterOptions.size() > 1);
|
||||
notifyDataSetChanged();
|
||||
if (mFilterOptions.size() == 1) {
|
||||
if (DEBUG) {
|
||||
@@ -826,8 +830,7 @@ public class ManageApplications extends InstrumentedFragment
|
||||
filter.getTitle()));
|
||||
}
|
||||
Collections.sort(mFilterOptions);
|
||||
mManageApplications.mSpinnerHeader.setVisibility(
|
||||
mFilterOptions.size() > 1 ? View.VISIBLE : View.GONE);
|
||||
updateFilterView(mFilterOptions.size() > 1);
|
||||
notifyDataSetChanged();
|
||||
if (mManageApplications.mFilter == filter) {
|
||||
if (mFilterOptions.size() > 0) {
|
||||
@@ -850,6 +853,26 @@ public class ManageApplications extends InstrumentedFragment
|
||||
public CharSequence getItem(int position) {
|
||||
return mContext.getText(mFilterOptions.get(position).getTitle());
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void updateFilterView(boolean hasFilter) {
|
||||
// If we need to add a floating filter in this screen, we should have an extra top
|
||||
// padding for putting floating filter view. Otherwise, the content of list will be
|
||||
// overlapped by floating filter.
|
||||
if (hasFilter) {
|
||||
mManageApplications.mSpinnerHeader.setVisibility(View.VISIBLE);
|
||||
mManageApplications.mContentContainer.setPadding(0 /* left */,
|
||||
mContext.getResources().getDimensionPixelSize(
|
||||
R.dimen.app_bar_height) /* top */,
|
||||
0 /* right */,
|
||||
0 /* bottom */);
|
||||
} else {
|
||||
mManageApplications.mSpinnerHeader.setVisibility(View.GONE);
|
||||
mManageApplications.mContentContainer.setPadding(0 /* left */, 0 /* top */,
|
||||
0 /* right */,
|
||||
0 /* bottom */);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static class ApplicationsAdapter extends RecyclerView.Adapter<ApplicationViewHolder>
|
||||
|
@@ -91,6 +91,8 @@ public class ManageApplicationsTest {
|
||||
private UserManager mUserManager;
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
|
||||
private Context mContext;
|
||||
private MenuItem mAppReset;
|
||||
private MenuItem mSortRecent;
|
||||
private MenuItem mSortFrequent;
|
||||
@@ -99,6 +101,7 @@ public class ManageApplicationsTest {
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = RuntimeEnvironment.application;
|
||||
mAppReset = new RoboMenuItem(R.id.reset_app_preferences);
|
||||
mSortRecent = new RoboMenuItem(R.id.sort_order_recent_notification);
|
||||
mSortFrequent = new RoboMenuItem(R.id.sort_order_frequent_notification);
|
||||
@@ -107,6 +110,7 @@ public class ManageApplicationsTest {
|
||||
when(mState.getBackgroundLooper()).thenReturn(Looper.myLooper());
|
||||
|
||||
mFragment = spy(new ManageApplications());
|
||||
when(mFragment.getContext()).thenReturn(mContext);
|
||||
when(mFragment.getActivity()).thenReturn(mActivity);
|
||||
when(mActivity.getResources()).thenReturn(mResources);
|
||||
when(mActivity.getSystemService(UserManager.class)).thenReturn(mUserManager);
|
||||
@@ -460,6 +464,31 @@ public class ManageApplicationsTest {
|
||||
assertThat(mFragment.mSortOrder).isEqualTo(mSortFrequent.getItemId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateFilterView_hasFilterSet_shouldShowFilterAndHavePaddingTop() {
|
||||
mFragment.mContentContainer = new View(mContext);
|
||||
mFragment.mSpinnerHeader = new View(mContext);
|
||||
mFragment.mFilterAdapter = new ManageApplications.FilterSpinnerAdapter(mFragment);
|
||||
|
||||
mFragment.mFilterAdapter.updateFilterView(true);
|
||||
|
||||
assertThat(mFragment.mSpinnerHeader.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
assertThat(mFragment.mContentContainer.getPaddingTop()).isEqualTo(
|
||||
mContext.getResources().getDimensionPixelSize(R.dimen.app_bar_height));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateFilterView_noFilterSet_shouldHideFilterAndNoPaddingTop() {
|
||||
mFragment.mContentContainer = new View(mContext);
|
||||
mFragment.mSpinnerHeader = new View(mContext);
|
||||
mFragment.mFilterAdapter = new ManageApplications.FilterSpinnerAdapter(mFragment);
|
||||
|
||||
mFragment.mFilterAdapter.updateFilterView(false);
|
||||
|
||||
assertThat(mFragment.mSpinnerHeader.getVisibility()).isEqualTo(View.GONE);
|
||||
assertThat(mFragment.mContentContainer.getPaddingTop()).isEqualTo(0);
|
||||
}
|
||||
|
||||
private void setUpOptionMenus() {
|
||||
when(mMenu.findItem(anyInt())).thenAnswer(invocation -> {
|
||||
final Object[] args = invocation.getArguments();
|
||||
|
Reference in New Issue
Block a user