package com.hipipal.texteditor; import java.io.File; import java.net.InetAddress; import java.text.MessageFormat; import org.swiftp.Defaults; import com.zuowuxuxi.base.MyApp; import com.zuowuxuxi.base._WBase; import com.zuowuxuxi.util.NAction; import com.zuowuxuxi.util.NUtil; import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.res.Resources; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MFTPSettingAct extends _ABaseAct { private static final String TAG = "MSettingAct"; //private static final int SCRIPT_EXEC_CODE = 1235; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setActionBarContentView(R.layout.m_ftp_setting); setTitle(R.string.swiftp_name); //ArrayList<String> av = new ArrayList(); //String k = av.get(1); initWidgetTabItem(4); //NAction.recordUserLog(getApplicationContext(), "setting", ""); /*TextView host = (TextView)findViewById(R.id.ftp_host_value); host.setText(NAction.getProxyHost(getApplicationContext())); TextView port = (TextView)findViewById(R.id.ftp_port_value); port.setText(NAction.getProxyPort(getApplicationContext())); TextView username = (TextView)findViewById(R.id.ftp_username_value); username.setText(NAction.getProxyUsername(getApplicationContext())); TextView pwd = (TextView)findViewById(R.id.ftp_pwd_value); pwd.setText(NAction.getProxyPwd(getApplicationContext()));*/ String externalStorage = new File(Environment.getExternalStorageDirectory(), CONF.BASE_PATH).getAbsolutePath(); String frv = MessageFormat.format(getString(R.string.ftp_root), externalStorage); TextView fr = (TextView)findViewById(R.id.ftp_root_value); fr.setText(frv); displayAccount(); // Button ftpOpBtn = (Button)findViewById(R.id.ftp_op_btn); if (org.swiftp.FTPServerService.isRunning()) { ftpOpBtn.setText(getString(R.string.ftp_stop)); } else { ftpOpBtn.setText(getString(R.string.ftp_start)); } IntentFilter filter = new IntentFilter(); filter.addAction(org.swiftp.FTPServerService.ACTION_STARTED); filter.addAction(org.swiftp.FTPServerService.ACTION_STOPPED); filter.addAction(org.swiftp.FTPServerService.ACTION_FAILEDTOSTART); registerReceiver(ftpServerReceiver, filter); MNApp mnApp = (MNApp) this.getApplication(); mnApp.trackPageView("/"+NAction.getCode(getApplicationContext())+"/mftpsetting"); MyApp.getInstance().addActivity(this); } @Override public void onDestroy() { Log.v(TAG, "onPause"); super.onDestroy(); Log.v(TAG, "Unregistering the FTPServer actions"); unregisterReceiver(ftpServerReceiver); } public void onFTPOp(View v) { if (org.swiftp.FTPServerService.isRunning()) { stopServer(); } else { startServer(); } } private void startServer() { Context context = getApplicationContext(); NAction.setFtpRoot(context, Environment.getExternalStorageDirectory()+"/"+CONF.BASE_PATH); Intent serverService = new Intent(context, FTPServerService.class); if (!org.swiftp.FTPServerService.isRunning()) { startService(serverService); } } private void stopServer() { Context context = getApplicationContext(); Intent serverService = new Intent(context, FTPServerService.class); stopService(serverService); } public void displayAccount() { String ftpPort = NAction.getFtpPort(getApplicationContext()); if (ftpPort.equals("")) { ftpPort = String.valueOf(Defaults.getPortNumber()); } String ftpUsername = NAction.getFtpUsername(getApplicationContext()); if (ftpUsername.equals("")) { ftpUsername = NAction.getCode(getApplicationContext()); } String ftpPwd = NAction.getFtpPwd(getApplicationContext()); if (ftpPwd.equals("")) { ftpPwd = NAction.getCode(getApplicationContext()); } TextView ftpPortValue = (TextView)findViewById(R.id.ftp_port_value); ftpPortValue.setText(ftpPort); TextView ftpAccountValue = (TextView)findViewById(R.id.plugin_ftp_account_value); ftpAccountValue.setText(ftpUsername+" / "+ftpPwd); } @SuppressWarnings("deprecation") public void onFtpAccountSetting(View v) { String ftpUsername = NAction.getFtpUsername(getApplicationContext()); if (ftpUsername.equals("")) { ftpUsername = NAction.getCode(getApplicationContext()); } String ftpPwd = NAction.getFtpPwd(getApplicationContext()); if (ftpPwd.equals("")) { ftpPwd = NAction.getCode(getApplicationContext()); } WBase.setTxtDialogParam2(0, R.string.ftp_account_setting, getString(R.string.ftp_username), getString(R.string.ftp_pwd), ftpUsername, ftpPwd, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { AlertDialog ad = (AlertDialog) dialog; EditText t1 = (EditText) ad.findViewById(R.id.editText_prompt1); EditText t2 = (EditText) ad.findViewById(R.id.editText_prompt2); String username = t1.getText().toString(); String pwd = t2.getText().toString(); if (username!=null && pwd!=null && !username.equals("") && !pwd.equals("")) { NAction.setFtpUsername(getApplicationContext(), username); NAction.setFtpPwd(getApplicationContext(), pwd); } else { Toast.makeText(getApplicationContext(), R.string.err_need_input, Toast.LENGTH_SHORT).show(); } displayAccount(); } },null); showDialog(_WBase.DIALOG_TEXT_ENTRY2+dialogIndex); dialogIndex++; } @SuppressWarnings("deprecation") public void onFtpPortSetting(View v) { final TextView port = (TextView)findViewById(R.id.ftp_port_value); String portVal = port.getText().toString(); WBase.setTxtDialogParam(0, R.string.ftp_port, portVal, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { AlertDialog ad = (AlertDialog) dialog; EditText t = (EditText) ad.findViewById(R.id.editText_prompt); String content = t.getText().toString(); if (content!=null && !content.equals("")) { if (NUtil.isInt(content)) { NAction.setFtpPort(getApplicationContext(), content); displayAccount(); } else { Toast.makeText(getApplicationContext(), R.string.err_need_int, Toast.LENGTH_SHORT).show(); } } else { NAction.setProxyPort(getApplicationContext(), ""); port.setText(""); } } },null); showDialog(_WBase.DIALOG_TEXT_ENTRY+dialogIndex); dialogIndex++; } BroadcastReceiver ftpServerReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Log.v(TAG, "FTPServerService action received: " + intent.getAction()); TextView running_state = (TextView) findViewById(R.id.ftp_service_value); Button ftpOpBtn = (Button)findViewById(R.id.ftp_op_btn); if (intent.getAction().equals(org.swiftp.FTPServerService.ACTION_STARTED)) { // Fill in the FTP server address InetAddress address = org.swiftp.FTPServerService.getWifiIp(); if (address == null) { Log.v(TAG, "Unable to retreive wifi ip address"); running_state.setText(getString(R.string.cant_get_url)); return; } String iptext = "ftp://" + address.getHostAddress() + ":" + org.swiftp.FTPServerService.getPort() + "/"; Resources resources = getResources(); String summary = resources.getString(R.string.running_summary_started, iptext); running_state.setText(summary); ftpOpBtn.setText(getString(R.string.ftp_stop)); } else if (intent.getAction().equals(org.swiftp.FTPServerService.ACTION_STOPPED)) { running_state.setText(""); running_state.setText(R.string.running_summary_stopped); ftpOpBtn.setText(getString(R.string.ftp_start)); } else if (intent.getAction().equals(org.swiftp.FTPServerService.ACTION_FAILEDTOSTART)) { running_state.setText(R.string.running_summary_failed); ftpOpBtn.setText(getString(R.string.ftp_start)); } } }; }