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

Commit 7e5bb370 authored by Ruben Brunk's avatar Ruben Brunk Committed by Android (Google) Code Review
Browse files

Merge "Track camera and flashlight usage in battery stats." into mnc-dev

parents 5a31f1ab d47da608
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);
    }