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

Commit 502005b0 authored by Ruben Brunk's avatar Ruben Brunk Committed by Android Git Automerger
Browse files

am 7e5bb370: Merge "Track camera and flashlight usage in battery stats." into mnc-dev

* commit '7e5bb370':
  Track camera and flashlight usage in battery stats.
parents 10fd0f18 7e5bb370
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -36,6 +36,12 @@ public:
    virtual void noteStopAudio(int uid) = 0;
    virtual void noteResetVideo() = 0;
    virtual void noteResetAudio() = 0;
    virtual void noteFlashlightOn(int uid) = 0;
    virtual void noteFlashlightOff(int uid) = 0;
    virtual void noteStartCamera(int uid) = 0;
    virtual void noteStopCamera(int uid) = 0;
    virtual void noteResetCamera() = 0;
    virtual void noteResetFlashlight() = 0;

    enum {
        NOTE_START_SENSOR_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION,
@@ -46,6 +52,12 @@ public:
        NOTE_STOP_AUDIO_TRANSACTION,
        NOTE_RESET_VIDEO_TRANSACTION,
        NOTE_RESET_AUDIO_TRANSACTION,
        NOTE_FLASHLIGHT_ON_TRANSACTION,
        NOTE_FLASHLIGHT_OFF_TRANSACTION,
        NOTE_START_CAMERA_TRANSACTION,
        NOTE_STOP_CAMERA_TRANSACTION,
        NOTE_RESET_CAMERA_TRANSACTION,
        NOTE_RESET_FLASHLIGHT_TRANSACTION
    };
};

+81 −0
Original line number Diff line number Diff line
@@ -89,6 +89,47 @@ public:
        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
        remote()->transact(NOTE_RESET_AUDIO_TRANSACTION, data, &reply);
    }

    virtual void noteFlashlightOn(int uid) {
        Parcel data, reply;
        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
        data.writeInt32(uid);
        remote()->transact(NOTE_FLASHLIGHT_ON_TRANSACTION, data, &reply);
    }

    virtual void noteFlashlightOff(int uid) {
        Parcel data, reply;
        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
        data.writeInt32(uid);
        remote()->transact(NOTE_FLASHLIGHT_OFF_TRANSACTION, data, &reply);
    }

    virtual void noteStartCamera(int uid) {
        Parcel data, reply;
        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
        data.writeInt32(uid);
        remote()->transact(NOTE_START_CAMERA_TRANSACTION, data, &reply);
    }

    virtual void noteStopCamera(int uid) {
        Parcel data, reply;
        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
        data.writeInt32(uid);
        remote()->transact(NOTE_STOP_CAMERA_TRANSACTION, data, &reply);
    }

    virtual void noteResetCamera() {
        Parcel data, reply;
        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
        remote()->transact(NOTE_RESET_CAMERA_TRANSACTION, data, &reply);
    }

    virtual void noteResetFlashlight() {
        Parcel data, reply;
        data.writeInterfaceToken(IBatteryStats::getInterfaceDescriptor());
        remote()->transact(NOTE_RESET_FLASHLIGHT_TRANSACTION, data, &reply);
    }

};

IMPLEMENT_META_INTERFACE(BatteryStats, "com.android.internal.app.IBatteryStats");
@@ -155,6 +196,46 @@ status_t BnBatteryStats::onTransact(
            reply->writeNoException();
            return NO_ERROR;
        } break;
        case NOTE_FLASHLIGHT_ON_TRANSACTION: {
            CHECK_INTERFACE(IBatteryStats, data, reply);
            int uid = data.readInt32();
            noteFlashlightOn(uid);
            reply->writeNoException();
            return NO_ERROR;
        } break;
        case NOTE_FLASHLIGHT_OFF_TRANSACTION: {
            CHECK_INTERFACE(IBatteryStats, data, reply);
            int uid = data.readInt32();
            noteFlashlightOff(uid);
            reply->writeNoException();
            return NO_ERROR;
        } break;
        case NOTE_START_CAMERA_TRANSACTION: {
            CHECK_INTERFACE(IBatteryStats, data, reply);
            int uid = data.readInt32();
            noteStartCamera(uid);
            reply->writeNoException();
            return NO_ERROR;
        } break;
        case NOTE_STOP_CAMERA_TRANSACTION: {
            CHECK_INTERFACE(IBatteryStats, data, reply);
            int uid = data.readInt32();
            noteStopCamera(uid);
            reply->writeNoException();
            return NO_ERROR;
        } break;
        case NOTE_RESET_CAMERA_TRANSACTION: {
            CHECK_INTERFACE(IBatteryStats, data, reply);
            noteResetCamera();
            reply->writeNoException();
            return NO_ERROR;
        } break;
        case NOTE_RESET_FLASHLIGHT_TRANSACTION: {
            CHECK_INTERFACE(IBatteryStats, data, reply);
            noteResetFlashlight();
            reply->writeNoException();
            return NO_ERROR;
        } break;
        default:
            return BBinder::onTransact(code, data, reply, flags);
    }