Merge "Add fade in animation for battery usage chart group"
This commit is contained in:
@@ -31,25 +31,33 @@
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:text="@string/battery_usage_chart_graph_hint_last_full_charge" />
|
||||
|
||||
<com.android.settings.fuelgauge.batteryusage.BatteryChartView
|
||||
android:id="@+id/daily_battery_chart"
|
||||
<LinearLayout
|
||||
android:id="@+id/battery_chart_group"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="170dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:visibility="gone"
|
||||
android:contentDescription="@string/daily_battery_usage_chart"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
settings:textColor="?android:attr/textColorSecondary" />
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:alpha="0">
|
||||
<com.android.settings.fuelgauge.batteryusage.BatteryChartView
|
||||
android:id="@+id/daily_battery_chart"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="170dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:visibility="gone"
|
||||
android:contentDescription="@string/daily_battery_usage_chart"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
settings:textColor="?android:attr/textColorSecondary" />
|
||||
|
||||
<com.android.settings.fuelgauge.batteryusage.BatteryChartView
|
||||
android:id="@+id/hourly_battery_chart"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="170dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:visibility="visible"
|
||||
android:contentDescription="@string/hourly_battery_usage_chart"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
settings:textColor="?android:attr/textColorSecondary" />
|
||||
</LinearLayout>
|
||||
|
||||
<com.android.settings.fuelgauge.batteryusage.BatteryChartView
|
||||
android:id="@+id/hourly_battery_chart"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="170dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:visibility="visible"
|
||||
android:contentDescription="@string/hourly_battery_usage_chart"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
settings:textColor="?android:attr/textColorSecondary" />
|
||||
<!-- Use non-scalable text size from text_size_small_material -->
|
||||
<TextView
|
||||
android:id="@+id/companion_text"
|
||||
|
@@ -68,6 +68,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
private static final int ENABLED_ICON_ALPHA = 255;
|
||||
private static final int DISABLED_ICON_ALPHA = 255 / 3;
|
||||
|
||||
private static final long FADE_ANIMATION_DURATION = 350L;
|
||||
private static final long VALID_USAGE_TIME_DURATION = DateUtils.HOUR_IN_MILLIS * 2;
|
||||
private static final long VALID_DIFF_DURATION = DateUtils.MINUTE_IN_MILLIS * 3;
|
||||
|
||||
@@ -104,6 +105,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
|
||||
private boolean mIs24HourFormat;
|
||||
private boolean mIsFooterPrefAdded = false;
|
||||
private View mBatteryChartViewGroup;
|
||||
private PreferenceScreen mPreferenceScreen;
|
||||
private FooterPreference mFooterPreference;
|
||||
// Daily view model only saves abbreviated day of week texts (e.g. MON). This field saves the
|
||||
@@ -204,7 +206,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
mPrefContext = screen.getContext();
|
||||
mAppListPrefGroup = screen.findPreference(mPreferenceKey);
|
||||
mAppListPrefGroup.setOrderingAsAdded(false);
|
||||
mAppListPrefGroup.setTitle(mPrefContext.getString(R.string.battery_app_usage));
|
||||
mAppListPrefGroup.setTitle("");
|
||||
mFooterPreference = screen.findPreference(KEY_FOOTER_PREF);
|
||||
// Removes footer first until usage data is loaded to avoid flashing.
|
||||
if (mFooterPreference != null) {
|
||||
@@ -262,6 +264,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
|
||||
Log.d(TAG, "setBatteryHistoryMap() " + (batteryHistoryMap == null ? "null"
|
||||
: ("size=" + batteryHistoryMap.size())));
|
||||
// Ensure the battery chart group is visible for users.
|
||||
animateBatteryChartViewGroup();
|
||||
final BatteryLevelData batteryLevelData =
|
||||
DataProcessor.getBatteryLevelData(mContext, mHandler, batteryHistoryMap,
|
||||
batteryUsageMap -> {
|
||||
@@ -304,8 +308,13 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
|
||||
void setBatteryChartView(@NonNull final BatteryChartView dailyChartView,
|
||||
@NonNull final BatteryChartView hourlyChartView) {
|
||||
final View parentView = (View) dailyChartView.getParent();
|
||||
if (parentView != null && parentView.getId() == R.id.battery_chart_group) {
|
||||
mBatteryChartViewGroup = (View) dailyChartView.getParent();
|
||||
}
|
||||
if (mDailyChartView != dailyChartView || mHourlyChartView != hourlyChartView) {
|
||||
mHandler.post(() -> setBatteryChartViewInner(dailyChartView, hourlyChartView));
|
||||
animateBatteryChartViewGroup();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -615,6 +624,13 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
||||
return !DataProcessor.contains(packageName, mNotAllowShowSummaryPackages);
|
||||
}
|
||||
|
||||
private void animateBatteryChartViewGroup() {
|
||||
if (mBatteryChartViewGroup != null && mBatteryChartViewGroup.getAlpha() == 0) {
|
||||
mBatteryChartViewGroup.animate().alpha(1f).setDuration(FADE_ANIMATION_DURATION)
|
||||
.start();
|
||||
}
|
||||
}
|
||||
|
||||
private void addFooterPreferenceIfNeeded(boolean containAppItems) {
|
||||
if (mIsFooterPrefAdded || mFooterPreference == null) {
|
||||
return;
|
||||
|
@@ -106,12 +106,11 @@ public class BatteryHistoryPreference extends Preference {
|
||||
return;
|
||||
}
|
||||
if (mIsChartGraphEnabled) {
|
||||
final TextView companionTextView = (TextView) view.findViewById(R.id.companion_text);
|
||||
mDailyChartView = (BatteryChartView) view.findViewById(R.id.daily_battery_chart);
|
||||
mDailyChartView.setCompanionTextView(
|
||||
(TextView) view.findViewById(R.id.companion_text));
|
||||
mDailyChartView.setCompanionTextView(companionTextView);
|
||||
mHourlyChartView = (BatteryChartView) view.findViewById(R.id.hourly_battery_chart);
|
||||
mHourlyChartView.setCompanionTextView(
|
||||
(TextView) view.findViewById(R.id.companion_text));
|
||||
mHourlyChartView.setCompanionTextView(companionTextView);
|
||||
if (mChartPreferenceController != null) {
|
||||
mChartPreferenceController.setBatteryChartView(mDailyChartView, mHourlyChartView);
|
||||
}
|
||||
|
Reference in New Issue
Block a user