From 9458c58b2e1155e8cf3ce51e4f7ff2a52b397765 Mon Sep 17 00:00:00 2001 From: Clam Date: Fri, 11 Sep 2015 19:50:48 +1000 Subject: [PATCH] Added French icons. Fixed bugs in settings nuke. --- res/drawable-hdpi/ime_fr_lang_lower.png | Bin 0 -> 612 bytes res/drawable-hdpi/ime_fr_lang_single.png | Bin 0 -> 674 bytes res/drawable-hdpi/ime_fr_lang_upper.png | Bin 0 -> 868 bytes res/drawable/ime_fr_lang_lower.png | Bin 0 -> 612 bytes res/drawable/ime_fr_lang_single.png | Bin 0 -> 674 bytes res/drawable/ime_fr_lang_upper.png | Bin 0 -> 868 bytes .../android/traditionalt9/LangHelper.java | 2 +- .../nyanya/android/traditionalt9/T9DB.java | 48 +++++++++++------- .../traditionalt9/TraditionalT9Settings.java | 9 ++++ 9 files changed, 40 insertions(+), 19 deletions(-) create mode 100644 res/drawable-hdpi/ime_fr_lang_lower.png create mode 100644 res/drawable-hdpi/ime_fr_lang_single.png create mode 100644 res/drawable-hdpi/ime_fr_lang_upper.png create mode 100644 res/drawable/ime_fr_lang_lower.png create mode 100644 res/drawable/ime_fr_lang_single.png create mode 100644 res/drawable/ime_fr_lang_upper.png 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 0000000000000000000000000000000000000000..a23b899b014b019fba19767924b21b015d4dbde2 GIT binary patch literal 612 zcmV-q0-ODbP)Kl`)JGK@^6+ITl#YJ7Wl9jL{BEv@%2!DNH1h5IQ=| z^;lWkSfG^BSVCxQZ7qn&)|3*ct{@gz=teL>?!3EYU@T@9Hx?e8Qb>5oOJ@JczHjEe zw{L|~idEXyN~3Q88^8vzCIHJ{2q6RzGMW#Tz*H$U{VRY89tF+=yFeJ20At`#2r*M< zor>nYFmNfC%Vm1K-h0<|yTjq|L#x$#0$cz>N-56b00P(nZn&=7RmMi6QLou-KK>T~ z3%H!gWO9D+QmOO|xC>l0fT+1;m|ry#ivTRZ1}+u~g*$%Q>h=0ZV2UpKu5pYu0giza zbQAp1Ea05uID7GUJnM^&<2;g5?&tIQx1CPssgyF5PN(10YPFl$Z1z?%nS5zrrvd=3 z3D!*0OfM|g_QD>Nf7{vMB;k8 z-F_F1Mn9W0%@#R5=-y9NDwXGf6FvlP1NVKcTCKhY?wQl?0M^1c0FG?iJ_$e%fJ1cm z0N{Dv7vL-K4PE4gZs3oKnGhoQrOu4cwMZl~0geD~nbGn8Ptz@Q8m6{wdjZ`;_xM~h z`%?mGTL$38VzGmOK1LUE>7%V@%A5}hVsKI%^gtkTw_O*eow2mAyXaGSMe*_Cnt0000KmcMG-P!z_0SF$Y0Y2(y`m*Q-t)I;|S-3rEQUm#oG z!-YbJEQL_;bMzVNsm2uQEOu=Orb$y1jMB!kWb1bDkt4@{aEEOA;2?B3_kQPo=iDPH ztu+q`<3V>%2~vWTASKuhN-P6dVutu)XkZ3}Vl(|86EY)~1D*hnfox)9WOEP>Y4u>th1>J7<6es{0tu?z^1~7rWAP6h~&-1Q5&$}{Bb7mNZR!V8pG-spHXdv=g zN~!x2Mu1)?T_#=>MUer}Xf(c5tJP1y5C}w$2{4w}Ja=`9YvW7I^gh9&i$7d! z7a~)%jsRdEcsUph&Ng+>Xf*l?yZ~OszLS%akH8U7iY40AMN8=S`#*ZU-Z$5Eeao_@ zwrz)D7NI8L&Q#@zLJep8m)uyO*!Fe1s^*IN6D1R@d=?FvJ(3Qg0DU~%*%y#*0-xd3n+ zC%%MRNev15YgtwZkjv$K))#FG+{7=1Lg9}PZY5C6M|6(6Ng7Yiak6+ysVwt$+?RE? z66bFl-^uSmJeOvY?b6&=N*Rf`_=ZnOjP7+jD*d}o2~q<70huUPaqWQ|=>Px#07*qo IM6N<$f)K1MH~;_u literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9e7133714255e1960b6f38261b1ea85fdcb1cc4e GIT binary patch literal 868 zcmV-q1DpJbP)KmcLINM-<0DGt1uY!udF_6bfve6Dbn161lP>WXTdl ziIa*pbd(fsDNs6S((nf$m#z^?(g1~pA|tM`WML#%2`6MiI2$6oaN)eaUW%JN=Iq3B zNu-uKPC@4Q(hB798IA2oU(pbyXo=mUJ1D5C>_YgC)LLIlW+3g8&kmR*3v zXeuJP4d4QUz*XQ1P_hr{(gOVdHFu@nMu?U5eCe5hvGPP0ir1SJBp&0j^kunYf(yx<2YHf**pTuMOMvb z^UpL*Bc+s7DwUC1tu{V8J3C&jR)3tHo_+|tF*~CI+&VZocrGHcwzl>w@I7!FxCMLx zd=A_MCX0;c=jVR{z6QpD?{;=}9*c;aoSZa_Z&^exS)`N_0MGN@055?<;J|#Fz-yBg z0OfM|+{_;WuU1!A9|446_^GL*h7Nl=6%|ncd7f)i#K4dswTjt&U(+-l06b$ag<)6* zXti3e%v|0BP)M~}y|%Eh@Xhe>@R{%XaS#MC@Yl@D%yUyO0LI3~zFb^f%stPGM@L6* zOifMw08p>jR}G`OEb6Jjf63|T=@WCVci+df_4V~%fC=ClP%2o|BaKGmkG;LUogfI> zuIr|r=Osy!{B9i;07pkhhe?v0X{~eDb+3$!j9j0XnD};SY3cFY+*||evi9s?V`JlI zV3JGr)PPTb>%g72STsq8MfbM1w>LhBMZWL9&7vl7%H>V&WL2p|#-{&~jZj0T>({v>Tf(DR5Q{!Z18HfH@FvZEd|slB5Mtuh;Jt zAa*w`I%%6uN4yY`ZYD~p5}jUDG3)*@er*$@Y+~rbCL$O1doW<_CQFj literal 0 HcmV?d00001 diff --git a/res/drawable/ime_fr_lang_lower.png b/res/drawable/ime_fr_lang_lower.png new file mode 100644 index 0000000000000000000000000000000000000000..a23b899b014b019fba19767924b21b015d4dbde2 GIT binary patch literal 612 zcmV-q0-ODbP)Kl`)JGK@^6+ITl#YJ7Wl9jL{BEv@%2!DNH1h5IQ=| z^;lWkSfG^BSVCxQZ7qn&)|3*ct{@gz=teL>?!3EYU@T@9Hx?e8Qb>5oOJ@JczHjEe zw{L|~idEXyN~3Q88^8vzCIHJ{2q6RzGMW#Tz*H$U{VRY89tF+=yFeJ20At`#2r*M< zor>nYFmNfC%Vm1K-h0<|yTjq|L#x$#0$cz>N-56b00P(nZn&=7RmMi6QLou-KK>T~ z3%H!gWO9D+QmOO|xC>l0fT+1;m|ry#ivTRZ1}+u~g*$%Q>h=0ZV2UpKu5pYu0giza zbQAp1Ea05uID7GUJnM^&<2;g5?&tIQx1CPssgyF5PN(10YPFl$Z1z?%nS5zrrvd=3 z3D!*0OfM|g_QD>Nf7{vMB;k8 z-F_F1Mn9W0%@#R5=-y9NDwXGf6FvlP1NVKcTCKhY?wQl?0M^1c0FG?iJ_$e%fJ1cm z0N{Dv7vL-K4PE4gZs3oKnGhoQrOu4cwMZl~0geD~nbGn8Ptz@Q8m6{wdjZ`;_xM~h z`%?mGTL$38VzGmOK1LUE>7%V@%A5}hVsKI%^gtkTw_O*eow2mAyXaGSMe*_Cnt0000KmcMG-P!z_0SF$Y0Y2(y`m*Q-t)I;|S-3rEQUm#oG z!-YbJEQL_;bMzVNsm2uQEOu=Orb$y1jMB!kWb1bDkt4@{aEEOA;2?B3_kQPo=iDPH ztu+q`<3V>%2~vWTASKuhN-P6dVutu)XkZ3}Vl(|86EY)~1D*hnfox)9WOEP>Y4u>th1>J7<6es{0tu?z^1~7rWAP6h~&-1Q5&$}{Bb7mNZR!V8pG-spHXdv=g zN~!x2Mu1)?T_#=>MUer}Xf(c5tJP1y5C}w$2{4w}Ja=`9YvW7I^gh9&i$7d! z7a~)%jsRdEcsUph&Ng+>Xf*l?yZ~OszLS%akH8U7iY40AMN8=S`#*ZU-Z$5Eeao_@ zwrz)D7NI8L&Q#@zLJep8m)uyO*!Fe1s^*IN6D1R@d=?FvJ(3Qg0DU~%*%y#*0-xd3n+ zC%%MRNev15YgtwZkjv$K))#FG+{7=1Lg9}PZY5C6M|6(6Ng7Yiak6+ysVwt$+?RE? z66bFl-^uSmJeOvY?b6&=N*Rf`_=ZnOjP7+jD*d}o2~q<70huUPaqWQ|=>Px#07*qo IM6N<$f)K1MH~;_u literal 0 HcmV?d00001 diff --git a/res/drawable/ime_fr_lang_upper.png b/res/drawable/ime_fr_lang_upper.png new file mode 100644 index 0000000000000000000000000000000000000000..9e7133714255e1960b6f38261b1ea85fdcb1cc4e GIT binary patch literal 868 zcmV-q1DpJbP)KmcLINM-<0DGt1uY!udF_6bfve6Dbn161lP>WXTdl ziIa*pbd(fsDNs6S((nf$m#z^?(g1~pA|tM`WML#%2`6MiI2$6oaN)eaUW%JN=Iq3B zNu-uKPC@4Q(hB798IA2oU(pbyXo=mUJ1D5C>_YgC)LLIlW+3g8&kmR*3v zXeuJP4d4QUz*XQ1P_hr{(gOVdHFu@nMu?U5eCe5hvGPP0ir1SJBp&0j^kunYf(yx<2YHf**pTuMOMvb z^UpL*Bc+s7DwUC1tu{V8J3C&jR)3tHo_+|tF*~CI+&VZocrGHcwzl>w@I7!FxCMLx zd=A_MCX0;c=jVR{z6QpD?{;=}9*c;aoSZa_Z&^exS)`N_0MGN@055?<;J|#Fz-yBg z0OfM|+{_;WuU1!A9|446_^GL*h7Nl=6%|ncd7f)i#K4dswTjt&U(+-l06b$ag<)6* zXti3e%v|0BP)M~}y|%Eh@Xhe>@R{%XaS#MC@Yl@D%yUyO0LI3~zFb^f%stPGM@L6* zOifMw08p>jR}G`OEb6Jjf63|T=@WCVci+df_4V~%fC=ClP%2o|BaKGmkG;LUogfI> zuIr|r=Osy!{B9i;07pkhhe?v0X{~eDb+3$!j9j0XnD};SY3cFY+*||evi9s?V`JlI zV3JGr)PPTb>%g72STsq8MfbM1w>LhBMZWL9&7vl7%H>V&WL2p|#-{&~jZj0T>({v>Tf(DR5Q{!Z18HfH@FvZEd|slB5Mtuh;Jt zAa*w`I%%6uN4yY`ZYD~p5}jUDG3)*@er*$@Y+~rbCL$O1doW<_CQFj literal 0 HcmV?d00001 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