Supress Location button when coming from Location
Change-Id: Ie1f1aed17206530ec7c8a1cde43a4380b7232823
diff --git a/src/com/android/settings/fuelgauge/BatteryStatsHelper.java b/src/com/android/settings/fuelgauge/BatteryStatsHelper.java
index 2a3e6e8..3b1ea93 100644
--- a/src/com/android/settings/fuelgauge/BatteryStatsHelper.java
+++ b/src/com/android/settings/fuelgauge/BatteryStatsHelper.java
@@ -175,7 +175,8 @@
}
}
- public void startBatteryDetailPage(PreferenceActivity caller, BatterySipper sipper) {
+ public void startBatteryDetailPage(
+ PreferenceActivity caller, BatterySipper sipper, boolean showLocationButton) {
// Initialize mStats if necessary.
getStats();
@@ -193,6 +194,7 @@
args.putInt(PowerUsageDetail.EXTRA_UID, sipper.uidObj.getUid());
}
args.putSerializable(PowerUsageDetail.EXTRA_DRAIN_TYPE, sipper.drainType);
+ args.putBoolean(PowerUsageDetail.EXTRA_SHOW_LOCATION_BUTTON, showLocationButton);
int[] types;
double[] values;
diff --git a/src/com/android/settings/fuelgauge/PowerUsageDetail.java b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
index 7eba792..e9b8106 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
@@ -107,6 +107,7 @@
public static final String EXTRA_ICON_PACKAGE = "iconPackage"; // String
public static final String EXTRA_NO_COVERAGE = "noCoverage";
public static final String EXTRA_ICON_ID = "iconId"; // Int
+ public static final String EXTRA_SHOW_LOCATION_BUTTON = "showLocationButton"; // Boolean
private PackageManager mPm;
private DevicePolicyManager mDpm;
@@ -128,13 +129,14 @@
private double mNoCoverage; // Percentage of time that there was no coverage
private boolean mUsesGps;
+ private boolean mShowLocationButton;
private static final String TAG = "PowerUsageDetail";
private String[] mPackages;
ApplicationInfo mApp;
ComponentName mInstaller;
-
+
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -176,6 +178,7 @@
mNoCoverage = args.getDouble(EXTRA_NO_COVERAGE, 0);
String iconPackage = args.getString(EXTRA_ICON_PACKAGE);
int iconId = args.getInt(EXTRA_ICON_ID, 0);
+ mShowLocationButton = args.getBoolean(EXTRA_SHOW_LOCATION_BUTTON);
if (!TextUtils.isEmpty(iconPackage)) {
try {
final PackageManager pm = getActivity().getPackageManager();
@@ -362,7 +365,9 @@
// If the application has a settings screen, jump to that
// TODO:
}
- if (mUsesGps) {
+ // If power usage detail page is launched from location page, suppress "Location"
+ // button to prevent circular loops.
+ if (mUsesGps && mShowLocationButton) {
addControl(R.string.location_settings_title,
R.string.battery_sugg_apps_gps, ACTION_LOCATION_SETTINGS);
removeHeader = false;
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 1747e3f..480bb4e 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -144,7 +144,7 @@
}
PowerGaugePreference pgp = (PowerGaugePreference) preference;
BatterySipper sipper = pgp.getInfo();
- mStatsHelper.startBatteryDetailPage((PreferenceActivity) getActivity(), sipper);
+ mStatsHelper.startBatteryDetailPage((PreferenceActivity) getActivity(), sipper, true);
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
diff --git a/src/com/android/settings/location/RecentLocationApps.java b/src/com/android/settings/location/RecentLocationApps.java
index fe206b5..fda734c 100644
--- a/src/com/android/settings/location/RecentLocationApps.java
+++ b/src/com/android/settings/location/RecentLocationApps.java
@@ -69,7 +69,7 @@
@Override
public boolean onPreferenceClick(Preference preference) {
- mStatsHelper.startBatteryDetailPage(mActivity, mSipper);
+ mStatsHelper.startBatteryDetailPage(mActivity, mSipper, false);
return true;
}
}