Merge "Migrate battery usage DAO to Kotlin" into main
This commit is contained in:
@@ -1,65 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2022 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.fuelgauge.batteryusage.db;
|
|
||||||
|
|
||||||
import android.database.Cursor;
|
|
||||||
|
|
||||||
import androidx.room.Dao;
|
|
||||||
import androidx.room.Insert;
|
|
||||||
import androidx.room.OnConflictStrategy;
|
|
||||||
import androidx.room.Query;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/** Data access object for accessing {@link AppUsageEventEntity} in the database. */
|
|
||||||
@Dao
|
|
||||||
public interface AppUsageEventDao {
|
|
||||||
|
|
||||||
/** Inserts a {@link AppUsageEventEntity} data into the database. */
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
|
||||||
void insert(AppUsageEventEntity event);
|
|
||||||
|
|
||||||
/** Inserts {@link AppUsageEventEntity} data into the database. */
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
|
||||||
void insertAll(List<AppUsageEventEntity> events);
|
|
||||||
|
|
||||||
/** Lists all recorded data after a specific timestamp. */
|
|
||||||
@Query("SELECT * FROM AppUsageEventEntity WHERE timestamp > :timestamp ORDER BY timestamp DESC")
|
|
||||||
List<AppUsageEventEntity> getAllAfter(long timestamp);
|
|
||||||
|
|
||||||
/** Gets the {@link Cursor} of all recorded data after a specific timestamp of the users. */
|
|
||||||
@Query(
|
|
||||||
"SELECT * FROM AppUsageEventEntity WHERE timestamp >= :timestamp"
|
|
||||||
+ " AND userId IN (:userIds) ORDER BY timestamp ASC")
|
|
||||||
Cursor getAllForUsersAfter(List<Long> userIds, long timestamp);
|
|
||||||
|
|
||||||
/** Gets the {@link Cursor} of the latest timestamp of the specific user. */
|
|
||||||
@Query("SELECT MAX(timestamp) as timestamp FROM AppUsageEventEntity WHERE userId = :userId")
|
|
||||||
Cursor getLatestTimestampOfUser(long userId);
|
|
||||||
|
|
||||||
/** Deletes all recorded data before a specific timestamp. */
|
|
||||||
@Query("DELETE FROM AppUsageEventEntity WHERE timestamp <= :timestamp")
|
|
||||||
void clearAllBefore(long timestamp);
|
|
||||||
|
|
||||||
/** Deletes all recorded data after a specific timestamp. */
|
|
||||||
@Query("DELETE FROM AppUsageEventEntity WHERE timestamp >= :timestamp")
|
|
||||||
void clearAllAfter(long timestamp);
|
|
||||||
|
|
||||||
/** Clears all recorded data in the database. */
|
|
||||||
@Query("DELETE FROM AppUsageEventEntity")
|
|
||||||
void clearAll();
|
|
||||||
}
|
|
@@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2024 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package com.android.settings.fuelgauge.batteryusage.db
|
||||||
|
|
||||||
|
import android.database.Cursor
|
||||||
|
import androidx.room.Dao
|
||||||
|
import androidx.room.Insert
|
||||||
|
import androidx.room.OnConflictStrategy
|
||||||
|
import androidx.room.Query
|
||||||
|
|
||||||
|
/** Data access object for accessing [AppUsageEventEntity] in the database. */
|
||||||
|
@Dao
|
||||||
|
interface AppUsageEventDao {
|
||||||
|
/** Inserts a [AppUsageEventEntity] data into the database. */
|
||||||
|
@Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(event: AppUsageEventEntity)
|
||||||
|
|
||||||
|
/** Inserts [AppUsageEventEntity] data into the database. */
|
||||||
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
|
fun insertAll(events: List<AppUsageEventEntity>)
|
||||||
|
|
||||||
|
/** Lists all recorded data after a specific timestamp. */
|
||||||
|
@Query("SELECT * FROM AppUsageEventEntity WHERE timestamp > :timestamp ORDER BY timestamp DESC")
|
||||||
|
fun getAllAfter(timestamp: Long): List<AppUsageEventEntity>
|
||||||
|
|
||||||
|
/** Gets the [Cursor] of all recorded data after a specific timestamp of the users. */
|
||||||
|
@Query(
|
||||||
|
"SELECT * FROM AppUsageEventEntity WHERE timestamp >= :timestamp" +
|
||||||
|
" AND userId IN (:userIds) ORDER BY timestamp ASC"
|
||||||
|
)
|
||||||
|
fun getAllForUsersAfter(userIds: List<Long>, timestamp: Long): Cursor
|
||||||
|
|
||||||
|
/** Gets the [Cursor] of the latest timestamp of the specific user. */
|
||||||
|
@Query("SELECT MAX(timestamp) as timestamp FROM AppUsageEventEntity WHERE userId = :userId")
|
||||||
|
fun getLatestTimestampOfUser(userId: Long): Cursor
|
||||||
|
|
||||||
|
/** Deletes all recorded data before a specific timestamp. */
|
||||||
|
@Query("DELETE FROM AppUsageEventEntity WHERE timestamp <= :timestamp")
|
||||||
|
fun clearAllBefore(timestamp: Long)
|
||||||
|
|
||||||
|
/** Deletes all recorded data after a specific timestamp. */
|
||||||
|
@Query("DELETE FROM AppUsageEventEntity WHERE timestamp >= :timestamp")
|
||||||
|
fun clearAllAfter(timestamp: Long)
|
||||||
|
|
||||||
|
/** Clears all recorded data in the database. */
|
||||||
|
@Query("DELETE FROM AppUsageEventEntity") fun clearAll()
|
||||||
|
}
|
@@ -1,75 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2023 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.fuelgauge.batteryusage.db;
|
|
||||||
|
|
||||||
import android.database.Cursor;
|
|
||||||
|
|
||||||
import androidx.room.Dao;
|
|
||||||
import androidx.room.Insert;
|
|
||||||
import androidx.room.OnConflictStrategy;
|
|
||||||
import androidx.room.Query;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/** Data access object for accessing {@link BatteryEventEntity} in the database. */
|
|
||||||
@Dao
|
|
||||||
public interface BatteryEventDao {
|
|
||||||
/** Inserts a {@link BatteryEventEntity} data into the database. */
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
|
||||||
void insert(BatteryEventEntity event);
|
|
||||||
|
|
||||||
/** Gets all recorded data. */
|
|
||||||
@Query("SELECT * FROM BatteryEventEntity ORDER BY timestamp DESC")
|
|
||||||
List<BatteryEventEntity> getAll();
|
|
||||||
|
|
||||||
/** Gets the {@link Cursor} of the last full charge time . */
|
|
||||||
@Query(
|
|
||||||
"SELECT MAX(timestamp) FROM BatteryEventEntity"
|
|
||||||
+ " WHERE batteryEventType = 3") // BatteryEventType.FULL_CHARGED = 3
|
|
||||||
Cursor getLastFullChargeTimestamp();
|
|
||||||
|
|
||||||
/** Gets the {@link Long} of the last full charge time . */
|
|
||||||
@Query(
|
|
||||||
"SELECT MAX(timestamp) FROM BatteryEventEntity"
|
|
||||||
+ " WHERE batteryEventType = 3") // BatteryEventType.FULL_CHARGED = 3
|
|
||||||
Long getLastFullChargeTimestampForLog();
|
|
||||||
|
|
||||||
/** Gets the {@link Cursor} of all recorded data after a specific timestamp. */
|
|
||||||
@Query(
|
|
||||||
"SELECT * FROM BatteryEventEntity"
|
|
||||||
+ " WHERE timestamp >= :timestamp AND batteryEventType IN (:batteryEventTypes)"
|
|
||||||
+ " ORDER BY timestamp DESC")
|
|
||||||
Cursor getAllAfter(long timestamp, List<Integer> batteryEventTypes);
|
|
||||||
|
|
||||||
/** Gets all recorded data after a specific timestamp for log.*/
|
|
||||||
@Query(
|
|
||||||
"SELECT * FROM BatteryEventEntity "
|
|
||||||
+ "WHERE timestamp >= :timestamp ORDER BY timestamp DESC")
|
|
||||||
List<BatteryEventEntity> getAllAfterForLog(long timestamp);
|
|
||||||
|
|
||||||
/** Deletes all recorded data before a specific timestamp. */
|
|
||||||
@Query("DELETE FROM BatteryEventEntity WHERE timestamp <= :timestamp")
|
|
||||||
void clearAllBefore(long timestamp);
|
|
||||||
|
|
||||||
/** Deletes all recorded data after a specific timestamp. */
|
|
||||||
@Query("DELETE FROM BatteryEventEntity WHERE timestamp >= :timestamp")
|
|
||||||
void clearAllAfter(long timestamp);
|
|
||||||
|
|
||||||
/** Clears all recorded data in the database. */
|
|
||||||
@Query("DELETE FROM BatteryEventEntity")
|
|
||||||
void clearAll();
|
|
||||||
}
|
|
@@ -0,0 +1,73 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2024 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package com.android.settings.fuelgauge.batteryusage.db
|
||||||
|
|
||||||
|
import android.database.Cursor
|
||||||
|
import androidx.room.Dao
|
||||||
|
import androidx.room.Insert
|
||||||
|
import androidx.room.OnConflictStrategy
|
||||||
|
import androidx.room.Query
|
||||||
|
|
||||||
|
/** Data access object for accessing [BatteryEventEntity] in the database. */
|
||||||
|
@Dao
|
||||||
|
interface BatteryEventDao {
|
||||||
|
/** Inserts a [BatteryEventEntity] data into the database. */
|
||||||
|
@Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(event: BatteryEventEntity)
|
||||||
|
|
||||||
|
/** Gets all recorded data. */
|
||||||
|
@Query("SELECT * FROM BatteryEventEntity ORDER BY timestamp DESC")
|
||||||
|
fun getAll(): List<BatteryEventEntity>
|
||||||
|
|
||||||
|
/** Gets the [Cursor] of the last full charge time. */
|
||||||
|
@Query(
|
||||||
|
"SELECT MAX(timestamp) FROM BatteryEventEntity" +
|
||||||
|
" WHERE batteryEventType = 3" // BatteryEventType.FULL_CHARGED = 3
|
||||||
|
)
|
||||||
|
fun getLastFullChargeTimestamp(): Cursor
|
||||||
|
|
||||||
|
/** Gets the [Long] of the last full charge time. */
|
||||||
|
@Query(
|
||||||
|
"SELECT MAX(timestamp) FROM BatteryEventEntity" +
|
||||||
|
" WHERE batteryEventType = 3" // BatteryEventType.FULL_CHARGED = 3
|
||||||
|
)
|
||||||
|
fun getLastFullChargeTimestampForLog(): Long?
|
||||||
|
|
||||||
|
/** Gets the [Cursor] of all recorded data after a specific timestamp. */
|
||||||
|
@Query(
|
||||||
|
"SELECT * FROM BatteryEventEntity" +
|
||||||
|
" WHERE timestamp >= :timestamp AND batteryEventType IN (:batteryEventTypes)" +
|
||||||
|
" ORDER BY timestamp DESC"
|
||||||
|
)
|
||||||
|
fun getAllAfter(timestamp: Long, batteryEventTypes: List<Int>): Cursor
|
||||||
|
|
||||||
|
/** Gets all recorded data after a specific timestamp for log. */
|
||||||
|
@Query(
|
||||||
|
"SELECT * FROM BatteryEventEntity " +
|
||||||
|
"WHERE timestamp >= :timestamp ORDER BY timestamp DESC"
|
||||||
|
)
|
||||||
|
fun getAllAfterForLog(timestamp: Long): List<BatteryEventEntity>
|
||||||
|
|
||||||
|
/** Deletes all recorded data before a specific timestamp. */
|
||||||
|
@Query("DELETE FROM BatteryEventEntity WHERE timestamp <= :timestamp")
|
||||||
|
fun clearAllBefore(timestamp: Long)
|
||||||
|
|
||||||
|
/** Deletes all recorded data after a specific timestamp. */
|
||||||
|
@Query("DELETE FROM BatteryEventEntity WHERE timestamp >= :timestamp")
|
||||||
|
fun clearAllAfter(timestamp: Long)
|
||||||
|
|
||||||
|
/** Clears all recorded data in the database. */
|
||||||
|
@Query("DELETE FROM BatteryEventEntity") fun clearAll()
|
||||||
|
}
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2022 The Android Open Source Project
|
* Copyright (C) 2024 The Android Open Source Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -13,59 +13,51 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
package com.android.settings.fuelgauge.batteryusage.db
|
||||||
|
|
||||||
package com.android.settings.fuelgauge.batteryusage.db;
|
import android.database.Cursor
|
||||||
|
import androidx.room.Dao
|
||||||
|
import androidx.room.Insert
|
||||||
|
import androidx.room.OnConflictStrategy
|
||||||
|
import androidx.room.Query
|
||||||
|
|
||||||
import android.database.Cursor;
|
/** Data access object for accessing [BatteryState] in the database. */
|
||||||
|
|
||||||
import androidx.room.Dao;
|
|
||||||
import androidx.room.Insert;
|
|
||||||
import androidx.room.OnConflictStrategy;
|
|
||||||
import androidx.room.Query;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/** Data access object for accessing {@link BatteryState} in the database. */
|
|
||||||
@Dao
|
@Dao
|
||||||
public interface BatteryStateDao {
|
interface BatteryStateDao {
|
||||||
|
/** Inserts a [BatteryState] data into the database. */
|
||||||
|
@Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(state: BatteryState)
|
||||||
|
|
||||||
/** Inserts a {@link BatteryState} data into the database. */
|
/** Inserts [BatteryState] data into the database. */
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@Insert(onConflict = OnConflictStrategy.REPLACE) fun insertAll(states: List<BatteryState>)
|
||||||
void insert(BatteryState state);
|
|
||||||
|
|
||||||
/** Inserts {@link BatteryState} data into the database. */
|
/** Gets the [Cursor] of the latest record timestamp no later than the given timestamp. */
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
|
||||||
void insertAll(List<BatteryState> states);
|
|
||||||
|
|
||||||
/** Gets the {@link Cursor} of the latest record timestamp no later than the given timestamp. */
|
|
||||||
@Query("SELECT MAX(timestamp) FROM BatteryState WHERE timestamp <= :timestamp")
|
@Query("SELECT MAX(timestamp) FROM BatteryState WHERE timestamp <= :timestamp")
|
||||||
Cursor getLatestTimestampBefore(long timestamp);
|
fun getLatestTimestampBefore(timestamp: Long): Cursor
|
||||||
|
|
||||||
/** Lists all recorded battery states after a specific timestamp. */
|
/** Lists all recorded battery states after a specific timestamp. */
|
||||||
@Query("SELECT * FROM BatteryState WHERE timestamp >= :timestamp ORDER BY timestamp ASC")
|
@Query("SELECT * FROM BatteryState WHERE timestamp >= :timestamp ORDER BY timestamp ASC")
|
||||||
Cursor getBatteryStatesAfter(long timestamp);
|
fun getBatteryStatesAfter(timestamp: Long): Cursor
|
||||||
|
|
||||||
/** Lists all recorded data after a specific timestamp. */
|
/** Lists all recorded data after a specific timestamp. */
|
||||||
@Query("SELECT * FROM BatteryState WHERE timestamp > :timestamp ORDER BY timestamp DESC")
|
@Query("SELECT * FROM BatteryState WHERE timestamp > :timestamp ORDER BY timestamp DESC")
|
||||||
List<BatteryState> getAllAfter(long timestamp);
|
fun getAllAfter(timestamp: Long): List<BatteryState>
|
||||||
|
|
||||||
/** Get the count of distinct timestamp after a specific timestamp. */
|
/** Get the count of distinct timestamp after a specific timestamp. */
|
||||||
@Query("SELECT COUNT(DISTINCT timestamp) FROM BatteryState WHERE timestamp > :timestamp")
|
@Query("SELECT COUNT(DISTINCT timestamp) FROM BatteryState WHERE timestamp > :timestamp")
|
||||||
int getDistinctTimestampCount(long timestamp);
|
fun getDistinctTimestampCount(timestamp: Long): Int
|
||||||
|
|
||||||
/** Lists all distinct timestamps after a specific timestamp. */
|
/** Lists all distinct timestamps after a specific timestamp. */
|
||||||
@Query("SELECT DISTINCT timestamp FROM BatteryState WHERE timestamp > :timestamp")
|
@Query("SELECT DISTINCT timestamp FROM BatteryState WHERE timestamp > :timestamp")
|
||||||
List<Long> getDistinctTimestamps(long timestamp);
|
fun getDistinctTimestamps(timestamp: Long): List<Long>
|
||||||
|
|
||||||
/** Deletes all recorded data before a specific timestamp. */
|
/** Deletes all recorded data before a specific timestamp. */
|
||||||
@Query("DELETE FROM BatteryState WHERE timestamp <= :timestamp")
|
@Query("DELETE FROM BatteryState WHERE timestamp <= :timestamp")
|
||||||
void clearAllBefore(long timestamp);
|
fun clearAllBefore(timestamp: Long)
|
||||||
|
|
||||||
/** Deletes all recorded data after a specific timestamp. */
|
/** Deletes all recorded data after a specific timestamp. */
|
||||||
@Query("DELETE FROM BatteryState WHERE timestamp >= :timestamp")
|
@Query("DELETE FROM BatteryState WHERE timestamp >= :timestamp")
|
||||||
void clearAllAfter(long timestamp);
|
fun clearAllAfter(timestamp: Long)
|
||||||
|
|
||||||
/** Clears all recorded data in the database. */
|
/** Clears all recorded data in the database. */
|
||||||
@Query("DELETE FROM BatteryState")
|
@Query("DELETE FROM BatteryState") fun clearAll()
|
||||||
void clearAll();
|
|
||||||
}
|
}
|
@@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2023 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.settings.fuelgauge.batteryusage.db;
|
|
||||||
|
|
||||||
import android.database.Cursor;
|
|
||||||
|
|
||||||
import androidx.room.Dao;
|
|
||||||
import androidx.room.Insert;
|
|
||||||
import androidx.room.OnConflictStrategy;
|
|
||||||
import androidx.room.Query;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/** Data access object for accessing {@link BatteryUsageSlotEntity} in the database. */
|
|
||||||
@Dao
|
|
||||||
public interface BatteryUsageSlotDao {
|
|
||||||
/** Inserts a {@link BatteryUsageSlotEntity} data into the database. */
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
|
||||||
void insert(BatteryUsageSlotEntity event);
|
|
||||||
|
|
||||||
/** Gets all recorded data. */
|
|
||||||
@Query("SELECT * FROM BatteryUsageSlotEntity ORDER BY timestamp ASC")
|
|
||||||
List<BatteryUsageSlotEntity> getAll();
|
|
||||||
|
|
||||||
/** Gets the {@link Cursor} of all recorded data after a specific timestamp. */
|
|
||||||
@Query(
|
|
||||||
"SELECT * FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp"
|
|
||||||
+ " ORDER BY timestamp ASC")
|
|
||||||
Cursor getAllAfter(long timestamp);
|
|
||||||
|
|
||||||
/** Gets all recorded data after a specific timestamp for log.*/
|
|
||||||
@Query(
|
|
||||||
"SELECT * FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp"
|
|
||||||
+ " ORDER BY timestamp DESC")
|
|
||||||
List<BatteryUsageSlotEntity> getAllAfterForLog(long timestamp);
|
|
||||||
|
|
||||||
/** Deletes all recorded data before a specific timestamp. */
|
|
||||||
@Query("DELETE FROM BatteryUsageSlotEntity WHERE timestamp <= :timestamp")
|
|
||||||
void clearAllBefore(long timestamp);
|
|
||||||
|
|
||||||
/** Deletes all recorded data after a specific timestamp. */
|
|
||||||
@Query("DELETE FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp")
|
|
||||||
void clearAllAfter(long timestamp);
|
|
||||||
|
|
||||||
/** Clears all recorded data in the database. */
|
|
||||||
@Query("DELETE FROM BatteryUsageSlotEntity")
|
|
||||||
void clearAll();
|
|
||||||
}
|
|
@@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2024 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package com.android.settings.fuelgauge.batteryusage.db
|
||||||
|
|
||||||
|
import android.database.Cursor
|
||||||
|
import androidx.room.Dao
|
||||||
|
import androidx.room.Insert
|
||||||
|
import androidx.room.OnConflictStrategy
|
||||||
|
import androidx.room.Query
|
||||||
|
|
||||||
|
/** Data access object for accessing [BatteryUsageSlotEntity] in the database. */
|
||||||
|
@Dao
|
||||||
|
interface BatteryUsageSlotDao {
|
||||||
|
/** Inserts a [BatteryUsageSlotEntity] data into the database. */
|
||||||
|
@Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(event: BatteryUsageSlotEntity)
|
||||||
|
|
||||||
|
/** Gets all recorded data. */
|
||||||
|
@Query("SELECT * FROM BatteryUsageSlotEntity ORDER BY timestamp ASC")
|
||||||
|
fun getAll(): List<BatteryUsageSlotEntity>
|
||||||
|
|
||||||
|
/** Gets the [Cursor] of all recorded data after a specific timestamp. */
|
||||||
|
@Query(
|
||||||
|
"SELECT * FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp" +
|
||||||
|
" ORDER BY timestamp ASC"
|
||||||
|
)
|
||||||
|
fun getAllAfter(timestamp: Long): Cursor
|
||||||
|
|
||||||
|
/** Gets all recorded data after a specific timestamp for log. */
|
||||||
|
@Query(
|
||||||
|
"SELECT * FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp" +
|
||||||
|
" ORDER BY timestamp DESC"
|
||||||
|
)
|
||||||
|
fun getAllAfterForLog(timestamp: Long): List<BatteryUsageSlotEntity>
|
||||||
|
|
||||||
|
/** Deletes all recorded data before a specific timestamp. */
|
||||||
|
@Query("DELETE FROM BatteryUsageSlotEntity WHERE timestamp <= :timestamp")
|
||||||
|
fun clearAllBefore(timestamp: Long)
|
||||||
|
|
||||||
|
/** Deletes all recorded data after a specific timestamp. */
|
||||||
|
@Query("DELETE FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp")
|
||||||
|
fun clearAllAfter(timestamp: Long)
|
||||||
|
|
||||||
|
/** Clears all recorded data in the database. */
|
||||||
|
@Query("DELETE FROM BatteryUsageSlotEntity") fun clearAll()
|
||||||
|
}
|
Reference in New Issue
Block a user