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