android-ibc-forum

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 13965bd4067a60ca7b00300c004d43b25b37ff83
parent 8c0064a2120fd8e278c790233d95310634fe5a45
Author: Jan Dankert <devnull@localhost>
Date:   Tue,  7 Feb 2012 23:48:24 +0100

Fix: Schreiben von Nachrichten, Neu: Erzeugen neuer Nachrichten.

Diffstat:
res/menu/mailbox.xml | 8++++++++
res/menu/message.xml | 3+++
res/values/strings.xml | 3++-
src/de/mtbnews/android/MailActivity.java | 34++++++++++++++++++++++++++++++++++
src/de/mtbnews/android/MailboxActivity.java | 27+++++++++++++++++++++++++++
src/de/mtbnews/android/MessageActivity.java | 2++
src/de/mtbnews/android/ReplyMailActivity.java | 109+++++++++++++++++++++++++++++++++++++++++++------------------------------------
src/de/mtbnews/android/tapatalk/TapatalkClient.java | 8++++++--
src/de/mtbnews/android/tapatalk/wrapper/Mailbox.java | 3+--
9 files changed, 143 insertions(+), 54 deletions(-)

diff --git a/res/menu/mailbox.xml b/res/menu/mailbox.xml @@ -0,0 +1,7 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android"> + + <item android:id="@+id/menu_new_message" android:title="@string/new_message" + android:icon="@android:drawable/ic_menu_gallery"></item> + +</menu> + + \ No newline at end of file diff --git a/res/menu/message.xml b/res/menu/message.xml @@ -2,6 +2,9 @@ <item android:id="@+id/menu_reply" android:title="@string/reply" android:icon="@android:drawable/ic_menu_gallery"></item> + + <item android:id="@+id/menu_new_message" android:title="@string/new_message" + android:icon="@android:drawable/ic_menu_gallery"></item> </menu> \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml @@ -46,6 +46,7 @@ <string name="waitingforprojects">Projekte werden geladen</string> <string name="waitingfor_login">Anmeldung am Server</string> <string name="waitingfor_logout">Abmeldung</string> + <string name="waitingfor_sending">Wird gesendet</string> <string name="waitingfordelete">Löschen</string> <string name="waitingfornew">Erzeuge</string> <string name="waitingforsave">Speichern</string> @@ -65,7 +66,7 @@ <string name="areyousure">Sicher?</string> <string name="choosefile">Datei auswählen</string> <string name="chooseimage">Bild auswählen</string> - <string name="newserver">Neuer Server</string> + <string name="new_message">Neue Nachricht</string> <string name="server">Server</string> <string name="timeout">Zeitablauf</string> <string name="timeout_desc">Timeout der TCP/IP-Verbindung in Sekunden</string> diff --git a/src/de/mtbnews/android/MailActivity.java b/src/de/mtbnews/android/MailActivity.java @@ -3,12 +3,18 @@ package de.mtbnews.android; import java.io.IOException; import java.util.List; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ListAdapter; import android.widget.ListView; +import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemLongClickListener; import de.mtbnews.android.adapter.ListEntryContentAdapter; @@ -72,6 +78,34 @@ public class MailActivity extends EndlessListActivity<Message> } + + + + @Override + public boolean onCreateOptionsMenu(Menu menu) + { + super.onCreateOptionsMenu(menu); + MenuInflater mi = new MenuInflater(getApplication()); + + mi.inflate(R.menu.mailbox, menu); + + return true; + } + + public boolean onOptionsItemSelected(MenuItem item) + { + switch (item.getItemId()) + { + case R.id.menu_new_message: + Intent intent = new Intent(this, ReplyMailActivity.class); + startActivity(intent); + return true; + } + return false; + } + + + @Override protected int getTotalSize() { diff --git a/src/de/mtbnews/android/MailboxActivity.java b/src/de/mtbnews/android/MailboxActivity.java @@ -6,6 +6,9 @@ import java.util.List; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ListAdapter; @@ -74,4 +77,28 @@ public class MailboxActivity extends ListActivity }); } + + @Override + public boolean onCreateOptionsMenu(Menu menu) + { + super.onCreateOptionsMenu(menu); + MenuInflater mi = new MenuInflater(getApplication()); + + mi.inflate(R.menu.mailbox, menu); + + return true; + } + + public boolean onOptionsItemSelected(MenuItem item) + { + switch (item.getItemId()) + { + case R.id.menu_new_message: + Intent intent = new Intent(this, ReplyMailActivity.class); + startActivity(intent); + return true; + } + return false; + } + } diff --git a/src/de/mtbnews/android/MessageActivity.java b/src/de/mtbnews/android/MessageActivity.java @@ -35,6 +35,8 @@ public class MessageActivity extends Activity boxId = getIntent().getStringExtra("box_id"); messageId = getIntent().getStringExtra("message_id"); + findViewById(R.id.item_button).setVisibility(View.INVISIBLE); + new ServerAsyncTask(this, R.string.waitingforcontent) { private TapatalkClient client; diff --git a/src/de/mtbnews/android/ReplyMailActivity.java b/src/de/mtbnews/android/ReplyMailActivity.java @@ -3,7 +3,6 @@ package de.mtbnews.android; import java.io.IOException; import android.app.Activity; -import android.app.AlertDialog; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; @@ -26,73 +25,85 @@ public class ReplyMailActivity extends Activity setContentView(R.layout.post); super.onCreate(savedInstanceState); - boxId = getIntent().getStringExtra("box_id"); - messageId = getIntent().getStringExtra("message_id"); + final TextView recipient = (TextView) findViewById(R.id.recipient); + final TextView subject = (TextView) findViewById(R.id.subject); + final TextView text = (TextView) findViewById(R.id.content); - new ServerAsyncTask(this, R.string.waitingforcontent) + if (getIntent().hasExtra("box_id")) { - private Message message; - private TapatalkClient client; - @Override - protected void callServer() throws IOException + boxId = getIntent().getStringExtra("box_id"); + messageId = getIntent().getStringExtra("message_id"); + + new ServerAsyncTask(this, R.string.waitingfor_mailbox) { - client = ((IBCApplication) getApplication()) - .getTapatalkClient(); - try + private Message message; + private TapatalkClient client; + + @Override + protected void callServer() throws IOException { - message = client.getMessage(boxId, messageId); + client = ((IBCApplication) getApplication()) + .getTapatalkClient(); + try + { + message = client.getMessage(boxId, messageId); + } + catch (TapatalkException e) + { + throw new RuntimeException(e); + } } - catch (TapatalkException e) + + protected void doOnSuccess() { - throw new RuntimeException(e); - } - } + // MessageActivity.this.setTitle(feed.getTitle()); - protected void doOnSuccess() - { - // MessageActivity.this.setTitle(feed.getTitle()); + recipient.setText(message.from); - final TextView recipient = (TextView) findViewById(R.id.recipient); - recipient.setText(message.from); + // TextView name = (TextView) findViewById(R.id.item_title); + // name.setText(item.getTitle()); - // TextView name = (TextView) findViewById(R.id.item_title); - // name.setText(item.getTitle()); + subject.setText(message.subject.startsWith("Re: ") ? "" + : "Re: " + message.subject); - final TextView subject = (TextView) findViewById(R.id.subject); - subject.setText(message.subject.startsWith("Re: ") ? "" - : "Re: " + message.subject); + text.setText("[quote]" + message.getContent() + + "[/quote]\n\n"); - final TextView text = (TextView) findViewById(R.id.content); - text.setText("[quote]" + message.getContent() + "[/quote]\n\n"); + } + }.execute(); + } - Button button = (Button) findViewById(R.id.send); - button.setOnClickListener(new OnClickListener() + final Button button = (Button) findViewById(R.id.send); + button.setOnClickListener(new OnClickListener() + { + @Override + public void onClick(View v) + { + new ServerAsyncTask(ReplyMailActivity.this, + R.string.waitingfor_sending) { @Override - public void onClick(View v) + protected void callServer() throws IOException, + TapatalkException { - try - { - client.createMessage(new String[] { recipient - .getText().toString() }, subject.getText() - .toString(), text.getText().toString()); - Toast.makeText(ReplyMailActivity.this, - R.string.sent_ok, Toast.LENGTH_LONG); - ReplyMailActivity.this.finish(); - } - catch (TapatalkException e) - { - new AlertDialog.Builder(ReplyMailActivity.this) - .setTitle(R.string.sent_fail).setMessage( - e.getMessage()).show(); - } + TapatalkClient client = ((IBCApplication) getApplication()) + .getTapatalkClient(); + + client.createMessage(new String[] { recipient.getText() + .toString() }, subject.getText().toString(), + text.getText().toString()); } - }); + protected void doOnSuccess() + { + Toast.makeText(ReplyMailActivity.this, + R.string.sent_ok, Toast.LENGTH_LONG); + ReplyMailActivity.this.finish(); + } + }.execute(); } - }.execute(); + }); } - } diff --git a/src/de/mtbnews/android/tapatalk/TapatalkClient.java b/src/de/mtbnews/android/tapatalk/TapatalkClient.java @@ -38,7 +38,7 @@ public class TapatalkClient throws TapatalkException { this.loggedIn = false; - + if (TextUtils.isEmpty(username)) throw new TapatalkException("Username empty"); @@ -697,7 +697,11 @@ public class TapatalkClient final Object[] params = new Object[] { to, subject.getBytes(), content.getBytes() }; - toMap(client.callEx("create_message", params)); + final Boolean ok = (Boolean) client.callEx("create_message", params); + if (!ok) + { + throw new TapatalkException("sending message failed"); + } } catch (XMLRPCException e) { diff --git a/src/de/mtbnews/android/tapatalk/wrapper/Mailbox.java b/src/de/mtbnews/android/tapatalk/wrapper/Mailbox.java @@ -48,12 +48,11 @@ public class Mailbox implements ListEntry { return name; } - public boolean unread; @Override public boolean isUnread() { - return this.unread; + return this.countUnread > 0; } }