summaryrefslogtreecommitdiff
path: root/src/eu/deki
diff options
context:
space:
mode:
Diffstat (limited to 'src/eu/deki')
-rw-r--r--src/eu/deki/paste/DekiEuPaste.java29
-rw-r--r--src/eu/deki/paste/MainActivity.java18
-rw-r--r--src/eu/deki/paste/PasteTask.java14
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;
}