/* ** Copyright 2010, The LimeIME Open Source Project ** ** Project Url: http://code.google.com/p/limeime/ ** http://android.toload.net/ ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** You should have received a copy of the GNU General Public License ** along with this program. If not, see <http://www.gnu.org/licenses/>. */ package net.toload.main.hd.limesettings; import net.toload.main.hd.R; import net.toload.main.hd.global.KeyboardObj; import net.toload.main.hd.global.LIMEPreferenceManager; import android.annotation.TargetApi; import android.app.backup.BackupManager; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.os.RemoteException; import android.preference.PreferenceActivity; import android.util.Log; /** * @author Art Hung */ public class LIMEPreference extends PreferenceActivity implements OnSharedPreferenceChangeListener { private final boolean DEBUG = false; private final String TAG = "LIMEPreference"; private Context ctx = null; private DBServer DBSrv = null; private LIMEPreferenceManager mLIMEPref = null; @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //-------------------- //Jeremy '10, 4, 18 . if (ctx == null) { ctx = this.getApplicationContext(); } mLIMEPref = new LIMEPreferenceManager(ctx); //----------------------- addPreferencesFromResource(R.xml.preference); DBSrv = new DBServer(ctx); } @SuppressWarnings("deprecation") @Override protected void onResume() { super.onResume(); // Set up a listener whenever a key changes getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); } @SuppressWarnings("deprecation") @Override protected void onPause() { super.onPause(); // Unregister the listener whenever a key changes getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); } @Override public void onContentChanged() { super.onContentChanged(); } @TargetApi(8) @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if(DEBUG) Log.i(TAG, "LIMEPreference:OnChanged() key:" + key); if(key.equals("phonetic_keyboard_type")){ String selectedPhoneticKeyboardType = mLIMEPref.getPhoneticKeyboardType(); //PreferenceManager.getDefaultSharedPreferences(ctx).getString("phonetic_keyboard_type", ""); if(DEBUG) Log.i(TAG, "LIMEPreference:OnChanged(), phonetickeyboardtype:" + selectedPhoneticKeyboardType); try { if(DEBUG) Log.i(TAG, "LIMEPreference:OnChanged(), PhoneticIMInfo.kyeboard:" + DBSrv.getImInfo("phonetic", "keyboard")); /* if(selectedPhoneticKeyboardType.equals("standard")){ DBSrv.setIMKeyboard("phonetic", DBSrv.getKeyboardInfo("phonetic", "desc"), "phonetic"); }else if(selectedPhoneticKeyboardType.equals("eten")){ DBSrv.setIMKeyboard("phonetic", DBSrv.getKeyboardInfo("phoneticet41", "desc"), "phoneticet41"); }else if(selectedPhoneticKeyboardType.equals("hsu")){ DBSrv.setIMKeyboard("phonetic", DBSrv.getKeyboardInfo("hsu", "desc"), "hsu");//jeremy '12,6,6 new hsu and et26 keybaord }else if(selectedPhoneticKeyboardType.equals("eten26")){ DBSrv.setIMKeyboard("phonetic", DBSrv.getKeyboardInfo("et26", "desc"), "et26"); } */ KeyboardObj kobj = DBSrv.getKeyboardObj("phonetic"); if(selectedPhoneticKeyboardType.equals("standard")){ kobj = DBSrv.getKeyboardObj("phonetic"); }else if(selectedPhoneticKeyboardType.equals("eten")){ kobj = DBSrv.getKeyboardObj("phoneticet41"); }else if(selectedPhoneticKeyboardType.equals("eten26")){ if(mLIMEPref.getParameterBoolean("number_row_in_english", false)){ kobj = DBSrv.getKeyboardObj("limenum"); }else{ kobj = DBSrv.getKeyboardObj("lime"); } }else if(selectedPhoneticKeyboardType.equals("eten26_symbol")){ kobj = DBSrv.getKeyboardObj("et26"); }else if(selectedPhoneticKeyboardType.equals("hsu")){ //Jeremy '12,7,6 Add HSU english keyboard support if(mLIMEPref.getParameterBoolean("number_row_in_english", false)){ kobj = DBSrv.getKeyboardObj("limenum"); }else{ kobj = DBSrv.getKeyboardObj("lime"); } }else if(selectedPhoneticKeyboardType.equals("hsu_symbol")){ kobj = DBSrv.getKeyboardObj("hsu"); } DBSrv.setIMKeyboard("phonetic", kobj.getDescription(), kobj.getCode()); if(DEBUG) Log.i(TAG, "LIMEPreference:OnChanged(), PhoneticIMInfo.kyeboard:" + DBSrv.getImInfo("phonetic", "keyboard")); } catch (RemoteException e) { Log.i(TAG, "LIMEPreference:OnChanged(), WriteIMinfo for selected phonetic keyboard failed!!"); e.printStackTrace(); } } if(android.os.Build.VERSION.SDK_INT > 7 ){ //Jeremy '12,5,4 Supported after api 8. BackupManager backupManager = new BackupManager(ctx); backupManager.dataChanged(); //Jeremy '12,4,29 call backup manager to backup the changes. } } }