Create table to store user action.

For example, it will store when user restrict an app.

Bug: 111366678
Test: Build
Change-Id: I853d3611f260436d1f97ee7b0a40c52a8bde0678
This commit is contained in:
jackqdyulei
2018-07-18 15:13:19 -07:00
parent c879386e5a
commit ea8f2187d5

View File

@@ -33,7 +33,7 @@ public class AnomalyDatabaseHelper extends SQLiteOpenHelper {
private static final String TAG = "BatteryDatabaseHelper"; private static final String TAG = "BatteryDatabaseHelper";
private static final String DATABASE_NAME = "battery_settings.db"; private static final String DATABASE_NAME = "battery_settings.db";
private static final int DATABASE_VERSION = 4; private static final int DATABASE_VERSION = 5;
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@IntDef({State.NEW, @IntDef({State.NEW,
@@ -45,8 +45,15 @@ public class AnomalyDatabaseHelper extends SQLiteOpenHelper {
int AUTO_HANDLED = 2; int AUTO_HANDLED = 2;
} }
@Retention(RetentionPolicy.SOURCE)
@IntDef({ActionType.RESTRICTION})
public @interface ActionType {
int RESTRICTION = 0;
}
public interface Tables { public interface Tables {
String TABLE_ANOMALY = "anomaly"; String TABLE_ANOMALY = "anomaly";
String TABLE_ACTION = "action";
} }
public interface AnomalyColumns { public interface AnomalyColumns {
@@ -91,6 +98,42 @@ public class AnomalyDatabaseHelper extends SQLiteOpenHelper {
+ AnomalyColumns.ANOMALY_STATE + "," + AnomalyColumns.TIME_STAMP_MS + ")" + AnomalyColumns.ANOMALY_STATE + "," + AnomalyColumns.TIME_STAMP_MS + ")"
+ ")"; + ")";
public interface ActionColumns {
/**
* The package name of an app been performed an action
*/
String PACKAGE_NAME = "package_name";
/**
* The uid of an app been performed an action
*/
String UID = "uid";
/**
* The type of user action
* @see ActionType
*/
String ACTION_TYPE = "action_type";
/**
* The time when action been performed
*/
String TIME_STAMP_MS = "time_stamp_ms";
}
private static final String CREATE_ACTION_TABLE =
"CREATE TABLE " + Tables.TABLE_ACTION +
"(" +
ActionColumns.UID +
" INTEGER NOT NULL, " +
ActionColumns.PACKAGE_NAME +
" TEXT, " +
ActionColumns.ACTION_TYPE +
" INTEGER NOT NULL, " +
ActionColumns.TIME_STAMP_MS +
" INTEGER NOT NULL, " +
" PRIMARY KEY (" + ActionColumns.ACTION_TYPE + "," + ActionColumns.UID + ","
+ ActionColumns.PACKAGE_NAME + ")"
+ ")";
private static AnomalyDatabaseHelper sSingleton; private static AnomalyDatabaseHelper sSingleton;
public static synchronized AnomalyDatabaseHelper getInstance(Context context) { public static synchronized AnomalyDatabaseHelper getInstance(Context context) {
@@ -109,11 +152,6 @@ public class AnomalyDatabaseHelper extends SQLiteOpenHelper {
bootstrapDB(db); bootstrapDB(db);
} }
private void bootstrapDB(SQLiteDatabase db) {
db.execSQL(CREATE_ANOMALY_TABLE);
Log.i(TAG, "Bootstrapped database");
}
@Override @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < DATABASE_VERSION) { if (oldVersion < DATABASE_VERSION) {
@@ -137,7 +175,14 @@ public class AnomalyDatabaseHelper extends SQLiteOpenHelper {
bootstrapDB(db); bootstrapDB(db);
} }
private void bootstrapDB(SQLiteDatabase db) {
db.execSQL(CREATE_ANOMALY_TABLE);
db.execSQL(CREATE_ACTION_TABLE);
Log.i(TAG, "Bootstrapped database");
}
private void dropTables(SQLiteDatabase db) { private void dropTables(SQLiteDatabase db) {
db.execSQL("DROP TABLE IF EXISTS " + Tables.TABLE_ANOMALY); db.execSQL("DROP TABLE IF EXISTS " + Tables.TABLE_ANOMALY);
db.execSQL("DROP TABLE IF EXISTS " + Tables.TABLE_ACTION);
} }
} }