--- a/src/com/beem/project/beem/ui/ChangeStatus.java Fri Sep 25 22:14:53 2009 +0200
+++ b/src/com/beem/project/beem/ui/ChangeStatus.java Sat Sep 26 01:15:19 2009 +0200
@@ -32,23 +32,22 @@
*/
public class ChangeStatus extends Activity {
-
private static final Intent SERVICE_INTENT = new Intent();
static {
SERVICE_INTENT.setComponent(new ComponentName("com.beem.project.beem", "com.beem.project.beem.BeemService"));
}
- private static final int DISCONNECTED_IDX = 5;
+
private static final int AVAILABLE_FOR_CHAT_IDX = 0;
private static final int AVAILABLE_IDX = 1;
private static final int BUSY_IDX = 2;
private static final int AWAY_IDX = 3;
private static final int UNAVAILABLE_IDX = 4;
+ private static final int DISCONNECTED_IDX = 5;
private TextView mStatusText;
private Toast mToast;
private Button mOk;
private Button mClear;
private Spinner mSpinner;
- private String[] mStatus;
private SharedPreferences mSettings;
private ArrayAdapter<CharSequence> mAdapter;
@@ -82,34 +81,26 @@
/**
* convert status text to.
- * @param item
- * @return
+ * @param item selected item text.
+ * @return item position in the array.
*/
private int getStatusForService(String item) {
- int res = Status.CONTACT_STATUS_AVAILABLE;
- for (int i = 0; i < mStatus.length; i++) {
- String str = mStatus[i];
- if (str.equals(item)) {
- switch (i) {
- case ChangeStatus.DISCONNECTED_IDX:
- return Status.CONTACT_STATUS_DISCONNECT;
- case ChangeStatus.AVAILABLE_FOR_CHAT_IDX:
- return Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT;
- case ChangeStatus.AVAILABLE_IDX:
- return Status.CONTACT_STATUS_AVAILABLE;
- case ChangeStatus.AWAY_IDX:
- return Status.CONTACT_STATUS_AWAY;
- case ChangeStatus.BUSY_IDX:
- return Status.CONTACT_STATUS_BUSY;
- case ChangeStatus.UNAVAILABLE_IDX:
- return Status.CONTACT_STATUS_UNAVAILABLE;
- default:
- res = Status.CONTACT_STATUS_AVAILABLE;
- break;
- }
- }
+ switch (mAdapter.getPosition(item)) {
+ case ChangeStatus.DISCONNECTED_IDX:
+ return Status.CONTACT_STATUS_DISCONNECT;
+ case ChangeStatus.AVAILABLE_FOR_CHAT_IDX:
+ return Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT;
+ case ChangeStatus.AVAILABLE_IDX:
+ return Status.CONTACT_STATUS_AVAILABLE;
+ case ChangeStatus.AWAY_IDX:
+ return Status.CONTACT_STATUS_AWAY;
+ case ChangeStatus.BUSY_IDX:
+ return Status.CONTACT_STATUS_BUSY;
+ case ChangeStatus.UNAVAILABLE_IDX:
+ return Status.CONTACT_STATUS_UNAVAILABLE;
+ default:
+ return Status.CONTACT_STATUS_AVAILABLE;
}
- return res;
}
/**
@@ -135,7 +126,6 @@
mReceiver = new BeemBroadcastReceiver();
mStatusText.setText(getPreferenceString(R.string.PreferenceStatusText));
mSpinner.setSelection(getPreferenceStatusIndex());
- mStatus = getResources().getStringArray(R.array.status_types);
}
/**
@@ -166,25 +156,52 @@
this.unregisterReceiver(mReceiver);
}
+ /**
+ * connection to service.
+ * @author nikita
+ */
private class BeemServiceConnection implements ServiceConnection {
+ /**
+ * constructor.
+ */
+ public BeemServiceConnection() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mXmppFacade = IXmppFacade.Stub.asInterface(service);
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public void onServiceDisconnected(ComponentName name) {
mXmppFacade = null;
}
}
+ /**
+ * User have clicked on ok.
+ * @author nikita
+ */
private class MyOnClickListener implements OnClickListener {
+ /**
+ * constructor.
+ */
+ public MyOnClickListener() {
+ }
+
@Override
public void onClick(View v) {
if (v == mOk) {
- if (textHasChanged() || statusHasChanged()) {
+ if (!mStatusText.getText().toString().equals(getPreferenceString(R.string.PreferenceStatusText))
+ || getPreferenceStatusIndex() != mSpinner.getSelectedItemPosition()) {
String msg = mStatusText.getText().toString();
int status = getStatusForService((String) mSpinner.getSelectedItem());
Editor edit = mSettings.edit();
@@ -197,9 +214,6 @@
try {
mXmppFacade.changeStatus(status, msg.toString());
} catch (RemoteException e) {
- // TODO
- // Auto-generated
- // catch block
e.printStackTrace();
}
mToast.show();
@@ -210,12 +224,5 @@
mStatusText.setText(null);
}
}
- private boolean statusHasChanged() {
- return mSettings.getInt(getString(R.string.PreferenceStatus), 0) != mSpinner.getSelectedItemPosition();
- }
-
- private boolean textHasChanged() {
- return !mStatusText.getText().toString().equals(getPreferenceString(R.string.PreferenceStatusText));
- }
}
}