package com.jphonelite; import android.app.*; import android.os.*; import android.view.*; import android.widget.*; import android.util.*; import android.net.*; import android.database.*; import android.provider.*; import android.provider.Contacts.*; import android.content.*; import java.util.*; import javaforce.*; import javaforce.voip.*; public class ViewLine extends Activity { private TextView name, user, auth, pass, host; private int line, same; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); line = ViewSettings.line; showView(); } @Override public void onPause() { super.onPause(); saveSettings(); } public void setText(TextView tv, String str) { tv.setText(str.toCharArray(),0,str.length()); } public int getR() { switch (line) { case 1: return R.array.line_2; case 2: return R.array.line_3; case 3: return R.array.line_4; case 4: return R.array.line_5; case 5: return R.array.line_6; } return -1; } public void showView() { setContentView(line == 0 ? R.layout.line1 : R.layout.linex); same = Settings.current.lines[line].same; name = (TextView) findViewById(R.id.settings_name); user = (TextView) findViewById(R.id.settings_user); auth = (TextView) findViewById(R.id.settings_auth); pass = (TextView) findViewById(R.id.settings_pass); host = (TextView) findViewById(R.id.settings_host); setText(name, Settings.current.lines[line].name); setText(user, Settings.current.lines[line].user); setText(auth, Settings.current.lines[line].auth); setText(pass, Settings.getPassword(Settings.current.lines[line].pass)); setText(host, Settings.current.lines[line].host); if (line != 0) { if (same != -1) { setEditable(false); } Spinner spinner = (Spinner) findViewById(R.id.settings_line_x); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, getR(), android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); int id = same + 1; if (id > line) id--; spinner.setSelection(id); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { same = ((int)id) - 1; if (same >= line) same++; //don't duplicate self setEditable(same == -1); } public void onNothingSelected(AdapterView parent) {} }); setText((TextView)findViewById(R.id.settings_line_x_label), "Line " + (line+1)); } } public void setEditable(boolean state) { //android is missing EditText.setEditable() functionality... } public void saveSettings() { Settings.current.lines[line].name = name.getText().toString(); Settings.current.lines[line].user = user.getText().toString(); Settings.current.lines[line].auth = auth.getText().toString(); Settings.current.lines[line].pass = "crypto(1," + Settings.encodePassword(pass.getText().toString()) + ")"; Settings.current.lines[line].host = host.getText().toString(); Settings.current.lines[line].same = same; Settings.saveSettings(); } }