Interface 'finit' connection / configuration finit.
authormarseille@marseille-desktop
Sun, 15 Mar 2009 18:59:32 +0100
changeset 5 accfe4a4010f
parent 4 c36eb0599813
child 16 da30cff7f9ce
Interface 'finit' connection / configuration finit.
res/layout/main.xml
res/layout/settings.xml
res/menu/account.xml
src/com/beem/project/beem/Beem.java
src/com/beem/project/beem/SettingsDialog.java
--- a/res/layout/main.xml	Sat Mar 14 23:36:04 2009 +0100
+++ b/res/layout/main.xml	Sun Mar 15 18:59:32 2009 +0100
@@ -10,28 +10,27 @@
 		android:layout_width="wrap_content"
 		android:layout_height="wrap_content"/>
 		
-	<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-		android:orientation="horizontal"
-		android:layout_width="fill_parent"
-		android:layout_height="wrap_content">
-		<TextView android:text=" JID : "
-			android:layout_width="wrap_content"
-			android:layout_height="wrap_content" />
-		<EditText android:id="@+id/jid"
-			android:minWidth="300dp"
-			android:layout_width="wrap_content"
-			android:layout_height="wrap_content"
-			android:singleLine="true"
-			android:scrollHorizontally="true" />
-	</LinearLayout>
-
-	<EditText android:id="@+id/server"
+	<TextView android:text="Jabber ID"
+		android:textSize="25sp"
+		android:paddingLeft="100sp"
+		android:paddingTop="50sp"
+		android:paddingBottom="15sp"
+		android:layout_width="wrap_content"
+		android:layout_height="wrap_content" />
+		
+	<EditText android:id="@+id/jid"
+		android:singleLine="true"
 		android:layout_width="fill_parent"
 		android:layout_height="wrap_content"
-		android:password="true"
-		android:text="_password_" />
+		android:scrollHorizontally="true" />
+	
+	<TextView
+		android:layout_width="fill_parent"
+		android:layout_height="10sp"/>
 
-	<Button android:id="@+id/Connection"
+	<Button android:id="@+id/connection"
+		android:textSize="20sp"
+		android:singleLine="true"
 		android:layout_width="fill_parent"
 		android:layout_height="wrap_content"
 		android:text="Connection" />
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/res/layout/settings.xml	Sun Mar 15 18:59:32 2009 +0100
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:orientation="vertical"
+              android:layout_width="fill_parent"
+              android:layout_height="fill_parent"
+        >
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                  android:orientation="horizontal"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+            >
+        <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="Host/Port:"
+                android:minWidth="70dp"
+                />
+                
+        <EditText android:id="@+id/host"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:textSize="16sp"
+                  android:autoText="false"
+                  android:capitalize="none"
+                  android:minWidth="150dp"
+                  android:scrollHorizontally="true"/>
+        <EditText android:id="@+id/port"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:textSize="16sp"
+                  android:autoText="false"
+                  android:minWidth="80dp"
+                  android:capitalize="none"
+                  android:scrollHorizontally="true"/>
+    </LinearLayout>
+
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                  android:orientation="horizontal"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+            >
+        <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="Userid:"
+                android:minWidth="70dp"
+                />
+        <EditText android:id="@+id/userid"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:textSize="16sp"
+                  android:autoText="false"
+                  android:minWidth="250dp"
+                  android:capitalize="none"
+                  android:scrollHorizontally="true"/>
+    </LinearLayout>
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                  android:orientation="horizontal"
+                  android:layout_width="fill_parent"
+                  android:layout_height="wrap_content"
+            >
+        <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="Password:"
+                android:minWidth="70dp"
+                />
+        <EditText android:id="@+id/password"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:singleLine="true"
+                  android:password="true"
+                  android:textSize="16sp"
+                  android:autoText="false"
+                  android:minWidth="250dp"
+                  android:capitalize="none"
+                  android:scrollHorizontally="true"/>
+    </LinearLayout>
+
+    <Button android:id="@+id/ok"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:text="OK">
+        <requestFocus/>
+    </Button>
+</LinearLayout>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/res/menu/account.xml	Sun Mar 15 18:59:32 2009 +0100
@@ -0,0 +1,6 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+	<item android:id="@+id/account_edit"
+			android:title="Create or Edit Account" />
+	<item android:id="@+id/account_about"
+		android:title="About Beem" />
+</menu>
\ No newline at end of file
--- a/src/com/beem/project/beem/Beem.java	Sat Mar 14 23:36:04 2009 +0100
+++ b/src/com/beem/project/beem/Beem.java	Sun Mar 15 18:59:32 2009 +0100
@@ -1,16 +1,55 @@
 package com.beem.project.beem;
 
 import android.app.Activity;
