Update UI to use a smaller icon for ManageApplication page.

- Rewrite preference_app.xml to have a small icon
- Update ApplicationViewHolder to hide/show summary row dynamically
  - but only do this for notification settings - this UI has empty
    summary for most row. For other UI, just keep the empty summary row
    until summary comes in. If we also hide/show summary row there will
    be a height change animation which is janky.

Bug : 65182905
Fixes: 63582851
Test: robotests

Change-Id: Ice67324f08c67e014a018dfc51e00fe4449036dd
This commit is contained in:
Fan Zhang
2017-10-27 15:29:00 -07:00
parent c8e304aea6
commit 974d2fe080
17 changed files with 178 additions and 223 deletions

View File

@@ -22,7 +22,6 @@ import static org.mockito.Mockito.mock;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
@@ -48,9 +47,8 @@ public class ApplicationViewHolderTest {
@Before
public void seUp() {
mContext = RuntimeEnvironment.application;
mView = ApplicationViewHolder.newView(LayoutInflater.from(mContext),
new FrameLayout(mContext));
mHolder = new ApplicationViewHolder(mView);
mView = ApplicationViewHolder.newView(new FrameLayout(mContext));
mHolder = new ApplicationViewHolder(mView, false /* useStableHeight */);
}
@Test
@@ -71,6 +69,10 @@ public class ApplicationViewHolderTest {
mHolder.setSummary(R.string.disabled);
assertThat(mHolder.mSummary.getText()).isEqualTo(mContext.getText(R.string.disabled));
assertThat(mHolder.mSummaryContainer.getVisibility()).isEqualTo(View.VISIBLE);
mHolder.setSummary(null);
assertThat(mHolder.mSummaryContainer.getVisibility()).isEqualTo(View.GONE);
}
@Test

View File

@@ -18,6 +18,10 @@ package com.android.settings.applications.manageapplications;
import static com.android.settings.applications.manageapplications.AppFilterRegistry
.FILTER_APPS_ALL;
import static com.android.settings.applications.manageapplications.ManageApplications
.LIST_TYPE_MAIN;
import static com.android.settings.applications.manageapplications.ManageApplications
.LIST_TYPE_NOTIFICATION;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
@@ -102,7 +106,7 @@ public class ManageApplicationsTest {
@Test
public void updateMenu_mainListType_showAppReset() {
setUpOptionMenus();
ReflectionHelpers.setField(mFragment, "mListType", ManageApplications.LIST_TYPE_MAIN);
ReflectionHelpers.setField(mFragment, "mListType", LIST_TYPE_MAIN);
ReflectionHelpers.setField(mFragment, "mOptionsMenu", mMenu);
mFragment.updateOptionsMenu();
@@ -182,6 +186,21 @@ public class ManageApplicationsTest {
verify(loadingViewController).showLoadingViewDelayed();
}
@Test
public void shouldUseStableItemHeight_mainType_yes() {
assertThat(ManageApplications.ApplicationsAdapter.shouldUseStableItemHeight(
LIST_TYPE_MAIN))
.isTrue();
assertThat(ManageApplications.ApplicationsAdapter.shouldUseStableItemHeight(
LIST_TYPE_NOTIFICATION))
.isFalse();
}
@Test
public void shouldUseStableItemHeight_notificationType_no() {
}
@Test
public void onRebuildComplete_shouldHideLoadingView() {
final Context context = RuntimeEnvironment.application;

View File

@@ -27,7 +27,6 @@ import android.content.Intent;
import android.os.UserHandle;
import android.os.storage.VolumeInfo;
import android.provider.DocumentsContract;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
@@ -68,9 +67,8 @@ public class MusicViewHolderControllerTest {
mController = new MusicViewHolderController(mContext, mSource, mVolume.fsUuid,
new UserHandle(0));
LayoutInflater inflater = LayoutInflater.from(mContext);
mView = ApplicationViewHolder.newView(inflater, new FrameLayout(mContext));
mHolder = new ApplicationViewHolder(mView);
mView = ApplicationViewHolder.newView(new FrameLayout(mContext));
mHolder = new ApplicationViewHolder(mView, false /* useStableHeight */);
}
@Test

View File

@@ -26,7 +26,6 @@ import android.content.Context;
import android.content.Intent;
import android.os.UserHandle;
import android.os.storage.VolumeInfo;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
@@ -67,9 +66,8 @@ public class PhotosViewHolderControllerTest {
new PhotosViewHolderController(
mContext, mSource, mVolume.fsUuid, new UserHandle(0));
final LayoutInflater inflater = LayoutInflater.from(mContext);
mView = ApplicationViewHolder.newView(inflater, new FrameLayout(mContext));
mHolder = new ApplicationViewHolder(mView);
mView = ApplicationViewHolder.newView(new FrameLayout(mContext));
mHolder = new ApplicationViewHolder(mView, false /* useStableHeight */);
}
@Test

View File

@@ -32,6 +32,7 @@ import android.content.Context;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.TestConfig;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
@@ -41,6 +42,8 @@ import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowSystemProperties;
import com.android.settings.widget.MasterSwitchPreference;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -83,6 +86,10 @@ public class AutomaticStorageManagementSwitchPreferenceControllerTest {
mContext, mMetricsFeature, mFragmentManager);
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
}
@After
public void tearDown() {
SettingsShadowSystemProperties.clear();
}
@Test
public void isAvailable_shouldReturnTrue_forHighRamDevice() {
@@ -146,6 +153,9 @@ public class AutomaticStorageManagementSwitchPreferenceControllerTest {
public void togglingOnShouldTriggerWarningFragment() {
FragmentTransaction transaction = mock(FragmentTransaction.class);
when (mFragmentManager.beginTransaction()).thenReturn(transaction);
SettingsShadowSystemProperties.set(
AutomaticStorageManagementSwitchPreferenceController
.STORAGE_MANAGER_ENABLED_BY_DEFAULT_PROPERTY, "false");
mController.onSwitchToggled(true);