summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/qs/tiles/PerfProfileTile.java
diff options
context:
space:
mode:
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/qs/tiles/PerfProfileTile.java')
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/PerfProfileTile.java37
1 files changed, 29 insertions, 8 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/PerfProfileTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/PerfProfileTile.java
index e6e6bb4..4863683 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/PerfProfileTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/PerfProfileTile.java
@@ -48,6 +48,7 @@ public class PerfProfileTile extends QSTile<PerfProfileTile.ProfileState> {
private final String[] mDescriptionEntries;
private final String[] mAnnouncementEntries;
private final int[] mPerfProfileValues;
+ private final int mNumPerfProfiles;
private final Icon mIcon;
private final PowerManager mPm;
@@ -61,16 +62,36 @@ public class PerfProfileTile extends QSTile<PerfProfileTile.ProfileState> {
mObserver = new PerformanceProfileObserver(mHandler);
mPm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
mPerformanceManager = PerformanceManager.getInstance(mContext);
+ mNumPerfProfiles = mPerformanceManager.getNumberOfProfiles();
- Resources res = mContext.getResources();
-
- mPerfProfileValues = res.getIntArray(org.cyanogenmod.platform.internal.R.array.perf_profile_values);
-
- mEntries = res.getStringArray(org.cyanogenmod.platform.internal.R.array.perf_profile_entries);
- mDescriptionEntries = res.getStringArray(R.array.perf_profile_description);
- mAnnouncementEntries = res.getStringArray(R.array.perf_profile_announcement);
+ mPerfProfileValues = new int[mNumPerfProfiles];
+ mEntries = new String[mNumPerfProfiles];
+ mDescriptionEntries = new String[mNumPerfProfiles];
+ mAnnouncementEntries = new String[mNumPerfProfiles];
mIcon = ResourceIcon.get(R.drawable.ic_qs_perf_profile);
+
+ // Filter out unsupported profiles
+ Resources res = mContext.getResources();
+ final int[] perfProfileValues = res.getIntArray(
+ org.cyanogenmod.platform.internal.R.array.perf_profile_values);
+ final String[] entries = res.getStringArray(
+ org.cyanogenmod.platform.internal.R.array.perf_profile_entries);
+ final String[] descriptionEntries = res.getStringArray(
+ R.array.perf_profile_description);
+ final String[] announcementEntries = res.getStringArray(
+ R.array.perf_profile_announcement);
+ int i = 0;
+
+ for (int j = 0; j < perfProfileValues.length; j++) {
+ if (perfProfileValues[j] < mNumPerfProfiles) {
+ mPerfProfileValues[i] = perfProfileValues[j];
+ mEntries[i] = entries[j];
+ mDescriptionEntries[i] = descriptionEntries[j];
+ mAnnouncementEntries[i] = announcementEntries[j];
+ i++;
+ }
+ }
}
@Override
@@ -135,7 +156,7 @@ public class PerfProfileTile extends QSTile<PerfProfileTile.ProfileState> {
public void startObserving() {
mContext.getContentResolver().registerContentObserver(
- Settings.Secure.getUriFor(CMSettings.Secure.PERFORMANCE_PROFILE),
+ CMSettings.Secure.getUriFor(CMSettings.Secure.PERFORMANCE_PROFILE),
false, this);
}