CarrierDatabaseHelper.java revision 0144c1c734a73b5f2cf4b8b9675c0cd047f3b15b
10144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar/*
20144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar**
30144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar** Copyright (C) 2014, The Android Open Source Project
40144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar**
50144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar** Licensed under the Apache License, Version 2.0 (the "License");
60144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar** you may not use this file except in compliance with the License.
70144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar** You may obtain a copy of the License at
80144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar**
90144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar**     http://www.apache.org/licenses/LICENSE-2.0
100144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar**
110144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar** Unless required by applicable law or agreed to in writing, software
120144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar** distributed under the License is distributed on an "AS IS" BASIS,
130144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
140144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar** See the License for the specific language governing permissions and
150144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar** limitations under the License.
160144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar*/
170144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar
180144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwarpackage com.android.providers.telephony;
190144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar
200144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwarimport android.content.Context;
210144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwarimport android.database.sqlite.SQLiteDatabase;
220144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwarimport android.database.sqlite.SQLiteOpenHelper;
230144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwarimport android.text.TextUtils;
240144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwarimport java.util.ArrayList;
250144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwarimport java.util.List;
260144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar
270144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwarpublic class CarrierDatabaseHelper extends SQLiteOpenHelper {
280144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    private static final String TAG = "CarrierDatabaseHelper";
290144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    private static final boolean DBG = true;
300144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar
310144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    private static final String DATABASE_NAME = "CarrierInformation.db";
320144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    public static final String CARRIER_KEY_TABLE = "carrier_key";
330144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    private static final int DATABASE_VERSION = 1;
340144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar
350144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    /**
360144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar     * CarrierDatabaseHelper carrier database helper class.
370144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar     * @param context of the user.
380144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar     */
390144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    public CarrierDatabaseHelper(Context context) {
400144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar        super(context, DATABASE_NAME, null, DATABASE_VERSION);
410144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    }
420144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar
430144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    static final String KEY_TYPE = "key_type";
440144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    static final String KEY = "key";
450144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    static final String MCC = "mcc";
460144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    static final String MNC = "mnc";
470144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    static final String MVNO_TYPE = "mvno_type";
480144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    static final String MVNO_MATCH_DATA = "mvno_match_data";
490144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    static final String PUBLIC_CERTIFICATE = "public_certificate";
500144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    static final String LAST_MODIFIED = "last_modified";
510144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar
520144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    private static final List<String> CARRIERS_UNIQUE_FIELDS = new ArrayList<String>();
530144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar
540144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    static {
550144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar        CARRIERS_UNIQUE_FIELDS.add(MCC);
560144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar        CARRIERS_UNIQUE_FIELDS.add(MNC);
570144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar        CARRIERS_UNIQUE_FIELDS.add(KEY_TYPE);
580144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar        CARRIERS_UNIQUE_FIELDS.add(MVNO_TYPE);
590144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar        CARRIERS_UNIQUE_FIELDS.add(MVNO_MATCH_DATA);
600144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    }
610144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar
620144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    public static String getStringForCarrierKeyTableCreation(String tableName) {
630144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar        return "CREATE TABLE " + tableName +
640144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar                "(_id INTEGER PRIMARY KEY," +
650144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar                MCC + " TEXT DEFAULT ''," +
660144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar                MNC + " TEXT DEFAULT ''," +
670144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar                MVNO_TYPE + " TEXT DEFAULT ''," +
680144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar                MVNO_MATCH_DATA + " TEXT DEFAULT ''," +
690144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar                KEY_TYPE + " TEXT DEFAULT ''," +
700144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar                KEY + " TEXT DEFAULT ''," +
710144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar                PUBLIC_CERTIFICATE + " TEXT DEFAULT ''," +
720144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar                LAST_MODIFIED + " INTEGER DEFAULT 0," +
730144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar                "UNIQUE (" + TextUtils.join(", ", CARRIERS_UNIQUE_FIELDS) + "));";
740144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    }
750144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar
760144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    @Override
770144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    public void onCreate(SQLiteDatabase db) {
780144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar        db.execSQL(getStringForCarrierKeyTableCreation(CARRIER_KEY_TABLE));
790144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    }
800144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar
810144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    @Override
820144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
830144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar        // do nothing
840144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar    }
850144c1c734a73b5f2cf4b8b9675c0cd047f3b15bpkanwar}
86