1 /*
2  * Copyright (C) 2017 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.settings.fuelgauge.batterytip.tips;
18 
19 import android.app.settings.SettingsEnums;
20 import android.content.Context;
21 import android.content.res.ColorStateList;
22 import android.os.Parcel;
23 import android.os.Parcelable;
24 
25 import androidx.annotation.VisibleForTesting;
26 
27 import com.android.settings.R;
28 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
29 
30 /**
31  * Tip to show general summary about battery life
32  */
33 public class SummaryTip extends BatteryTip {
34     private long mAverageTimeMs;
35 
SummaryTip(@tateType int state, long averageTimeMs)36     public SummaryTip(@StateType int state, long averageTimeMs) {
37         super(TipType.SUMMARY, state, true /* showDialog */);
38         mAverageTimeMs = averageTimeMs;
39     }
40 
41     @VisibleForTesting
SummaryTip(Parcel in)42     SummaryTip(Parcel in) {
43         super(in);
44         mAverageTimeMs = in.readLong();
45     }
46 
47     @Override
getTitle(Context context)48     public CharSequence getTitle(Context context) {
49         return context.getString(R.string.battery_tip_summary_title);
50     }
51 
52     @Override
getSummary(Context context)53     public CharSequence getSummary(Context context) {
54         return context.getString(R.string.battery_tip_summary_summary);
55     }
56 
57     @Override
getIconId()58     public int getIconId() {
59         return R.drawable.ic_battery_status_good_24dp;
60     }
61 
62     @Override
getIconTintColorId()63     public int getIconTintColorId() {
64         return R.color.battery_good_color_light;
65     }
66 
67     @Override
updateState(BatteryTip tip)68     public void updateState(BatteryTip tip) {
69         mState = tip.mState;
70     }
71 
72     @Override
writeToParcel(Parcel dest, int flags)73     public void writeToParcel(Parcel dest, int flags) {
74         super.writeToParcel(dest, flags);
75         dest.writeLong(mAverageTimeMs);
76     }
77 
78     @Override
log(Context context, MetricsFeatureProvider metricsFeatureProvider)79     public void log(Context context, MetricsFeatureProvider metricsFeatureProvider) {
80         metricsFeatureProvider.action(context, SettingsEnums.ACTION_SUMMARY_TIP,
81                 mState);
82     }
83 
getAverageTimeMs()84     public long getAverageTimeMs() {
85         return mAverageTimeMs;
86     }
87 
88     public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
89         public BatteryTip createFromParcel(Parcel in) {
90             return new SummaryTip(in);
91         }
92 
93         public BatteryTip[] newArray(int size) {
94             return new SummaryTip[size];
95         }
96     };
97 }
98