Add option to see RAW result through share option

pull/691/head
Mattia Iavarone 6 years ago
parent 37178878a7
commit 818bdf40a7
  1. 19
      demo/src/main/AndroidManifest.xml
  2. 57
      demo/src/main/java/com/otaliastudios/cameraview/demo/PicturePreviewActivity.java
  3. 36
      demo/src/main/java/com/otaliastudios/cameraview/demo/VideoPreviewActivity.java
  4. 5
      demo/src/main/res/drawable/ic_share.xml
  5. 8
      demo/src/main/res/menu/share.xml
  6. 3
      demo/src/main/res/values/styles.xml
  7. 4
      demo/src/main/res/xml/filepaths.xml

@ -15,7 +15,6 @@
<activity
android:name=".CameraActivity"
android:theme="@style/Theme.MainActivity"
android:configChanges="screenLayout|keyboardHidden"
android:hardwareAccelerated="true">
<intent-filter>
@ -24,9 +23,23 @@
</intent-filter>
</activity>
<activity android:name=".PicturePreviewActivity" />
<activity
android:name=".PicturePreviewActivity"
android:label="Picture Preview" />
<activity
android:name=".VideoPreviewActivity"
android:label="Video Preview" />
<activity android:name=".VideoPreviewActivity"/>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
</application>

@ -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);
}
}

@ -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);
}
}

@ -0,0 +1,5 @@
<vector android:autoMirrored="true" android:height="24dp"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFF" android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z"/>
</vector>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/share"
android:title="Share"
app:showAsAction="always"
android:icon="@drawable/ic_share"/>
</menu>

@ -8,7 +8,4 @@
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="Theme.MainActivity" parent="AppTheme"/>
<style name="Theme.PreviewActivity" parent="Theme.AppCompat.NoActionBar"/>
</resources>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<paths>
<files-path name="files" path="." />
</paths>
Loading…
Cancel
Save