diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2012-12-28 03:31:03 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2012-12-28 03:31:03 +0100 |
| commit | 58a3c87671c2b3af270d5db876a047e906c2b556 (patch) | |
| tree | 40098fdd4cabe72247f60e811c20d99c798834c9 | |
| parent | 8a2d76c4903687b3f9199c125c2e945b9285d1a3 (diff) | |
get correct paste address; display error/success alert dialogs
| -rw-r--r-- | res/values-de/strings.xml | 5 | ||||
| -rw-r--r-- | res/values/strings.xml | 5 | ||||
| -rw-r--r-- | src/eu/deki/paste/DekiEuPaste.java | 4 | ||||
| -rw-r--r-- | src/eu/deki/paste/MainActivity.java | 1 | ||||
| -rw-r--r-- | src/eu/deki/paste/PasteTask.java | 29 |
5 files changed, 36 insertions, 8 deletions
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index e340ecf..18f4f13 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -4,4 +4,9 @@ <string name="paste_title">Titel</string> <string name="paste_button">Abschicken!</string> <string name="expiration_prompt">Ablaufdatum auswählen</string> + <string name="pasteSuccessTitle">Erfolgreich gesendet</string> + <string name="pasteSuccessMessage">Dein Text is erreichbar unter:\n%1$s\nDie Adresse wurde in die Zwischenablage kopiert.</string> + <string name="pasteFailTitle">Senden fehlgeschlagen</string> + <string name="pasteFailMessage">Dein Text konnte nicht abgeschickt werden.\nGrund:\n%1$s</string> + <string name="contentTooShort">Inhalt ist zu kurz.</string> </resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index 2db3adc..b2a896d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4,4 +4,9 @@ <string name="paste_title">Title</string> <string name="paste_button">Paste it!</string> <string name="expiration_prompt">Choose an expiration time</string> + <string name="pasteSuccessTitle">Paste successful</string> + <string name="pasteSuccessMessage">Your paste is available on:\n%1$s\nThe URL has been copied to the clipboard.</string> + <string name="pasteFailTitle">Paste failed</string> + <string name="pasteFailMessage">Your paste could not be submitted.\nReason:\n%1$s</string> + <string name="contentTooShort">Content is too short.</string> </resources> diff --git a/src/eu/deki/paste/DekiEuPaste.java b/src/eu/deki/paste/DekiEuPaste.java index a0d0ba9..234abcb 100644 --- a/src/eu/deki/paste/DekiEuPaste.java +++ b/src/eu/deki/paste/DekiEuPaste.java @@ -64,14 +64,14 @@ public class DekiEuPaste extends PasteTask HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); conn.setSSLSocketFactory(context.getSocketFactory()); conn.setDoOutput(true); + conn.setInstanceFollowRedirects(false); conn.setFixedLengthStreamingMode(request.getBytes().length); OutputStream out = new BufferedOutputStream(conn.getOutputStream()); out.write(request.getBytes()); out.close(); - conn.getHeaderFields(); - String redirectUrl = conn.getURL().toString(); + String redirectUrl = conn.getHeaderField("Location"); conn.disconnect(); diff --git a/src/eu/deki/paste/MainActivity.java b/src/eu/deki/paste/MainActivity.java index 4f721b7..80ab0b8 100644 --- a/src/eu/deki/paste/MainActivity.java +++ b/src/eu/deki/paste/MainActivity.java @@ -6,7 +6,6 @@ import android.widget.Spinner; import android.widget.EditText; import android.widget.ArrayAdapter; import android.view.View; -import eu.deki.paste.PasteTask; import eu.deki.paste.DekiEuPaste; public class MainActivity extends Activity diff --git a/src/eu/deki/paste/PasteTask.java b/src/eu/deki/paste/PasteTask.java index 29b5c32..4a634e5 100644 --- a/src/eu/deki/paste/PasteTask.java +++ b/src/eu/deki/paste/PasteTask.java @@ -2,13 +2,14 @@ package eu.deki.paste; import java.io.IOException; import android.os.AsyncTask; -import android.widget.Toast; import android.content.Context; +import android.app.AlertDialog; +import android.app.AlertDialog.Builder; import android.util.Log; public abstract class PasteTask extends AsyncTask<String, Void, String> { - private String errorMessage = null; + private String errorMessage = "Fail"; protected Context parentActivity = null; public PasteTask(Context parent) @@ -29,9 +30,18 @@ public abstract class PasteTask extends AsyncTask<String, Void, String> content = params[1]; expiration = params[2]; + if(content.length() == 0) + { + errorMessage = parentActivity.getResources().getString(R.string.contentTooShort); + cancel(false); + return null; + } + try { result = paste(title, content, expiration); + if(result == null) + cancel(false); } catch(IOException ex) { @@ -47,14 +57,23 @@ public abstract class PasteTask extends AsyncTask<String, Void, String> @Override protected void onPostExecute(String result) { - + AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity); + String message = String.format(parentActivity.getResources().getString(R.string.pasteSuccessMessage), result); + builder.setMessage(message); + builder.setTitle(R.string.pasteSuccessTitle); + builder.setPositiveButton("OK", null); + builder.create().show(); } @Override protected void onCancelled() { - //Toast toast = Toast.makeText(parentActivity.getApplicationContext(), errorMessage, Toast.LENGTH_SHORT); - //toast.show(); + AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity); + String message = String.format(parentActivity.getResources().getString(R.string.pasteFailMessage), errorMessage); + builder.setMessage(message); + builder.setTitle(R.string.pasteFailTitle); + builder.setPositiveButton("OK", null); + builder.create().show(); } protected abstract String paste(String title, String content, String delay) throws IOException; |
