summaryrefslogtreecommitdiff
path: root/src/com/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastContentProvider.java34
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastDatabaseHelper.java44
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java2
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastListItem.java2
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastReceiver.java2
5 files changed, 46 insertions, 38 deletions
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastContentProvider.java b/src/com/android/cellbroadcastreceiver/CellBroadcastContentProvider.java
index 23c9e077e..4f7572d6b 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastContentProvider.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastContentProvider.java
@@ -67,33 +67,6 @@ public class CellBroadcastContentProvider extends ContentProvider {
sUriMatcher.addURI(CB_AUTHORITY, "#", CB_ALL_ID);
}
- /*
- * Query columns for instantiating SmsCbMessage.
- */
- public static final String[] QUERY_COLUMNS = {
- Telephony.CellBroadcasts._ID,
- Telephony.CellBroadcasts.SLOT_INDEX,
- Telephony.CellBroadcasts.GEOGRAPHICAL_SCOPE,
- Telephony.CellBroadcasts.PLMN,
- Telephony.CellBroadcasts.LAC,
- Telephony.CellBroadcasts.CID,
- Telephony.CellBroadcasts.SERIAL_NUMBER,
- Telephony.CellBroadcasts.SERVICE_CATEGORY,
- Telephony.CellBroadcasts.LANGUAGE_CODE,
- Telephony.CellBroadcasts.MESSAGE_BODY,
- Telephony.CellBroadcasts.DELIVERY_TIME,
- Telephony.CellBroadcasts.MESSAGE_READ,
- Telephony.CellBroadcasts.MESSAGE_FORMAT,
- Telephony.CellBroadcasts.MESSAGE_PRIORITY,
- Telephony.CellBroadcasts.ETWS_WARNING_TYPE,
- Telephony.CellBroadcasts.CMAS_MESSAGE_CLASS,
- Telephony.CellBroadcasts.CMAS_CATEGORY,
- Telephony.CellBroadcasts.CMAS_RESPONSE_TYPE,
- Telephony.CellBroadcasts.CMAS_SEVERITY,
- Telephony.CellBroadcasts.CMAS_URGENCY,
- Telephony.CellBroadcasts.CMAS_CERTAINTY
- };
-
/** The database for this content provider. */
private SQLiteOpenHelper mOpenHelper;
@@ -103,7 +76,12 @@ public class CellBroadcastContentProvider extends ContentProvider {
*/
@Override
public boolean onCreate() {
- mOpenHelper = new CellBroadcastDatabaseHelper(getContext());
+ mOpenHelper = new CellBroadcastDatabaseHelper(getContext(), false);
+ // trigger this to create database explicitly. Otherwise the db will be created only after
+ // the first query/update/insertion. Data migration is done inside db creation and we want
+ // to migrate data from cellbroadcast-legacy immediately when upgrade to the mainline module
+ // rather than migrate after the first emergency alert.
+ mOpenHelper.getReadableDatabase();
return true;
}
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastDatabaseHelper.java b/src/com/android/cellbroadcastreceiver/CellBroadcastDatabaseHelper.java
index 5080a05d8..fd736f330 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastDatabaseHelper.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastDatabaseHelper.java
@@ -40,6 +40,33 @@ public class CellBroadcastDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "cell_broadcasts.db";
static final String TABLE_NAME = "broadcasts";
+ /*
+ * Query columns for instantiating SmsCbMessage.
+ */
+ public static final String[] QUERY_COLUMNS = {
+ Telephony.CellBroadcasts._ID,
+ Telephony.CellBroadcasts.SLOT_INDEX,
+ Telephony.CellBroadcasts.GEOGRAPHICAL_SCOPE,
+ Telephony.CellBroadcasts.PLMN,
+ Telephony.CellBroadcasts.LAC,
+ Telephony.CellBroadcasts.CID,
+ Telephony.CellBroadcasts.SERIAL_NUMBER,
+ Telephony.CellBroadcasts.SERVICE_CATEGORY,
+ Telephony.CellBroadcasts.LANGUAGE_CODE,
+ Telephony.CellBroadcasts.MESSAGE_BODY,
+ Telephony.CellBroadcasts.DELIVERY_TIME,
+ Telephony.CellBroadcasts.MESSAGE_READ,
+ Telephony.CellBroadcasts.MESSAGE_FORMAT,
+ Telephony.CellBroadcasts.MESSAGE_PRIORITY,
+ Telephony.CellBroadcasts.ETWS_WARNING_TYPE,
+ Telephony.CellBroadcasts.CMAS_MESSAGE_CLASS,
+ Telephony.CellBroadcasts.CMAS_CATEGORY,
+ Telephony.CellBroadcasts.CMAS_RESPONSE_TYPE,
+ Telephony.CellBroadcasts.CMAS_SEVERITY,
+ Telephony.CellBroadcasts.CMAS_URGENCY,
+ Telephony.CellBroadcasts.CMAS_CERTAINTY
+ };
+
/**
* Database version 1: initial version (support removed)
* Database version 2-9: (reserved for OEM database customization) (support removed)
@@ -50,10 +77,12 @@ public class CellBroadcastDatabaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 12;
private final Context mContext;
+ final boolean mLegacyProvider;
- CellBroadcastDatabaseHelper(Context context) {
+ CellBroadcastDatabaseHelper(Context context, boolean legacyProvider) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
mContext = context;
+ mLegacyProvider = legacyProvider;
}
@Override
@@ -83,7 +112,9 @@ public class CellBroadcastDatabaseHelper extends SQLiteOpenHelper {
db.execSQL("CREATE INDEX IF NOT EXISTS deliveryTimeIndex ON " + TABLE_NAME
+ " (" + Telephony.CellBroadcasts.DELIVERY_TIME + ");");
- migrateFromLegacy(db);
+ if (!mLegacyProvider) {
+ migrateFromLegacy(db);
+ }
}
@Override
@@ -101,8 +132,8 @@ public class CellBroadcastDatabaseHelper extends SQLiteOpenHelper {
}
/**
- * This is the migration logic to accommodate OEMs who previously use non-AOSP CBR and move to
- * mainlined CBR for the first time. When the db is initially created, this is called once to
+ * This is the migration logic to accommodate OEMs move to mainlined CBR for the first time.
+ * When the db is initially created, this is called once to
* migrate predefined data through {@link Telephony.CellBroadcasts#AUTHORITY_LEGACY_URI}
* from OEM app.
*/
@@ -118,12 +149,11 @@ public class CellBroadcastDatabaseHelper extends SQLiteOpenHelper {
log("Starting migration from legacy provider");
// migration columns are same as query columns
try (Cursor c = client.query(Telephony.CellBroadcasts.AUTHORITY_LEGACY_URI,
- CellBroadcastContentProvider.QUERY_COLUMNS,
- null, null, null)) {
+ QUERY_COLUMNS, null, null, null)) {
final ContentValues values = new ContentValues();
while (c.moveToNext()) {
values.clear();
- for (String column : CellBroadcastContentProvider.QUERY_COLUMNS) {
+ for (String column : QUERY_COLUMNS) {
copyFromCursorToContentValues(column, c, values);
}
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java b/src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java
index 7b5228688..2f68db6b9 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java
@@ -256,7 +256,7 @@ public class CellBroadcastListActivity extends Activity {
if (id == LOADER_NORMAL_HISTORY) {
Log.d(TAG, "onCreateLoader: normal history.");
return new CursorLoader(getActivity(), CellBroadcastContentProvider.CONTENT_URI,
- CellBroadcastContentProvider.QUERY_COLUMNS, null, null,
+ CellBroadcastDatabaseHelper.QUERY_COLUMNS, null, null,
Telephony.CellBroadcasts.DELIVERY_TIME + " DESC");
} else if (id == LOADER_HISTORY_FROM_CBS) {
Log.d(TAG, "onCreateLoader: history from cell broadcast service");
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastListItem.java b/src/com/android/cellbroadcastreceiver/CellBroadcastListItem.java
index d1e723eff..81b0c3608 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastListItem.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastListItem.java
@@ -75,7 +75,7 @@ public class CellBroadcastListItem extends RelativeLayout {
SpannableStringBuilder messageText = new SpannableStringBuilder(message.getMessageBody());
try (Cursor cursor = mContext.getContentResolver().query(
CellBroadcastContentProvider.CONTENT_URI,
- CellBroadcastContentProvider.QUERY_COLUMNS,
+ CellBroadcastDatabaseHelper.QUERY_COLUMNS,
Telephony.CellBroadcasts.DELIVERY_TIME + "=?",
new String[] {Long.toString(message.getReceivedTime())},
null)) {
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastReceiver.java b/src/com/android/cellbroadcastreceiver/CellBroadcastReceiver.java
index fd0198ab8..27cfcaeec 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastReceiver.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastReceiver.java
@@ -277,7 +277,7 @@ public class CellBroadcastReceiver extends BroadcastReceiver {
CellBroadcasts.AUTHORITY_LEGACY,
CellBroadcasts.CALL_METHOD_GET_PREFERENCE,
key, null);
- if (pref != null) {
+ if (pref != null && pref.containsKey(key)) {
Log.d(TAG, "migrateSharedPreferenceFromLegacy: " + key + "val: "
+ pref.getBoolean(key));
sp.putBoolean(key, pref.getBoolean(key));