Remove Battery settings if battery is not present
Bug: 8051556 Change-Id: I044b24e26dc3d6351c19168a2fcd085a1e761796
This commit is contained in:
@@ -19,9 +19,11 @@ package com.android.settings;
|
||||
import android.accounts.Account;
|
||||
import android.accounts.AccountManager;
|
||||
import android.accounts.OnAccountsUpdateListener;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.RestrictionEntry;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.ActivityInfo;
|
||||
@@ -134,6 +136,23 @@ public class Settings extends PreferenceActivity
|
||||
private Header mLastHeader;
|
||||
private boolean mListeningToAccountUpdates;
|
||||
|
||||
private boolean mBatteryPresent = true;
|
||||
private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() {
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
|
||||
boolean batteryPresent = Utils.isBatteryPresent(intent);
|
||||
|
||||
if (mBatteryPresent != batteryPresent) {
|
||||
mBatteryPresent = batteryPresent;
|
||||
invalidateHeaders();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
if (getIntent().hasExtra(EXTRA_UI_OPTIONS)) {
|
||||
@@ -218,12 +237,16 @@ public class Settings extends PreferenceActivity
|
||||
((HeaderAdapter) listAdapter).resume();
|
||||
}
|
||||
invalidateHeaders();
|
||||
|
||||
registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
|
||||
unregisterReceiver(mBatteryInfoReceiver);
|
||||
|
||||
ListAdapter listAdapter = getListAdapter();
|
||||
if (listAdapter instanceof HeaderAdapter) {
|
||||
((HeaderAdapter) listAdapter).pause();
|
||||
@@ -439,6 +462,12 @@ public class Settings extends PreferenceActivity
|
||||
} catch (RemoteException e) {
|
||||
// ignored
|
||||
}
|
||||
} else if (id == R.id.battery_settings) {
|
||||
// Remove battery settings when battery is not available. (e.g. TV)
|
||||
|
||||
if (!mBatteryPresent) {
|
||||
target.remove(i);
|
||||
}
|
||||
} else if (id == R.id.account_settings) {
|
||||
int headerIndex = i + 1;
|
||||
i = insertAccountsHeaders(target, headerIndex);
|
||||
|
Reference in New Issue
Block a user