diff --git a/demo/src/main/AndroidManifest.xml b/demo/src/main/AndroidManifest.xml
index 77976f9a..e7e1162e 100644
--- a/demo/src/main/AndroidManifest.xml
+++ b/demo/src/main/AndroidManifest.xml
@@ -15,7 +15,6 @@
@@ -24,9 +23,23 @@
-
+
+
+
-
+
+
+
diff --git a/demo/src/main/java/com/otaliastudios/cameraview/demo/PicturePreviewActivity.java b/demo/src/main/java/com/otaliastudios/cameraview/demo/PicturePreviewActivity.java
index 0c0b803c..18321413 100644
--- a/demo/src/main/java/com/otaliastudios/cameraview/demo/PicturePreviewActivity.java
+++ b/demo/src/main/java/com/otaliastudios/cameraview/demo/PicturePreviewActivity.java
@@ -1,23 +1,36 @@
package com.otaliastudios.cameraview.demo;
import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
+import android.net.Uri;
import android.os.Bundle;
import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.FileProvider;
import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.Toast;
+import com.otaliastudios.cameraview.CameraUtils;
+import com.otaliastudios.cameraview.FileCallback;
import com.otaliastudios.cameraview.size.AspectRatio;
import com.otaliastudios.cameraview.BitmapCallback;
import com.otaliastudios.cameraview.PictureResult;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
-public class PicturePreviewActivity extends Activity {
+
+public class PicturePreviewActivity extends AppCompatActivity {
private static PictureResult picture;
@@ -78,4 +91,46 @@ public class PicturePreviewActivity extends Activity {
setPictureResult(null);
}
}
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.share, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ if (item.getItemId() == R.id.share) {
+ Toast.makeText(this, "Sharing...", Toast.LENGTH_SHORT).show();
+ String extension;
+ switch (picture.getFormat()) {
+ case JPEG: extension = "jpg"; break;
+ case DNG: extension = "dng"; break;
+ default: throw new RuntimeException("Unknown format.");
+ }
+ File file = new File(getFilesDir(), "picture." + extension);
+ CameraUtils.writeToFile(picture.getData(), file, new FileCallback() {
+ @Override
+ public void onFileReady(@Nullable File file) {
+ if (file != null) {
+ Context context = PicturePreviewActivity.this;
+ Intent intent = new Intent(Intent.ACTION_SEND);
+ intent.setType("image/*");
+ Uri uri = FileProvider.getUriForFile(context,
+ context.getPackageName() + ".provider",
+ file);
+ intent.putExtra(Intent.EXTRA_STREAM, uri);
+ intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ startActivity(intent);
+ } else {
+ Toast.makeText(PicturePreviewActivity.this,
+ "Error while writing file.",
+ Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
}
diff --git a/demo/src/main/java/com/otaliastudios/cameraview/demo/VideoPreviewActivity.java b/demo/src/main/java/com/otaliastudios/cameraview/demo/VideoPreviewActivity.java
index 1d26fcc9..a37192cc 100644
--- a/demo/src/main/java/com/otaliastudios/cameraview/demo/VideoPreviewActivity.java
+++ b/demo/src/main/java/com/otaliastudios/cameraview/demo/VideoPreviewActivity.java
@@ -1,22 +1,33 @@
package com.otaliastudios.cameraview.demo;
import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.FileProvider;
import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.MediaController;
+import android.widget.Toast;
import android.widget.VideoView;
+import com.otaliastudios.cameraview.CameraUtils;
+import com.otaliastudios.cameraview.FileCallback;
import com.otaliastudios.cameraview.VideoResult;
import com.otaliastudios.cameraview.size.AspectRatio;
+import java.io.File;
-public class VideoPreviewActivity extends Activity {
+
+public class VideoPreviewActivity extends AppCompatActivity {
private VideoView videoView;
@@ -97,4 +108,27 @@ public class VideoPreviewActivity extends Activity {
setVideoResult(null);
}
}
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.share, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ if (item.getItemId() == R.id.share) {
+ Toast.makeText(this, "Sharing...", Toast.LENGTH_SHORT).show();
+ Intent intent = new Intent(Intent.ACTION_SEND);
+ intent.setType("video/*");
+ Uri uri = FileProvider.getUriForFile(this,
+ this.getPackageName() + ".provider",
+ videoResult.getFile());
+ intent.putExtra(Intent.EXTRA_STREAM, uri);
+ intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ startActivity(intent);
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
}
diff --git a/demo/src/main/res/drawable/ic_share.xml b/demo/src/main/res/drawable/ic_share.xml
new file mode 100644
index 00000000..f37b0d49
--- /dev/null
+++ b/demo/src/main/res/drawable/ic_share.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/demo/src/main/res/menu/share.xml b/demo/src/main/res/menu/share.xml
new file mode 100644
index 00000000..bb3236e7
--- /dev/null
+++ b/demo/src/main/res/menu/share.xml
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/demo/src/main/res/values/styles.xml b/demo/src/main/res/values/styles.xml
index d1cf4963..5885930d 100644
--- a/demo/src/main/res/values/styles.xml
+++ b/demo/src/main/res/values/styles.xml
@@ -8,7 +8,4 @@
- @color/colorAccent
-
-
-
diff --git a/demo/src/main/res/xml/filepaths.xml b/demo/src/main/res/xml/filepaths.xml
new file mode 100644
index 00000000..ce0e29ca
--- /dev/null
+++ b/demo/src/main/res/xml/filepaths.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file