summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--res/values-de/strings.xml2
-rw-r--r--res/values/strings.xml2
-rw-r--r--src/eu/deki/paste/MainActivity.java34
3 files changed, 38 insertions, 0 deletions
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 434ed42..5601d0b 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -10,4 +10,6 @@
<string name="pasteFailMessage">Dein Text konnte nicht abgeschickt werden.\nGrund:\n%1$s</string>
<string name="contentTooShort">Inhalt ist zu kurz.</string>
<string name="clear_text">Text löschen</string>
+ <string name="noPermissionTitle">Keine Berechtigung</string>
+ <string name="noPermissionContent">Die Anwendung hat keine Zugriffsrechte auf die gesendeten Daten.\n\n%1$s</string>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5a5fa01..c3e3acd 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -10,4 +10,6 @@
<string name="pasteFailMessage">Your paste could not be submitted.\nReason:\n%1$s</string>
<string name="contentTooShort">Content is too short.</string>
<string name="clear_text">Clear text</string>
+ <string name="noPermissionTitle">Permission denied</string>
+ <string name="noPermissionContent">App has no permission to access sent data.\n\n%1$s</string>
</resources>
diff --git a/src/eu/deki/paste/MainActivity.java b/src/eu/deki/paste/MainActivity.java
index effd55c..bc2ffa8 100644
--- a/src/eu/deki/paste/MainActivity.java
+++ b/src/eu/deki/paste/MainActivity.java
@@ -1,6 +1,8 @@
package eu.deki.paste;
import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.AlertDialog.Builder;
import android.os.Bundle;
import android.widget.Spinner;
import android.widget.EditText;
@@ -10,6 +12,12 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;
import android.content.Intent;
+import android.content.ContentResolver;
+import android.net.Uri;
+import java.io.InputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.FileNotFoundException;
import eu.deki.paste.DekiEuPaste;
/*
@@ -41,6 +49,32 @@ public class MainActivity extends Activity
Intent intent = getIntent();
if(intent.hasExtra(Intent.EXTRA_TEXT))
contentText.setText(intent.getStringExtra(Intent.EXTRA_TEXT));
+
+ if(intent.hasExtra(Intent.EXTRA_STREAM))
+ {
+ try {
+ Uri uri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
+ ContentResolver cr = getContentResolver();
+ InputStream is = cr.openInputStream(uri);
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ byte[] buffer = new byte[1024];
+ int n = 0;
+ while((n = is.read(buffer, 0, 1024)) != -1)
+ output.write(buffer, 0, n);
+ output.flush();
+ contentText.setText(output.toString());
+ } catch(FileNotFoundException ex) {
+ } catch(IOException ex) {
+ } catch(SecurityException ex) {
+ // no permissions to read data (e.g. contacts/vcards)
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ String message = String.format(getResources().getString(R.string.noPermissionContent), ex.getLocalizedMessage());
+ builder.setMessage(message);
+ builder.setTitle(R.string.noPermissionTitle);
+ builder.setPositiveButton("OK", null);
+ builder.create().show();
+ }
+ }
}
@Override