From 161e27d8af5d8a511a9b8c304f67162bf3af57c1 Mon Sep 17 00:00:00 2001 From: Clam Date: Tue, 4 Nov 2014 14:16:56 +1100 Subject: [PATCH] Fixed bugs, finished settings: * Checkbox wasn't complete, completed it. * Fixed DB crash on update due to bad ordering of update stmts * Fixed crash on boot due to saving lang status --- src/org/nyanya/android/traditionalt9/T9DB.java | 6 +++--- .../nyanya/android/traditionalt9/TraditionalT9.java | 9 ++++++--- .../android/traditionalt9/settings/Setting.java | 1 + .../traditionalt9/settings/SettingAdapter.java | 2 +- .../android/traditionalt9/settings/SettingCheck.java | 12 ++++++++++-- .../traditionalt9/settings/SettingMultiList.java | 2 -- 6 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/org/nyanya/android/traditionalt9/T9DB.java b/src/org/nyanya/android/traditionalt9/T9DB.java index ffe1b4f9..50e0b077 100644 --- a/src/org/nyanya/android/traditionalt9/T9DB.java +++ b/src/org/nyanya/android/traditionalt9/T9DB.java @@ -66,7 +66,7 @@ public class T9DB { public static class DBSettings { public enum SETTING { - INPUT_MODE("pref_inputmode", 1), + INPUT_MODE("pref_inputmode", 0), LANG_SUPPORT("pref_lang_support", 1), MODE_NOTIFY("pref_mode_notify", 0), LAST_LANG("set_last_lang", 1), @@ -514,10 +514,10 @@ public class T9DB { if (oldVersion == 2) { // ADDED SETTINGS, CHANGED LANG VALUE db.execSQL("DROP INDEX IF EXISTS idx"); - db.execSQL("UPDATE " + WORD_TABLE_NAME + " SET " + COLUMN_LANG + "=" + LANGUAGE.EN.id + - " WHERE " + COLUMN_LANG + "=0"); db.execSQL("UPDATE " + WORD_TABLE_NAME + " SET " + COLUMN_LANG + "=" + LANGUAGE.RU.id + " WHERE " + COLUMN_LANG + "=1"); + db.execSQL("UPDATE " + WORD_TABLE_NAME + " SET " + COLUMN_LANG + "=" + LANGUAGE.EN.id + + " WHERE " + COLUMN_LANG + "=0"); onCreate(db); } Log.i("T9DB.onUpgrade", "Done."); diff --git a/src/org/nyanya/android/traditionalt9/TraditionalT9.java b/src/org/nyanya/android/traditionalt9/TraditionalT9.java index 2feefdca..e5362306 100644 --- a/src/org/nyanya/android/traditionalt9/TraditionalT9.java +++ b/src/org/nyanya/android/traditionalt9/TraditionalT9.java @@ -220,6 +220,7 @@ public class TraditionalT9 extends InputMethodService implements //Utils.printFlags(attribute.inputType); if (attribute.inputType == 0) { + mLang = null; // don't do anything when not in any kind of edit field. // should also turn off input screen and stuff mEditing = NON_EDIT; @@ -254,7 +255,8 @@ public class TraditionalT9 extends InputMethodService implements mKeyMode = MODE_TEXT; - boolean modenotify = settings[2].equals("1"); + boolean modenotify = settings[2].equals(1); + if (!modenotify && modeNotification != null) { modeNotification = null; } else if (modenotify && modeNotification == null){ @@ -384,8 +386,8 @@ public class TraditionalT9 extends InputMethodService implements public void onFinishInput() { super.onFinishInput(); // Log.d("onFinishInput", "When is this called?"); - db.storeSettingInt(SETTING.LAST_LANG, mLang.id); - if (mEditing == EDITING) { + if (mEditing == EDITING || mEditing == EDITING_NOSHOW) { + db.storeSettingInt(SETTING.LAST_LANG, mLang.id); commitTyped(); finish(); } @@ -1293,6 +1295,7 @@ public class TraditionalT9 extends InputMethodService implements } private void modeNotify(String s) { + Log.d("T9.modeNotify", "Notifying:"+s); modeNotification.setText(s); modeNotification.show(); modeNotification.cancel(); // TODO: This will not always hide the Toast. diff --git a/src/org/nyanya/android/traditionalt9/settings/Setting.java b/src/org/nyanya/android/traditionalt9/settings/Setting.java index a32a251f..fc35ae26 100644 --- a/src/org/nyanya/android/traditionalt9/settings/Setting.java +++ b/src/org/nyanya/android/traditionalt9/settings/Setting.java @@ -38,4 +38,5 @@ public class Setting { public void setView(View view) { this.view = view; } + public void init() {}; } diff --git a/src/org/nyanya/android/traditionalt9/settings/SettingAdapter.java b/src/org/nyanya/android/traditionalt9/settings/SettingAdapter.java index 9e59bb56..48fd2e6d 100644 --- a/src/org/nyanya/android/traditionalt9/settings/SettingAdapter.java +++ b/src/org/nyanya/android/traditionalt9/settings/SettingAdapter.java @@ -38,7 +38,7 @@ public class SettingAdapter extends ArrayAdapter { final ViewGroup widgetFrame = (ViewGroup) convertView.findViewById(R.id.widget_frame); layoutInflater.inflate(setting.widgetID, widgetFrame); } - + setting.init(); // Return the completed view to render on screen return convertView; } diff --git a/src/org/nyanya/android/traditionalt9/settings/SettingCheck.java b/src/org/nyanya/android/traditionalt9/settings/SettingCheck.java index e0ab06c0..786ed66e 100644 --- a/src/org/nyanya/android/traditionalt9/settings/SettingCheck.java +++ b/src/org/nyanya/android/traditionalt9/settings/SettingCheck.java @@ -3,8 +3,10 @@ package org.nyanya.android.traditionalt9.settings; import android.content.Context; import android.util.AttributeSet; +import android.widget.CheckBox; import org.nyanya.android.traditionalt9.R; +import org.nyanya.android.traditionalt9.T9DB; public class SettingCheck extends Setting { boolean value; @@ -26,12 +28,18 @@ public class SettingCheck extends Setting { value = defaultValue; } widgetID = R.layout.checkbox; + layout = R.layout.setting_widget; } @Override public void clicked(Context context) { - + value = !value; + T9DB.getInstance(context).storeSettingInt(T9DB.DBSettings.SETTING.get(id), value ? 1 : 0); + ((CheckBox)view.findViewById(R.id.checkbox)).setChecked(value); } - + @Override + public void init(){ + ((CheckBox)view.findViewById(R.id.checkbox)).setChecked(value); + } } diff --git a/src/org/nyanya/android/traditionalt9/settings/SettingMultiList.java b/src/org/nyanya/android/traditionalt9/settings/SettingMultiList.java index f0b1f85f..a6b24ac3 100644 --- a/src/org/nyanya/android/traditionalt9/settings/SettingMultiList.java +++ b/src/org/nyanya/android/traditionalt9/settings/SettingMultiList.java @@ -18,9 +18,7 @@ public class SettingMultiList extends SettingList { public SettingMultiList (Context context, AttributeSet attrs, Object[] isettings) { super(context, attrs, isettings); selectedEntries = new boolean[entries.length]; - Log.d("Multi", "len:" + entries.length + " setting:" + isettings[1]); for (LangHelper.LANGUAGE l : LangHelper.buildLangs((Integer)isettings[1])) { - Log.d("Multi", "index:" + l.index); selectedEntries[l.index] = true; } summary = buildItems();