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:
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;
}
}