Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 80ec485d authored by Steve Kondik's avatar Steve Kondik Committed by Michael Bestas
Browse files

perf: Add plumbing for PerformanceManager

* Expose a couple of helpers on PowerManagerInternal to handle
  features.

Change-Id: Ic8df7d891dece4e678711a2a5ad1434b4971663a
parent 9a11e488
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -165,4 +165,10 @@ public abstract class PowerManagerInternal {
     * PowerHint defined in android/hardware/power/<version 1.0 & up>/IPower.h
     */
    public abstract void powerHint(int hintId, int data);

    public abstract boolean setPowerSaveMode(boolean mode);

    public abstract void setFeature(int featureId, int data);

    public abstract int getFeature(int featureId);
}
+16 −0
Original line number Diff line number Diff line
@@ -660,6 +660,7 @@ public final class PowerManagerService extends SystemService
    private static native void nativeSetAutoSuspend(boolean enable);
    private static native void nativeSendPowerHint(int hintId, int data);
    private static native void nativeSetFeature(int featureId, int data);
    private static native int nativeGetFeature(int featureId);

    // Whether proximity check on wake is enabled by default
    private boolean mProximityWakeEnabledByDefaultConfig;
@@ -4966,6 +4967,21 @@ public final class PowerManagerService extends SystemService
        public void powerHint(int hintId, int data) {
            powerHintInternal(hintId, data);
        }

        @Override
        public boolean setPowerSaveMode(boolean mode) {
            return setLowPowerModeInternal(mode);
        }

        @Override
        public int getFeature(int featureId) {
            return nativeGetFeature(featureId);
        }

        @Override
        public void setFeature(int featureId, int data) {
            nativeSetFeature(featureId, data);
        }
    }

    private void cleanupProximity() {
+12 −0
Original line number Diff line number Diff line
@@ -214,6 +214,16 @@ static void nativeSetFeature(JNIEnv *env, jclass clazz, jint featureId, jint dat
    }
}

static jint nativeGetFeature(JNIEnv *env, jclass clazz, jint featureId) {
    int value = -1;

    if (gPowerModule && gPowerModule->getFeature) {
        value = gPowerModule->getFeature(gPowerModule, (feature_t)featureId);
    }

    return (jint)value;
}

// ----------------------------------------------------------------------------

static const JNINativeMethod gPowerManagerServiceMethods[] = {
@@ -232,6 +242,8 @@ static const JNINativeMethod gPowerManagerServiceMethods[] = {
            (void*) nativeSendPowerHint },
    { "nativeSetFeature", "(II)V",
            (void*) nativeSetFeature },
    { "nativeGetFeature", "(I)I",
            (void*) nativeGetFeature },
};

#define FIND_CLASS(var, className) \