diff options
| -rw-r--r-- | res/values-de/strings.xml | 2 | ||||
| -rw-r--r-- | res/values/strings.xml | 2 | ||||
| -rw-r--r-- | src/eu/deki/paste/MainActivity.java | 34 |
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 |
