Bar chart preserves data before rotating device

We saw chart view is gone while rotating device.

Fow now, we save the old permission data before
fragment was recreated.
Then, we can initialize the view quickly with
old data.

Test: robotest, visual
Fixes: 123539793
Change-Id: I230fecc6001a17a0c0205f2a1dcb5dd79f32e744
This commit is contained in:
tmfang
2019-02-26 13:22:59 +08:00
parent b80a409a21
commit 44e5aeca65
2 changed files with 55 additions and 4 deletions

View File

@@ -124,6 +124,18 @@ public class PermissionBarChartPreferenceControllerTest {
verify(mPreference).initializeBarChart(any(BarChartInfo.class));
}
@Test
public void displayPreference_usageInfosSet_shouldSetBarViewInfos() {
final RuntimePermissionUsageInfo info1 =
new RuntimePermissionUsageInfo("permission 1", 10);
mController.mOldUsageInfos.add(info1);
mController.displayPreference(mScreen);
verify(mPreference).setBarViewInfos(any(BarViewInfo[].class));
verify(mPreference).initializeBarChart(any(BarChartInfo.class));
}
@Test
public void onPermissionUsageResult_differentPermissionResultSet_shouldSetBarViewInfos() {
final List<RuntimePermissionUsageInfo> infos1 = new ArrayList<>();
@@ -159,7 +171,7 @@ public class PermissionBarChartPreferenceControllerTest {
}
@Test
public void onStart_permissionHubEnabled_shouldShowProgressBar() {
public void onStart_usageInfosNotSetAndPermissionHubEnabled_shouldShowProgressBar() {
DeviceConfig.setProperty(DeviceConfig.Privacy.NAMESPACE,
DeviceConfig.Privacy.PROPERTY_PERMISSIONS_HUB_ENABLED, "true", true);
mController.displayPreference(mScreen);
@@ -170,6 +182,21 @@ public class PermissionBarChartPreferenceControllerTest {
verify(mPreference).updateLoadingState(true /* isLoading */);
}
@Test
public void onStart_usageInfosSetAndPermissionHubEnabled_shouldNotUpdatePrefLoadingState() {
DeviceConfig.setProperty(DeviceConfig.Privacy.NAMESPACE,
DeviceConfig.Privacy.PROPERTY_PERMISSIONS_HUB_ENABLED, "true", true);
final RuntimePermissionUsageInfo info1 =
new RuntimePermissionUsageInfo("permission 1", 10);
mController.mOldUsageInfos.add(info1);
mController.displayPreference(mScreen);
mController.onStart();
verify(mFragment).setLoadingEnabled(true /* enabled */);
verify(mPreference).updateLoadingState(false /* isLoading */);
}
@Test
public void onStart_permissionHubDisabled_shouldNotShowProgressBar() {
DeviceConfig.setProperty(DeviceConfig.Privacy.NAMESPACE,