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