diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2013-01-09 16:22:09 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2013-01-09 16:22:09 +0100 |
| commit | 671039bb92543ed36109dacfa264d39e16a77523 (patch) | |
| tree | e525669a0810ea48ed43b65fcd775775d0a19900 /src/eu/deki | |
| parent | 38d2a3465bc4b063292c61ef2ba55c5c8bf4b2d2 (diff) | |
Diffstat (limited to 'src/eu/deki')
| -rw-r--r-- | src/eu/deki/paste/DekiEuPaste.java | 29 | ||||
| -rw-r--r-- | src/eu/deki/paste/MainActivity.java | 18 | ||||
| -rw-r--r-- | src/eu/deki/paste/PasteTask.java | 14 |
3 files changed, 54 insertions, 7 deletions
diff --git a/src/eu/deki/paste/DekiEuPaste.java b/src/eu/deki/paste/DekiEuPaste.java index 234abcb..563fefe 100644 --- a/src/eu/deki/paste/DekiEuPaste.java +++ b/src/eu/deki/paste/DekiEuPaste.java @@ -19,17 +19,36 @@ public class DekiEuPaste extends PasteTask { private static final String pasteUrl = "https://deki.eu/paste/new"; + private static int[] expiration_ids = { + R.string.expiration_hour, + R.string.expiration_day, + R.string.expiration_week + }; + private static String[] expiration_values = { "1hour", "1day", "1week" }; + public DekiEuPaste(Context parent) { super(parent); } + // map user visible expiration text from UI to expiration values for paste service + private String expirationValue(String expirationText) + { + for(int i=0; i<expiration_values.length; i++) + if(expirationText.equals(parentActivity.getText(expiration_ids[i]))) + return expiration_values[i]; + + // no match found? + return ""; + } + + @Override - protected String paste(String title, String content, String delay) throws IOException + protected String paste(String title, String content, String expiration) throws IOException { System.setProperty("http.keepAlive", "false"); - String request = "title=" + URLEncoder.encode(title) + "&content=" + URLEncoder.encode(content) + "&expiration=" + URLEncoder.encode(delay); + String request = "title=" + URLEncoder.encode(title) + "&content=" + URLEncoder.encode(content) + "&expiration=" + URLEncoder.encode(expirationValue(expiration)); URL url; try { @@ -77,5 +96,11 @@ public class DekiEuPaste extends PasteTask return redirectUrl; } + + @Override + protected int[] getExpirationIds() + { + return expiration_ids; + } } diff --git a/src/eu/deki/paste/MainActivity.java b/src/eu/deki/paste/MainActivity.java index bc2ffa8..688c305 100644 --- a/src/eu/deki/paste/MainActivity.java +++ b/src/eu/deki/paste/MainActivity.java @@ -18,12 +18,13 @@ import java.io.InputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.FileNotFoundException; +import eu.deki.paste.PasteTask; import eu.deki.paste.DekiEuPaste; /* * TODO: - * - change supported expiration dates based on selected paste service * - menu: open browser with url? + * - more paste services */ public class MainActivity extends Activity @@ -31,6 +32,7 @@ public class MainActivity extends Activity private EditText titleText; private EditText contentText; private Spinner expirationSpinner; + private PasteTask pasteTask; @Override public void onCreate(Bundle savedInstanceState) @@ -42,8 +44,9 @@ public class MainActivity extends Activity contentText = (EditText) findViewById(R.id.paste_content); expirationSpinner = (Spinner) findViewById(R.id.expiration); - ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.expiration_array, android.R.layout.simple_spinner_item); - //adapter.setDropDownViewResource(android.R.layout.simple_spinner_item); + pasteTask = new DekiEuPaste(this); + + ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, pasteTask.getExpirationTimes()); expirationSpinner.setAdapter(adapter); Intent intent = getIntent(); @@ -110,7 +113,14 @@ public class MainActivity extends Activity { // TODO: check network status? - new DekiEuPaste(this).execute(titleText.getText().toString(), contentText.getText().toString(), "1hour"); + String title = titleText.getText().toString(); + String content = contentText.getText().toString(); + String expiration = expirationSpinner.getSelectedItem().toString(); + + pasteTask.execute(title, content, expiration); + + // new instance, because task must only be executed once + pasteTask = new DekiEuPaste(this); } } diff --git a/src/eu/deki/paste/PasteTask.java b/src/eu/deki/paste/PasteTask.java index 9e285a5..863a4f4 100644 --- a/src/eu/deki/paste/PasteTask.java +++ b/src/eu/deki/paste/PasteTask.java @@ -85,6 +85,18 @@ public abstract class PasteTask extends AsyncTask<String, Void, String> builder.create().show(); } - protected abstract String paste(String title, String content, String delay) throws IOException; + public String[] getExpirationTimes() + { + int[] expiration_ids = getExpirationIds(); + String[] exp = new String[expiration_ids.length]; + for(int i=0; i<expiration_ids.length; i++) + exp[i] = parentActivity.getString(expiration_ids[i]); + + return exp; + } + + protected abstract int[] getExpirationIds(); + + protected abstract String paste(String title, String content, String expiration) throws IOException; } |
