package com.evancharlton.mileage; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Set; import android.database.sqlite.SQLiteDatabase; import android.os.Environment; import android.os.Handler; import android.os.Message; public class SQLImporter implements Runnable { private Handler m_handler; public SQLImporter(Handler handler) { m_handler = handler; } public void run() { File input = new File(Environment.getExternalStorageDirectory() + "/mileage.sql"); try { BufferedReader in = new BufferedReader(new FileReader(input)); HashMap<String, String> fillupsProjection = FillUpsProvider.getFillUpsProjection(); Set<String> keySet = fillupsProjection.keySet(); keySet.remove(FillUps._ID); SQLiteDatabase db = SQLiteDatabase.openDatabase("/data/data/" + Mileage.PACKAGE + "/databases/" + FillUpsProvider.DATABASE_NAME, null, SQLiteDatabase.OPEN_READWRITE); String line; while ((line = in.readLine()) != null) { db.execSQL(line); } db.close(); m_handler.post(new Runnable() { public void run() { Message msg = new Message(); msg.what = 0; msg.arg1 = R.string.import_done_msg; msg.arg2 = R.string.import_done; msg.obj = "mileage.sql"; m_handler.handleMessage(msg); } }); } catch (final FileNotFoundException e) { m_handler.post(new Runnable() { public void run() { Message msg = new Message(); msg.what = 0; msg.obj = e.getLocalizedMessage(); msg.arg2 = R.string.error_importing_data; m_handler.handleMessage(msg); } }); } catch (final IOException e) { m_handler.post(new Runnable() { public void run() { Message msg = new Message(); msg.what = 0; msg.obj = e.getLocalizedMessage(); msg.arg2 = R.string.error_importing_data; m_handler.handleMessage(msg); } }); } } }