/*
** 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 java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;
import net.toload.main.hd.R;
import net.toload.main.hd.global.KeyboardObj;
import net.toload.main.hd.global.LIME;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.os.RemoteException;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
/**
*
* @author Art Hung
*
*/
public class LIMEMappingSetting extends Activity {
//private AlertDialog ad;
//private ArrayList<File> filelist;
//private boolean hasSelectFile;
private DBServer DBSrv = null;
//private SearchServer SearchSrv = null;
Button btnBackToPreviousPage = null;
Button btnLoadMapping = null;
Button btnResetMapping = null;
Button btnSelectKeyboard = null;
TextView labSource = null;
TextView labVersion = null;
TextView labTotalAmount = null;
TextView labImportDate = null;
TextView labMappingSettingTitle = null;
TextView labKeyboard = null;
private LinearLayout kbLinearLayout;
LinearLayout extendLayout = null;
LinearLayout extendLayout2 = null;
LinearLayout extendLayout3 = null;
LinearLayout extendLayout4 = null;
Button extendButton = null;
private String imtype = null;
List<KeyboardObj> kblist = null;
//LIMEPreferenceManager mLIMEPref;
ConnectivityManager connManager = null;
private AlertDialog mOptionsDialog;
ListView listview;
List<File> flist;
LinearLayout toplayout;
Context ctx;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
this.setContentView(R.layout.kbsetting);
ctx = this;
flist = new ArrayList<File>();
// Startup Service
//getApplicationContext().bindService(new Intent(IDBService.class.getName()), serConn, Context.BIND_AUTO_CREATE);
DBSrv = new DBServer(getApplicationContext());
//getApplicationContext().bindService(new Intent(ISearchService.class.getName()), serConn2, Context.BIND_AUTO_CREATE);
connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
//mLIMEPref = new LIMEPreferenceManager(this.getApplicationContext());
try{
Bundle bundle = this.getIntent().getExtras();
if(bundle != null){
imtype = bundle.getString("keyboard");
}
}catch(Exception e){
e.printStackTrace();
}
if(DBSrv != null && DBSrv.isRemoteFileDownloading()){
DBSrv.abortRemoteFileDownload();
}
/* Moved the db OnUpgarde to ver.77 in LIMEDB. by jeremy '12,7,2
// If User choice Pinyin then check if db has table pinyin and execute rename process
if(DBSrv != null && !DBSrv.isRemoteFileDownloading() && imtype.equals("pinyin")){
DBSrv.renameTableName("imtable1","pinyin");
}*/
// Initial Buttons
initialButton();
// Setup Extended Button
extendLayout = (LinearLayout) findViewById(R.id.extendLayout);
extendLayout2 = (LinearLayout) findViewById(R.id.extendLayout2);
extendLayout3 = (LinearLayout) findViewById(R.id.extendLayout3);
extendLayout4 = (LinearLayout) findViewById(R.id.extendLayout4);
if(imtype != null && imtype.equals("dayi")){
Button extendButton = new Button(this);
extendButton.setText(getResources().getString(R.string.l3_im_download_from_dayi));
extendLayout.addView(extendButton);
extendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
//hasSelectFile = true;
resetLabelInfo();
//DBSrv.resetMapping("dayi");
DBSrv.downloadDayi();
startLoadingWindow();
//mLIMEPref.setParameter("im_loading", true);
//mLIMEPref.setParameter("im_loading_table", imtype);
} catch (RemoteException e) {
//mLIMEPref.setParameter("im_loading", false);
e.printStackTrace();
}
}else{
Toast.makeText( ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
//mLIMEPref.setParameter("db_finish", true);
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}else if(imtype != null && imtype.equals("phonetic")){
/* Button removed by Jeremy '12,7,2, for simpler UI
Button extendButton = new Button(this);
extendButton.setText(getResources().getString(R.string.l3_im_download_from_phonetic));
extendLayout.addView(extendButton);
extendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
//hasSelectFile = true;
resetLabelInfo();
DBSrv.downloadPhonetic();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
//mLIMEPref.setParameter("db_finish", true);
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
*/
Button extendButton2 = new Button(this);
extendButton2.setText(getResources().getString(R.string.l3_im_download_from_phonetic_adv));
extendLayout2.addView(extendButton2);
extendButton2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
Toast.makeText(ctx, getText(R.string.l3_im_download_from_phonetic_adv_warning), Toast.LENGTH_SHORT).show();
//hasSelectFile = true;
resetLabelInfo();
DBSrv.downloadPhoneticAdv();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
/* Button removed by Jeremy '12,7,2, for simpler UI
Button extendButton3 = new Button(this);
extendButton3.setText(getResources().getString(R.string.l3_im_download_from_phonetic_cns));
extendLayout3.addView(extendButton3);
extendButton3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
Toast.makeText(ctx, getText(R.string.l3_im_download_from_phonetic_cns_warning), Toast.LENGTH_SHORT).show();
//hasSelectFile = true;
resetLabelInfo();
DBSrv.downloadPhoneticCns();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});*/
Button extendButton4 = new Button(this);
extendButton4.setText(getResources().getString(R.string.l3_im_download_from_cjk_phonetic));
extendLayout4.addView(extendButton4);
extendButton4.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
Toast.makeText(ctx, getText(R.string.l3_im_download_from_cjk_phonetic_start), Toast.LENGTH_SHORT).show();
//hasSelectFile = true;
resetLabelInfo();
DBSrv.downloadPhoneticLIME();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}else if(imtype != null && imtype.equals("cj")){
/* Button removed by Jeremy '12,7,2, for simpler UI
Button extendButton = new Button(this);
extendButton.setText(getResources().getString(R.string.l3_im_download_from_cj));
extendLayout.addView(extendButton);
extendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
//hasSelectFile = true;
resetLabelInfo();
//DBSrv.resetMapping("cj");
DBSrv.downloadCj();
startLoadingWindow();
//DBSrv.setImInfo("cj", "keyboard", "嚙踝赯�閰剁��改蕭嚙�; // set this in LIMEDb loadfile()
//mLIMEPref.setParameter("im_loading", true);
//mLIMEPref.setParameter("im_loading_table", imtype);
} catch (RemoteException e) {
//mLIMEPref.setParameter("im_loading", false);
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
//mLIMEPref.setParameter("db_finish", true);
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});*/
/* Button removed by Jeremy '12,7,2, for simpler UI
Button extendButton2 = new Button(this);
extendButton2.setText(getResources().getString(R.string.l3_im_download_from_cj_cns));
extendLayout2.addView(extendButton2);
extendButton2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
Toast.makeText(ctx, getText(R.string.l3_im_download_from_phonetic_cns_warning), Toast.LENGTH_SHORT).show();
//hasSelectFile = true;
resetLabelInfo();
DBSrv.downloadCjCns();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});*/
Button extendButton3 = new Button(this);
extendButton3.setText(getResources().getString(R.string.l3_im_download_from_cjk_cj));
extendLayout3.addView(extendButton3);
extendButton3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
Toast.makeText(ctx, getText(R.string.l3_im_download_from_cjk_cj_start), Toast.LENGTH_SHORT).show();
//hasSelectFile = true;
resetLabelInfo();
DBSrv.downloadCJLIME();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
Button extendButton4 = new Button(this);
extendButton4.setText(getResources().getString(R.string.l3_im_download_from_cjk_hk_cj));
extendLayout4.addView(extendButton4);
extendButton4.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
Toast.makeText(ctx, getText(R.string.l3_im_download_from_cjk_hk_cj_start), Toast.LENGTH_SHORT).show();
//hasSelectFile = true;
resetLabelInfo();
DBSrv.downloadCJHKLIME();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}else if(imtype != null && imtype.equals("scj")){
Button extendButton = new Button(this);
extendButton.setText(getResources().getString(R.string.l3_im_download_from_scj));
extendLayout.addView(extendButton);
extendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
//hasSelectFile = true;
resetLabelInfo();
//DBSrv.resetMapping("scj");
DBSrv.downloadScj();
startLoadingWindow();
//DBSrv.setImInfo("scj", "keyboard", "嚙踝赯�閰剁��改蕭嚙�; // set this in LIMEDb loadfile()
//mLIMEPref.setParameter("im_loading", true);
//mLIMEPref.setParameter("im_loading_table", imtype);
} catch (RemoteException e) {
//mLIMEPref.setParameter("im_loading", false);
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
//mLIMEPref.setParameter("db_finish", true);
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}else if(imtype != null && imtype.equals("cj5")){
Button extendButton = new Button(this);
extendButton.setText(getResources().getString(R.string.l3_im_download_from_cj5));
extendLayout.addView(extendButton);
extendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
//hasSelectFile = true;
resetLabelInfo();
//DBSrv.resetMapping("cj5");
DBSrv.downloadCj5();
startLoadingWindow();
//DBSrv.setImInfo("cj5", "keyboard", "嚙踝赯�閰剁��改蕭嚙�; // set this in LIMEDb loadfile()
//mLIMEPref.setParameter("im_loading", true);
//mLIMEPref.setParameter("im_loading_table", imtype);
} catch (RemoteException e) {
//mLIMEPref.setParameter("im_loading", false);
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
//mLIMEPref.setParameter("db_finish", true);
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}else if(imtype != null && imtype.equals("ecj")){
/*
Button extendButton = new Button(this);
extendButton.setText(getResources().getString(R.string.l3_im_download_from_ecj));
extendLayout.addView(extendButton);
extendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
//hasSelectFile = true;
resetLabelInfo();
//DBSrv.resetMapping("ecj");
DBSrv.downloadEcj();
startLoadingWindow();
//DBSrv.setImInfo("ecj", "keyboard", "嚙踝赯�閰剁��改蕭嚙�; // set this in LIMEDb loadfile()
//mLIMEPref.setParameter("im_loading", true);
//mLIMEPref.setParameter("im_loading_table", imtype);
} catch (RemoteException e) {
//mLIMEPref.setParameter("im_loading", false);
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
//mLIMEPref.setParameter("db_finish", true);
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
*/
Button extendButton2 = new Button(this);
extendButton2.setText(getResources().getString(R.string.l3_im_download_from_cjk_ecj));
extendLayout2.addView(extendButton2);
extendButton2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
Toast.makeText(ctx, getText(R.string.l3_im_download_from_cjk_ecj_start), Toast.LENGTH_SHORT).show();
//hasSelectFile = true;
resetLabelInfo();
DBSrv.downloadECJLIME();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
Button extendButton3 = new Button(this);
extendButton3.setText(getResources().getString(R.string.l3_im_download_from_cjk_hk_ecj));
extendLayout3.addView(extendButton3);
extendButton3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
Toast.makeText(ctx, getText(R.string.l3_im_download_from_cjk_hk_ecj_start), Toast.LENGTH_SHORT).show();
//hasSelectFile = true;
resetLabelInfo();
DBSrv.downloadECJHKLIME();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}else if(imtype != null && imtype.equals("ez")){
Button extendButton = new Button(this);
extendButton.setText(getResources().getString(R.string.l3_im_download_from_ez));
extendLayout.addView(extendButton);
extendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
startLoadingWindow();
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
//hasSelectFile = true;
resetLabelInfo();
//DBSrv.resetMapping("ez");
DBSrv.downloadEz();
startLoadingWindow();
//DBSrv.setImInfo("ez", "keyboard", "�嚙賡�閰剁��改蕭嚙�; // set this in LIMEDb loadfile()
//mLIMEPref.setParameter("im_loading", true);
//mLIMEPref.setParameter("im_loading_table", imtype);
} catch (RemoteException e) {
//mLIMEPref.setParameter("im_loading", false);
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
//mLIMEPref.setParameter("db_finish", true);
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}else if(imtype != null && imtype.equals("array")){
Button extendButton = new Button(this);
extendButton.setText(getResources().getString(R.string.l3_im_download_from_array));
extendLayout.addView(extendButton);
extendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
//hasSelectFile = true;
resetLabelInfo();
//DBSrv.resetMapping("array");
DBSrv.downloadArray();
startLoadingWindow();
//DBSrv.setImInfo("array", "keyboard", "�蛛嚙賡�閰剁��改蕭嚙�; // set this in LIMEDb loadfile()
//mLIMEPref.setParameter("im_loading", true);
//mLIMEPref.setParameter("im_loading_table", imtype);
} catch (RemoteException e) {
//mLIMEPref.setParameter("im_loading", false);
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
//mLIMEPref.setParameter("db_finish", true);
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}else if(imtype != null && imtype.equals("array10")){
Button extendButton = new Button(this);
extendButton.setText(getResources().getString(R.string.l3_im_download_from_array10));
extendLayout.addView(extendButton);
extendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
//hasSelectFile = true;
resetLabelInfo();
//DBSrv.resetMapping("array10");
DBSrv.downloadArray10();
startLoadingWindow();
//DBSrv.setImInfo("array10", "keyboard", "嚙賡�摨蕭閰剁蕭嚙質�謆�); // set this in LIMEDb loadfile()
//mLIMEPref.setParameter("im_loading", true);
//mLIMEPref.setParameter("im_loading_table", imtype);
} catch (RemoteException e) {
//mLIMEPref.setParameter("im_loading", false);
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
//mLIMEPref.setParameter("db_finish", true);
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}else if(imtype != null && imtype.equals("wb")){
Button extendButton = new Button(this);
extendButton.setText(getResources().getString(R.string.l3_im_download_from_wb));
extendLayout.addView(extendButton);
extendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
//hasSelectFile = true;
resetLabelInfo();
//DBSrv.resetMapping("wb");
DBSrv.downloadWb();
startLoadingWindow();
//DBSrv.setImInfo("wb", "keyboard", "�叟�嚙賡�閰剁��改蕭嚙�; // set this in LIMEDb loadfile()
//mLIMEPref.setParameter("im_loading", true);
//mLIMEPref.setParameter("im_loading_table", imtype);
} catch (RemoteException e) {
//mLIMEPref.setParameter("im_loading", false);
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
//mLIMEPref.setParameter("db_finish", true);
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
// Remove useless layout LinearLayout05
TextView t1 = (TextView) findViewById(R.id.txtKeyboardInfo);
t1.setVisibility(View.INVISIBLE);
TextView t2 = (TextView) findViewById(R.id.txtSelectKeyboard);
t2.setVisibility(View.INVISIBLE);
TextView t3 = (TextView) findViewById(R.id.labKeyboard);
t3.setVisibility(View.INVISIBLE);
Button b1 = (Button) findViewById(R.id.btnSelectKeyboard);
b1.setVisibility(View.INVISIBLE);
}else if(imtype != null && imtype.equals("hs")){
TextView extendText = new TextView(this);
extendText.setText(getResources().getString(R.string.l3_im_download_from_hs));
extendLayout.addView(extendText);
/*extendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
//hasSelectFile = true;
resetLabelInfo();
DBSrv.downloadHs();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});*/
// Remove useless layout LinearLayout05
TextView t1 = (TextView) findViewById(R.id.txtKeyboardInfo);
t1.setVisibility(View.INVISIBLE);
TextView t2 = (TextView) findViewById(R.id.txtSelectKeyboard);
t2.setVisibility(View.INVISIBLE);
TextView t3 = (TextView) findViewById(R.id.labKeyboard);
t3.setVisibility(View.INVISIBLE);
Button b1 = (Button) findViewById(R.id.btnSelectKeyboard);
b1.setVisibility(View.INVISIBLE);
}else if(imtype != null && imtype.equals("pinyin")){
/*Button extendButton = new Button(this);
extendButton.setText(getResources().getString(R.string.l3_im_download_from_pinyin_big5));
extendLayout.addView(extendButton);
extendButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
startLoadingWindow();
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
resetLabelInfo();
DBSrv.downloadPinyinBig5();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});*/
Button extendButton2 = new Button(this);
extendButton2.setText(getResources().getString(R.string.l3_im_download_from_cjk_pinyin));
extendLayout2.addView(extendButton2);
extendButton2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
Toast.makeText(ctx, getText(R.string.l3_im_download_from_cjk_pinyin_start), Toast.LENGTH_SHORT).show();
//hasSelectFile = true;
resetLabelInfo();
DBSrv.downloadPinyinLIME();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
Button extendButton3 = new Button(this);
extendButton3.setText(getResources().getString(R.string.l3_im_download_from_pinyin_gb));
extendLayout3.addView(extendButton3);
extendButton3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_download_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
if(connManager.getActiveNetworkInfo() != null && connManager.getActiveNetworkInfo().isConnected()){
try {
Toast.makeText(ctx, getText(R.string.l3_im_download_from_pinyin_gb_start), Toast.LENGTH_SHORT).show();
//hasSelectFile = true;
resetLabelInfo();
DBSrv.downloadPinyinGB();
startLoadingWindow();
} catch (RemoteException e) {
e.printStackTrace();
}
}else{
Toast.makeText(ctx, getText(R.string.l3_tab_initial_error), Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}else{
extendLayout.removeView(extendButton);
}
btnSelectKeyboard.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showKeyboardPicker();
}
});
btnBackToPreviousPage.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
}
});
btnLoadMapping.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//hasSelectFile = false;
selectLimeFile(LIME.IM_LOAD_LIME_ROOT_DIRECTORY, imtype);
}
});
kbLinearLayout.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
updateLabelInfo();
return false;
}
});
btnResetMapping.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setMessage(getText(R.string.l3_message_table_reset_confirm));
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
initialButton();
try {
resetLabelInfo();
DBSrv.resetMapping(imtype);
//mLIMEPref.setParameter("im_loading", false);
//mLIMEPref.setParameter("im_loading_table", "");
btnLoadMapping.setEnabled(true);
} catch (RemoteException e) {
e.printStackTrace();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
AdView adView = new AdView(this, AdSize.SMART_BANNER, LIME.publisher);
LinearLayout layout = (LinearLayout)findViewById(R.id.ad_area);
layout.addView(adView);
AdRequest adRequest = new AdRequest();
adView.loadAd(adRequest);
}
/* (non-Javadoc)
* @see android.app.Activity#onStart()
*/
@Override
protected void onStart() {
super.onStart();
initialButton();
}
/* (non-Javadoc)
* @see android.app.Activity#onStart()
*/
@Override
protected void onResume() {
super.onResume();
if(DBSrv!= null){
if( DBSrv.isRemoteFileDownloading() ||
DBSrv.isLoadingMappingThreadAlive()){
startLoadingWindow();
//} else if(! DBSrv.isLoadingMappingFinished() ){
// resetLabelInfo();
}
initialButton();
updateLabelInfo();
}
}
private void initialButton(){
btnBackToPreviousPage = (Button) findViewById(R.id.btnBackToPreviousPage);
btnLoadMapping = (Button) findViewById(R.id.btnLoadMapping);
btnResetMapping = (Button) findViewById(R.id.btnResetMapping);
btnSelectKeyboard = (Button) findViewById(R.id.btnSelectKeyboard);
labSource = (TextView) findViewById(R.id.labSource);
labVersion = (TextView) findViewById(R.id.labVersion);
labTotalAmount = (TextView) findViewById(R.id.labTotalAmount);
labImportDate = (TextView) findViewById(R.id.labImportDate);
labMappingSettingTitle = (TextView) findViewById(R.id.labMappingSettingTitle);
labKeyboard = (TextView) findViewById(R.id.labKeyboard);
kbLinearLayout = (LinearLayout) this.findViewById(R.id.kbLinearLayout);
if(DBSrv!=null && (DBSrv.isRemoteFileDownloading() ||
DBSrv.isLoadingMappingThreadAlive()) ){
btnLoadMapping.setEnabled(false);
}else
btnLoadMapping.setEnabled(true);
}
public void resetLabelInfo(){
labSource.setText("");
labVersion.setText("");
labTotalAmount.setText("");
labImportDate.setText("");
labKeyboard.setText("");
}
public void updateLabelInfo(){
if(DBSrv!=null && DBSrv.isLoadingMappingThreadAlive()){
labSource.setText("Loading...");
labVersion.setText("Loading...");
labTotalAmount.setText("Loading...");
labImportDate.setText("Loading...");
}else{
try{
labSource.setText(DBSrv.getImInfo(imtype, "source"));
labVersion.setText(DBSrv.getImInfo(imtype, "name"));
labTotalAmount.setText(DBSrv.getImInfo(imtype, "amount"));
labImportDate.setText(DBSrv.getImInfo(imtype, "import"));
}catch(Exception e){
e.printStackTrace();
}
}
if(imtype.equalsIgnoreCase("cj")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_cj) +" "+ getText(R.string.l3_im_setting_title) );
}else if(imtype.equalsIgnoreCase("scj")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_scj) +" "+ getText(R.string.l3_im_setting_title) );
}else if(imtype.equalsIgnoreCase("ez")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_eazy) +" "+ getText(R.string.l3_im_setting_title) );
}else if(imtype.equalsIgnoreCase("array")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_array) +" "+ getText(R.string.l3_im_setting_title) );
}else if(imtype.equalsIgnoreCase("array10")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_array10) +" "+ getText(R.string.l3_im_setting_title) );
}else if(imtype.equalsIgnoreCase("dayi")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_dayi) +" "+ getText(R.string.l3_im_setting_title) );
}else if(imtype.equalsIgnoreCase("custom")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_default) +" "+ getText(R.string.l3_im_setting_title) );
}else if(imtype.equalsIgnoreCase("phonetic")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_phonetic) +" "+ getText(R.string.l3_im_setting_title) );
}else if(imtype.equalsIgnoreCase("cj5")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_cj5) +" "+ getText(R.string.l3_im_setting_title) );
}else if(imtype.equalsIgnoreCase("ecj")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_ecj) +" "+ getText(R.string.l3_im_setting_title) );
}else if(imtype.equalsIgnoreCase("wb")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_wb) +" "+ getText(R.string.l3_im_setting_title) );
}else if(imtype.equalsIgnoreCase("hs")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_hs) +" "+ getText(R.string.l3_im_setting_title) );
}else if(imtype.equalsIgnoreCase("pinyin")){
labMappingSettingTitle.setText(getText(R.string.l3_manage_pinyin) +" "+ getText(R.string.l3_im_setting_title) );
}
// Display Keyboard Selection
try {
labKeyboard.setText(DBSrv.getImInfo(imtype, "keyboard"));
} catch (RemoteException e) {
e.printStackTrace();
}
}
// private ServiceConnection serConn = new ServiceConnection() {
// public void onServiceConnected(ComponentName name, IBinder service) {
// //Log.i("ART","DB Service connected!");
// if(DBSrv == null){
// DBSrv = IDBService.Stub.asInterface(service);
// updateLabelInfo();
// }
// }
// public void onServiceDisconnected(ComponentName name) {
// //Log.i("ART","DB Service disconnected!");
// }
// };
/*
* Construct SerConn
*
private ServiceConnection serConn2 = new ServiceConnection() {
public void onServiceConnected(ComponentName name, IBinder service) {
SearchSrv = ISearchService.Stub.asInterface(service);
try {
SearchSrv.clear();
} catch (RemoteException e) {
e.printStackTrace();
}
}
public void onServiceDisconnected(ComponentName name) {
}
};
/**
* Select file to be import from the list
*
* @param path
*/
public void selectLimeFile(String srcpath, String tablename) {
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.target);
dialog.setTitle(this.getResources().getText(R.string.lime_setting_btn_load_local_notice));
dialog.setCancelable(true);
Button button = (Button) dialog.findViewById(R.id.btn_loading_sync_cancel);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
listview = (ListView) dialog.findViewById(R.id.listview_loading_target);
toplayout = (LinearLayout) dialog.findViewById(R.id.linearlayout_loading_confirm_top);
listview.setAdapter(getAdapter(new File(LIME.IM_LOAD_LIME_ROOT_DIRECTORY)));
createNavigationButtons(new File(LIME.IM_LOAD_LIME_ROOT_DIRECTORY));
listview.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
File f = flist.get(position);
if(f.isDirectory()){
listview.setAdapter(getAdapter(f));
createNavigationButtons(f);
}else{
getAvailableFiles(f.getAbsolutePath());
dialog.dismiss();
}
}
});
dialog.show();
/*
// Retrieve Filelist
filelist = getAvailableFiles(srcpath, tablename);
ArrayList<String> showlist = new ArrayList<String>();
int count = 0;
for (File unit : filelist) {
if (count == 0) {
showlist.add(this.getResources().getText(
R.string.lime_setting_select_root).toString());
count++;
continue;
} else if (count == 1) {
showlist.add(this.getResources().getText(
R.string.lime_setting_select_parent).toString());
count++;
continue;
}
if (unit.isDirectory()) {
showlist.add(" +[" + unit.getName() + "]");
} else {
showlist.add(" " + unit.getName());
}
count++;
}
// get a builder and set the view
LayoutInflater li = LayoutInflater.from(this);
View view = li.inflate(R.layout.filelist, null);
ArrayAdapter<String> adapterlist = new ArrayAdapter<String>(this,
R.layout.filerow, showlist);
final String table = new String(tablename);
ListView listview = (ListView) view.findViewById(R.id.list);
listview.setAdapter(adapterlist);
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View vi, int position,
long id) {
selectLimeFile(filelist.get(position).getAbsolutePath(), table);
}
});
// if AlertDialog exists then dismiss before create
if (ad != null) {
ad.dismiss();
}
if (!//hasSelectFile) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.lime_setting_btn_load_local_notice);
builder.setView(view);
builder.setNeutralButton(R.string.label_close_key,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
}
});
ad = builder.create();
ad.show();
}*/
}
public LIMESelectFileAdapter getAdapter(List<File> list) {
return new LIMESelectFileAdapter(this, list);
}
public LIMESelectFileAdapter getAdapter(File path) {
flist = getAvailableFiles(path.getAbsolutePath());
return new LIMESelectFileAdapter(this, flist);
}
/**
* Get list of the file from the path
*
* @param path
* @return
*/
private List<File> getAvailableFiles(String path) {
List<File> templist = new ArrayList<File>();
List<File> list = new ArrayList<File>();
File check = new File(path);
if (check.exists() && check.isDirectory()) {
for(File f: check.listFiles()){
if(f.canRead()){
if(!f.isDirectory()){
if( f.getName().toLowerCase().endsWith("cin") ||
f.getName().toLowerCase().endsWith("lime") ||
f.getName().toLowerCase().endsWith("txt")){
list.add(f);
}
}else{
list.add(f);
}
}
}
List<File> folders = new ArrayList<File>();
List<File> files = new ArrayList<File>();
for(File f: list){
if(f.isDirectory()){
folders.add(f);
}else{
files.add(f);
}
}
List<File> result = new ArrayList<File>();
Collections.sort(folders, SORT_FILENAME);
Collections.reverse(folders);
result.addAll(folders);
Collections.sort(files, SORT_FILENAME);
Collections.reverse(files);
result.addAll(files);
return result;
} else {
//hasSelectFile = true;
loadMapping(check);
resetLabelInfo();
}
return templist;
}
static final Comparator<File> SORT_FILENAME = new Comparator<File>() {
public int compare(File e1, File e2) {
return e2.getName().compareTo(e1.getName());
}
};
/**
* Import mapping table into database
*
* @param unit
*/
public void loadMapping(File unit) {
try {
DBSrv.loadMapping(unit.getAbsolutePath(), imtype);
} catch (RemoteException e) {
e.printStackTrace();
}
startLoadingWindow();
}
/*
* Show keyboard picker
*/
private void showKeyboardPicker() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setIcon(R.drawable.sym_keyboard_done);
builder.setNegativeButton(android.R.string.cancel, null);
builder.setTitle(getResources().getString(R.string.keyboard_list));
try {
kblist = DBSrv.getKeyboardList();
} catch (RemoteException e) {
e.printStackTrace();
}
if(kblist != null){
String curSelectKb = "";
int curSelectKbPosition = 0;
try {
curSelectKb = DBSrv.getKeyboardCode(imtype);
} catch (RemoteException e) {
e.printStackTrace();
}
CharSequence[] items = new CharSequence[kblist.size()];
for (int i = 0; i < kblist.size(); i++) {
items[i] = kblist.get(i).getDescription();
// Check if keyboard has been set, then record the position of item.
if(kblist.get(i).getCode() != null &&
curSelectKb != null && kblist.get(i).getCode().equals(curSelectKb)){
curSelectKbPosition = i;
}
}
builder.setSingleChoiceItems(items, curSelectKbPosition,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface di, int position) {
di.dismiss();
handlKeyboardSelection(position);
}
});
mOptionsDialog = builder.create();
//Window window = mOptionsDialog.getWindow();
mOptionsDialog.show();
}
}
private void handlKeyboardSelection(int position) {
KeyboardObj kobj = kblist.get(position);
try {
DBSrv.setIMKeyboard(imtype, kobj.getDescription(), kobj.getCode());
labKeyboard.setText(DBSrv.getImInfo(imtype, "keyboard"));
} catch (RemoteException e) {
e.printStackTrace();
}
}
private void startLoadingWindow(){
Intent i = new Intent(this, LIMEMappingLoading.class);
Bundle bundle = new Bundle();
bundle.putString("keyboard", imtype);
i.putExtras(bundle);
startActivity(i);
}
private void createNavigationButtons(final File dir) {
// Clean Top Area
toplayout.removeAllViews();
// Create Navigation Buttons
String path = dir.getAbsolutePath();
String[] pathlist = path.split("\\/");
String pathconstruct = "/";
if (pathlist.length > 0) {
for (String p : pathlist) {
if (!p.equals("") && !p.equals("/")) {
pathconstruct += p + "/";
} else {
p = "/";
}
final String actpath = pathconstruct;
Button b = new Button(this);
b.setText(p);
b.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
b.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
createNavigationButtons(new File(actpath));
flist = getAvailableFiles(actpath);
listview.setAdapter(getAdapter(flist));
}
});
toplayout.addView(b);
}
} else {
//final String actpath = pathconstruct;
Button b = new Button(this);
b.setText("/");
b.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
b.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
createNavigationButtons(new File("/"));
flist = getAvailableFiles("/");
listview.setAdapter(getAdapter(flist));
}
});
toplayout.addView(b);
flist = getAvailableFiles("/");
listview.setAdapter(getAdapter(flist));
}
}
}