perf: fix perf profile change issues

Rework profile handling to address the following issues:

 - When app specific profiles are enabled, the perf service silently
   changes the profile to BALANCED when the user revisits settings.
   The service and Settings UI still show whatever pref the user had
   selected. The user is now unable to change the setting to BALANCED.
   The perf service ignores the change because the current profile
   (selected by app profiles) did not change.

 - When low power mode (battery saver) activates or deactivates, the
   user selected profile is overwritten.

All runtime decisions regarding active profiles have been consolidated
in to a single applyProfile() function that handles low power mode,
user and app-specific profile rules.

App specific profiles are applied only if the power profile is
BALANCED.

setPowerProfileInternal has been changed to save the user pref even if
the active pref is unchanged.

Fixes SAMBAR-1088

Change-Id: Iac658959130f08452f5e41ce3339fe4603ac474e
1 file changed
tree: 9c51a77dc0e77002548573163ef603eb746533f1
  1. api/
  2. cm/
  3. host/
  4. packages/
  5. samples/
  6. src/
  7. system-api/
  8. tests/
  9. Android.mk
  10. org.cyanogenmod.platform.xml
  11. README.md
README.md

CyanogenMod Platform SDK

The Platform SDK provides a set of APIs that give you easy access to a variety of different features within CyanogenMod. The SDK exposes APIs and system level framework access in the Android framework that aren't available in any other distribution.

Setup

You can either download from prebuilts hosted on github or pull directly via Gradle.

Building against release artifacts

Our stable releases are mirrored in Maven Central, and you can fetch the current release by setting your build.gradle dependencies to

dependencies {
    compile 'org.cyanogenmod:platform.sdk:2.0'
}

Building against development snapshots

Within build.gradle make sure your repositories list sonatype OSS repos for snapshots

repositories {
    maven {
        url "https://oss.sonatype.org/content/repositories/snapshots/"
    }
}

You can target the future or development branch by setting your dependencies for 3.0-SNAPSHOT

dependencies {
    compile 'org.cyanogenmod:platform.sdk:3.0-SNAPSHOT'
}

WIKI

For further inquiries regarding this project, please reference the wiki.