diff --git a/res/drawable-hdpi/ime_fr_lang_lower.png b/res/drawable-hdpi/ime_fr_lang_lower.png new file mode 100644 index 00000000..a23b899b Binary files /dev/null and b/res/drawable-hdpi/ime_fr_lang_lower.png differ diff --git a/res/drawable-hdpi/ime_fr_lang_single.png b/res/drawable-hdpi/ime_fr_lang_single.png new file mode 100644 index 00000000..32ab522d Binary files /dev/null and b/res/drawable-hdpi/ime_fr_lang_single.png differ diff --git a/res/drawable-hdpi/ime_fr_lang_upper.png b/res/drawable-hdpi/ime_fr_lang_upper.png new file mode 100644 index 00000000..9e713371 Binary files /dev/null and b/res/drawable-hdpi/ime_fr_lang_upper.png differ diff --git a/res/drawable/ime_fr_lang_lower.png b/res/drawable/ime_fr_lang_lower.png new file mode 100644 index 00000000..a23b899b Binary files /dev/null and b/res/drawable/ime_fr_lang_lower.png differ diff --git a/res/drawable/ime_fr_lang_single.png b/res/drawable/ime_fr_lang_single.png new file mode 100644 index 00000000..32ab522d Binary files /dev/null and b/res/drawable/ime_fr_lang_single.png differ diff --git a/res/drawable/ime_fr_lang_upper.png b/res/drawable/ime_fr_lang_upper.png new file mode 100644 index 00000000..9e713371 Binary files /dev/null and b/res/drawable/ime_fr_lang_upper.png differ diff --git a/src/org/nyanya/android/traditionalt9/LangHelper.java b/src/org/nyanya/android/traditionalt9/LangHelper.java index df6a3f69..f90f4355 100644 --- a/src/org/nyanya/android/traditionalt9/LangHelper.java +++ b/src/org/nyanya/android/traditionalt9/LangHelper.java @@ -63,7 +63,7 @@ public class LangHelper { }, { // French resources - {R.drawable.ime_de_lang_lower, R.drawable.ime_de_lang_single, R.drawable.ime_de_lang_upper}, //LANG + {R.drawable.ime_fr_lang_lower, R.drawable.ime_fr_lang_single, R.drawable.ime_fr_lang_upper}, //LANG {R.drawable.ime_en_text_lower, R.drawable.ime_en_text_single, R.drawable.ime_en_text_upper}, //TEXT {R.drawable.ime_number}, //NUM }, diff --git a/src/org/nyanya/android/traditionalt9/T9DB.java b/src/org/nyanya/android/traditionalt9/T9DB.java index cf33be48..c3debe0d 100644 --- a/src/org/nyanya/android/traditionalt9/T9DB.java +++ b/src/org/nyanya/android/traditionalt9/T9DB.java @@ -7,6 +7,7 @@ import android.content.res.Resources; import android.database.Cursor; import android.database.sqlite.SQLiteConstraintException; import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteOpenHelper; import android.provider.BaseColumns; import android.text.TextUtils; @@ -167,25 +168,23 @@ public class T9DB { protected void nuke() { Log.i("T9DB.nuke", "Deleting database..."); synchronized (T9DB.class){ - if (db != null) { - db.close(); - } String[] oldSettings = getSettings(); - if (!mContext.deleteDatabase(DATABASE_NAME)) { - Log.e("T9DB", "Couldn't delete database."); - } + if (oldSettings == null) { Log.e("T9DB", "Couldn't get old settings"); } + if (db != null) { db.close(); } + if (!mContext.deleteDatabase(DATABASE_NAME)) { Log.e("T9DB", "Couldn't delete database."); } Log.i("T9DB.nuke", "Preparing database..."); getWritableDatabase().close(); db = null; ready = true; init(); - StringBuilder sb = new StringBuilder("INSERT OR REPLACE INTO "); - sb.append(SETTING_TABLE_NAME); sb.append(" ("); sb.append(COLUMN_ID); sb.append(","); - sb = DBSettings.SETTING.join(DBSettings.SETTING.settings, sb); - sb.append(") VALUES ("); sb.append(TextUtils.join(",", oldSettings)); - sb.append(")"); - db.execSQL(sb.toString()); + if (oldSettings != null) { + StringBuilder sb = new StringBuilder("INSERT OR REPLACE INTO "); + sb.append(SETTING_TABLE_NAME); sb.append(" ("); sb.append(COLUMN_ID); sb.append(","); + sb = DBSettings.SETTING.join(DBSettings.SETTING.settings, sb); + sb.append(") VALUES ("); sb.append(TextUtils.join(",", oldSettings)); sb.append(")"); + db.execSQL(sb.toString()); + } } Log.i("T9DB.nuke", "Done..."); } @@ -269,18 +268,31 @@ public class T9DB { } private String[] getSettings() { - int len = DBSettings.SETTING.settings.length; - String[] settings = new String[len+1]; - StringBuilder sb = new StringBuilder("SELECT "); + if (!checkReady()) { + Log.e("T9DB.getSetting", "not ready"); + return null; + } + int len = DBSettings.SETTING.settings.length+1; + String[] settings = new String[len]; + StringBuilder sb = new StringBuilder("SELECT "); sb.append(COLUMN_ID); sb.append(","); sb = DBSettings.SETTING.join(DBSettings.SETTING.settings, sb); - sb.append("FROM "); sb.append(SETTING_TABLE_NAME); sb.append(" WHERE "); sb.append(COLUMN_ID); sb.append("=1"); - Cursor cur = db.rawQuery(sb.toString(),null); + sb.append(" FROM "); sb.append(SETTING_TABLE_NAME); sb.append(" WHERE "); sb.append(COLUMN_ID); + sb.append("=1"); + + Cursor cur = null; + cur = db.rawQuery(sb.toString(),null); + try { cur = db.rawQuery(sb.toString(),null); } + catch (SQLiteException e) { + if (cur != null) { cur.close(); } + return null; + } if (cur.moveToFirst()) { for (int x = 0; x < len; x++) settings[x] = cur.getString(x); } else { Log.w("T9DB.getSettings", "COULDN'T RETRIEVE SETTINGS?"); - for (int x = 0; x < len; x++) { + for (int x = 1; x < len; x++) { + settings[0] = "1"; // COLUMN_ID if (DBSettings.SETTING.settings[x].defvalue == null) settings[x] = null; else diff --git a/src/org/nyanya/android/traditionalt9/TraditionalT9Settings.java b/src/org/nyanya/android/traditionalt9/TraditionalT9Settings.java index 99d87058..bb02c68c 100644 --- a/src/org/nyanya/android/traditionalt9/TraditionalT9Settings.java +++ b/src/org/nyanya/android/traditionalt9/TraditionalT9Settings.java @@ -22,6 +22,7 @@ import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; +import android.os.Handler; import android.os.SystemClock; import android.text.TextUtils; import android.util.Log; @@ -747,6 +748,7 @@ public class TraditionalT9Settings extends ListActivity implements } private void nukeDict() { + AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage(R.string.pref_nuke_warn).setTitle(R.string.pref_nuke_title) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @@ -754,6 +756,13 @@ public class TraditionalT9Settings extends ListActivity implements public void onClick(DialogInterface dialog, int id) { task = new NukeDictTask(R.string.pref_nukingdict); task.execute(); + // restart settings to get fresh settings. + TraditionalT9Settings.this.finish(); + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + startActivity(new Intent(TraditionalT9Settings.this, TraditionalT9Settings.class)); + }}, 1000); } }).setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { @Override