--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/beem/project/beem/ui/Settings.java Sat Sep 26 20:19:07 2009 +0200
@@ -0,0 +1,127 @@
+package com.beem.project.beem.ui;
+
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.PreferenceActivity;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+
+import com.beem.project.beem.R;
+import com.beem.project.beem.service.XmppConnectionAdapter;
+
+/**
+ * This class represents an activity which allows the user to change his account or proxy parameters.
+ * @author nikita
+ */
+public class Settings extends PreferenceActivity {
+
+ private static final Intent SERVICE_INTENT = new Intent();
+ private BeemBroadcastReceiver mReceiver;
+
+ static {
+ SERVICE_INTENT.setComponent(new ComponentName("com.beem.project.beem", "com.beem.project.beem.BeemService"));
+ }
+
+ /**
+ * Constructor.
+ */
+ public Settings() {
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.layout.preferences);
+ mReceiver = new BeemBroadcastReceiver();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void onPause() {
+ super.onPause();
+ this.unregisterReceiver(mReceiver);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onResume() {
+ super.onResume();
+ this.registerReceiver(mReceiver, new IntentFilter(XmppConnectionAdapter.BEEM_CONNECTION_CLOSED));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onStop() {
+ super.onStop();
+ SharedPreferences settings = getPreferenceManager().getSharedPreferences();
+ settings.edit().putBoolean("PreferenceIsConfigured",
+ !"".equals(settings.getString("settings_key_account_username", ""))
+ || !"".equals(settings.getString("settings_key_account_password", ""))).commit();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ MenuInflater mInflater = getMenuInflater();
+ mInflater.inflate(R.menu.edit_settings, menu);
+ return true;
+ }
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ Intent i = null;
+ switch (item.getItemId()) {
+ case R.id.settings_menu_create_account:
+ i = new Intent(this, CreateAccount.class);
+ startActivity(i);
+ return true;
+ case R.id.settings_menu_login:
+ setResult(69);
+ SharedPreferences settings = getPreferenceManager().getSharedPreferences();
+ settings.edit().putBoolean("PreferenceIsConfigured",
+ !"".equals(settings.getString("settings_key_account_username", ""))
+ || !"".equals(settings.getString("settings_key_account_password", ""))).commit();
+ this.stopService(SERVICE_INTENT);
+ finish();
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * disconnect Broadcast receiver.
+ */
+ private class BeemBroadcastReceiver extends BroadcastReceiver {
+
+ /**
+ * Constructor.
+ */
+ public BeemBroadcastReceiver() {
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Settings.this.setResult(69);
+ }
+ }
+}