PowerUsageSummary: move controllers to xml
Also change the following controllers to have standard constructor 1. BatteryHeaderPreferenceController 2. BatteryTipPreferenceController Change-Id: I2e68082295eb8ef18de9fef9483a10b070c77a47 Fixes: 111131567 Test: robotest
This commit is contained in:
@@ -21,8 +21,8 @@ import android.content.Context;
|
||||
import android.provider.Settings;
|
||||
|
||||
import com.android.internal.R;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.SwitchPreference;
|
||||
@@ -31,24 +31,18 @@ import androidx.preference.SwitchPreference;
|
||||
* A controller to manage the switch for showing battery percentage in the status bar.
|
||||
*/
|
||||
|
||||
public class BatteryPercentagePreferenceController extends AbstractPreferenceController implements
|
||||
public class BatteryPercentagePreferenceController extends BasePreferenceController implements
|
||||
PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
|
||||
|
||||
private static final String KEY_BATTERY_PERCENTAGE = "battery_percentage";
|
||||
|
||||
public BatteryPercentagePreferenceController(Context context) {
|
||||
super(context);
|
||||
public BatteryPercentagePreferenceController(Context context, String preferenceKey) {
|
||||
super(context, preferenceKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return mContext.getResources()
|
||||
.getBoolean(R.bool.config_battery_percentage_setting_available);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPreferenceKey() {
|
||||
return KEY_BATTERY_PERCENTAGE;
|
||||
public int getAvailabilityStatus() {
|
||||
return mContext.getResources().getBoolean(
|
||||
R.bool.config_battery_percentage_setting_available) ? AVAILABLE
|
||||
: UNSUPPORTED_ON_DEVICE;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -27,6 +27,7 @@ import android.widget.TextView;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.applications.LayoutPreference;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settings.widget.EntityHeaderController;
|
||||
import com.android.settingslib.Utils;
|
||||
@@ -42,7 +43,7 @@ import androidx.preference.PreferenceScreen;
|
||||
/**
|
||||
* Controller that update the battery header view
|
||||
*/
|
||||
public class BatteryHeaderPreferenceController extends AbstractPreferenceController
|
||||
public class BatteryHeaderPreferenceController extends BasePreferenceController
|
||||
implements PreferenceControllerMixin, LifecycleObserver, OnStart {
|
||||
@VisibleForTesting
|
||||
static final String KEY_BATTERY_HEADER = "battery_header";
|
||||
@@ -56,30 +57,35 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl
|
||||
@VisibleForTesting
|
||||
TextView mSummary2;
|
||||
|
||||
private final Activity mActivity;
|
||||
private final PreferenceFragmentCompat mHost;
|
||||
private final Lifecycle mLifecycle;
|
||||
private Activity mActivity;
|
||||
private PreferenceFragmentCompat mHost;
|
||||
private Lifecycle mLifecycle;
|
||||
private final PowerManager mPowerManager;
|
||||
|
||||
private LayoutPreference mBatteryLayoutPref;
|
||||
|
||||
public BatteryHeaderPreferenceController(Context context, Activity activity,
|
||||
PreferenceFragmentCompat host, Lifecycle lifecycle) {
|
||||
super(context);
|
||||
mActivity = activity;
|
||||
mHost = host;
|
||||
mLifecycle = lifecycle;
|
||||
if (mLifecycle != null) {
|
||||
mLifecycle.addObserver(this);
|
||||
}
|
||||
public BatteryHeaderPreferenceController(Context context, String key) {
|
||||
super(context, key);
|
||||
mPowerManager = context.getSystemService(PowerManager.class);
|
||||
}
|
||||
|
||||
public void setActivity(Activity activity) {
|
||||
mActivity = activity;
|
||||
}
|
||||
|
||||
public void setFragment(PreferenceFragmentCompat fragment) {
|
||||
mHost = fragment;
|
||||
}
|
||||
|
||||
public void setLifecycle(Lifecycle lifecycle) {
|
||||
mLifecycle = lifecycle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void displayPreference(PreferenceScreen screen) {
|
||||
super.displayPreference(screen);
|
||||
mBatteryLayoutPref = (LayoutPreference) screen.findPreference(KEY_BATTERY_HEADER);
|
||||
mBatteryMeterView = (BatteryMeterView) mBatteryLayoutPref
|
||||
mBatteryLayoutPref = (LayoutPreference) screen.findPreference(getPreferenceKey());
|
||||
mBatteryMeterView = mBatteryLayoutPref
|
||||
.findViewById(R.id.battery_header_icon);
|
||||
mBatteryPercentText = mBatteryLayoutPref.findViewById(R.id.battery_percent);
|
||||
mSummary1 = mBatteryLayoutPref.findViewById(R.id.summary1);
|
||||
@@ -89,13 +95,8 @@ public class BatteryHeaderPreferenceController extends AbstractPreferenceControl
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPreferenceKey() {
|
||||
return KEY_BATTERY_HEADER;
|
||||
public int getAvailabilityStatus() {
|
||||
return AVAILABLE_UNSEARCHABLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -25,7 +25,6 @@ import android.os.Bundle;
|
||||
import android.provider.SearchIndexableResource;
|
||||
import android.text.BidiFormatter;
|
||||
import android.text.format.Formatter;
|
||||
import android.util.SparseArray;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
@@ -40,19 +39,15 @@ import com.android.settings.Utils;
|
||||
import com.android.settings.applications.LayoutPreference;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settings.dashboard.SummaryLoader;
|
||||
import com.android.settings.display.BatteryPercentagePreferenceController;
|
||||
import com.android.settings.fuelgauge.batterytip.BatteryTipLoader;
|
||||
import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
|
||||
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.search.SearchIndexable;
|
||||
import com.android.settingslib.utils.PowerUtil;
|
||||
import com.android.settingslib.utils.StringUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@@ -197,6 +192,22 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
final SettingsActivity activity = (SettingsActivity) getActivity();
|
||||
|
||||
mBatteryHeaderPreferenceController = use(BatteryHeaderPreferenceController.class);
|
||||
mBatteryHeaderPreferenceController.setActivity(activity);
|
||||
mBatteryHeaderPreferenceController.setFragment(this);
|
||||
mBatteryHeaderPreferenceController.setLifecycle(getSettingsLifecycle());
|
||||
|
||||
mBatteryTipPreferenceController = use(BatteryTipPreferenceController.class);
|
||||
mBatteryTipPreferenceController.setActivity(activity);
|
||||
mBatteryTipPreferenceController.setFragment(this);
|
||||
mBatteryTipPreferenceController.setBatteryTipListener(this::onBatteryTipHandled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
@@ -231,22 +242,6 @@ public class PowerUsageSummary extends PowerUsageBase implements OnLongClickList
|
||||
return R.xml.power_usage_summary;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
||||
final Lifecycle lifecycle = getSettingsLifecycle();
|
||||
final SettingsActivity activity = (SettingsActivity) getActivity();
|
||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||
mBatteryHeaderPreferenceController = new BatteryHeaderPreferenceController(
|
||||
context, activity, this /* host */, lifecycle);
|
||||
controllers.add(mBatteryHeaderPreferenceController);
|
||||
mBatteryTipPreferenceController = new BatteryTipPreferenceController(context,
|
||||
KEY_BATTERY_TIP, (SettingsActivity) getActivity(), this /* fragment */, this /*
|
||||
BatteryTipListener */);
|
||||
controllers.add(mBatteryTipPreferenceController);
|
||||
controllers.add(new BatteryPercentagePreferenceController(context));
|
||||
return controllers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
if (DEBUG) {
|
||||
|
@@ -59,24 +59,27 @@ public class BatteryTipPreferenceController extends BasePreferenceController {
|
||||
InstrumentedPreferenceFragment mFragment;
|
||||
|
||||
public BatteryTipPreferenceController(Context context, String preferenceKey) {
|
||||
this(context, preferenceKey, null, null, null);
|
||||
}
|
||||
|
||||
public BatteryTipPreferenceController(Context context, String preferenceKey,
|
||||
SettingsActivity settingsActivity, InstrumentedPreferenceFragment fragment,
|
||||
BatteryTipListener batteryTipListener) {
|
||||
super(context, preferenceKey);
|
||||
mBatteryTipListener = batteryTipListener;
|
||||
mBatteryTipMap = new HashMap<>();
|
||||
mFragment = fragment;
|
||||
mSettingsActivity = settingsActivity;
|
||||
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||
mNeedUpdate = true;
|
||||
}
|
||||
|
||||
public void setActivity(SettingsActivity activity) {
|
||||
mSettingsActivity = activity;
|
||||
}
|
||||
|
||||
public void setFragment(InstrumentedPreferenceFragment fragment) {
|
||||
mFragment = fragment;
|
||||
}
|
||||
|
||||
public void setBatteryTipListener(BatteryTipListener lsn) {
|
||||
mBatteryTipListener = lsn;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return AVAILABLE;
|
||||
return AVAILABLE_UNSEARCHABLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user