Add progress bar for Privacy screen

We show up top linear progress bar
when Settings is querying permission usage data.

Test: visual, robotest
Fixes: 123539793
Change-Id: I350068856d1708eb054d2a205d9ca857214891ce
This commit is contained in:
tmfang
2019-02-12 18:23:20 +08:00
parent 57b076fa76
commit 64f5b796c2
5 changed files with 206 additions and 26 deletions

View File

@@ -48,6 +48,11 @@ public class PrivacyDashboardFragment extends DashboardFragment {
private static final String KEY_NOTIFICATION_WORK_PROFILE_NOTIFICATIONS =
"privacy_lock_screen_work_profile_notifications";
@VisibleForTesting
View mProgressHeader;
@VisibleForTesting
View mProgressAnimation;
@Override
public int getMetricsCategory() {
return SettingsEnums.TOP_LEVEL_PRIVACY;
@@ -73,10 +78,17 @@ public class PrivacyDashboardFragment extends DashboardFragment {
return buildPreferenceControllers(context, getSettingsLifecycle());
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
use(PermissionBarChartPreferenceController.class).setFragment(this /* fragment */);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
styleActionBar();
initLoadingBar();
}
@VisibleForTesting
@@ -97,6 +109,21 @@ public class PrivacyDashboardFragment extends DashboardFragment {
}
}
@VisibleForTesting
void initLoadingBar() {
mProgressHeader = setPinnedHeaderView(R.layout.progress_header);
mProgressAnimation = mProgressHeader.findViewById(R.id.progress_bar_animation);
setLoadingEnabled(false);
}
@VisibleForTesting
void setLoadingEnabled(boolean enabled) {
if (mProgressHeader != null && mProgressAnimation != null) {
mProgressHeader.setVisibility(enabled ? View.VISIBLE : View.INVISIBLE);
mProgressAnimation.setVisibility(enabled ? View.VISIBLE : View.INVISIBLE);
}
}
private static List<AbstractPreferenceController> buildPreferenceControllers(
Context context, Lifecycle lifecycle) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();