+import android.content.SharedPreferences;
 import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.widget.EditText;
 
-public class Beem extends Activity
-{
-    /** Called when the activity is first created. */
+public class Beem extends Activity {
+    public static final String jabberSettings = "Beem";
+    private SharedPreferences mSettings;
+    /** 
+     * Called when the activity is first created. */
     @Override
-    public void onCreate(Bundle savedInstanceState)
-    {
+    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
-        
+
+        mSettings = getSharedPreferences(jabberSettings, MODE_PRIVATE);
+        showJID();
+    }
+    
+
+    public boolean onCreateOptionsMenu(Menu menu) {
+        super.onCreateOptionsMenu(menu);
+        MenuInflater inflater = getMenuInflater();
+        inflater.inflate(R.menu.account, menu);
+        return true;
     }
+
+    public boolean onOptionsItemSelected(MenuItem item) {
+        SettingsDialog Dialog = new SettingsDialog(this, mSettings);
+        switch (item.getItemId()) {        
+        case R.id.account_edit:
+            Dialog.show();
+            return true;
+        case R.id.account_about:
+            return true;
+        }
+        return false;
+    }
+
+    public void showJID() {
+        EditText ejid = (EditText) findViewById(R.id.jid);
+        String jid = mSettings.getString("login", "") +
+            "@" +  mSettings.getString("host", "") ;
+        if (jid.length() == 1)
+            jid = "Enter Jabber ID / Create New Account";
+        ejid.setText(jid);
+    }
+    
+
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/beem/project/beem/SettingsDialog.java	Sun Mar 15 18:59:32 2009 +0100
@@ -0,0 +1,64 @@
+package com.beem.project.beem;
+
+import android.app.Dialog;
+import android.content.SharedPreferences;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+
+/**
+ *
+ */
+public class SettingsDialog extends Dialog implements android.view.View.OnClickListener {
+
+    private Beem mbeem;
+    private SharedPreferences mSettings;
+    public SettingsDialog(Beem beem, SharedPreferences settings) {
+        super(beem);
+        this.mbeem = beem;
+        this.mSettings = settings;
+    }
+
+    protected void onStart() {
+        super.onStart();
+        setContentView(R.layout.settings);
+        getWindow().setFlags(4, 4);
+        setTitle("Jabber Account Settings");
+        showSettings();
+        Button ok = (Button) findViewById(R.id.ok);
+        ok.setOnClickListener(this);
+    }
+    
+    public void onClick(View v) {
+        SharedPreferences.Editor editor = mSettings.edit();
+        editor.putString("host", getText(R.id.host));
+        editor.putString("port", getText(R.id.port));
+        editor.putString("login", getText(R.id.userid));
+        editor.putString("password", getText(R.id.password));
+        editor.commit();
+        
+        this.mbeem.showJID();
+        dismiss();
+    }
+    
+    private void showSettings() {
+        String tmp;
+        EditText eHost = (EditText) findViewById(R.id.host);
+        if ((tmp = mSettings.getString("host","")) != "")
+            eHost.setText(tmp);
+        EditText ePort = (EditText) findViewById(R.id.port);
+        if ((tmp = mSettings.getString("port","")) != "")
+            ePort.setText(tmp);
+        EditText eLogin = (EditText) findViewById(R.id.userid);
+        if ((tmp = mSettings.getString("login","")) != "")
+            eLogin.setText(tmp);
+        EditText ePwd = (EditText) findViewById(R.id.password);
+        if ((tmp = mSettings.getString("password","")) != "")
+            ePwd.setText(tmp);
+    }
+    
+    private String getText(int id) {
+        EditText widget = (EditText) this.findViewById(id);
+        return widget.getText().toString();
+    }
+}