package com.goshenapps.clipboard.ActionPack;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.net.Uri;
import android.os.Environment;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import com.flask.colorpicker.ColorPickerView;
import com.flask.colorpicker.OnColorSelectedListener;
import com.flask.colorpicker.builder.ColorPickerClickListener;
import com.flask.colorpicker.builder.ColorPickerDialogBuilder;
import com.goshenapps.clipboard.R;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Random;
public class ShotTaker extends AppCompatActivity {
SeekBar seekBar;
TextView textView;
String mString;
File file;
CardView cardView;
LinearLayout canvases;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shot_taker);
Initialize();
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
textView.setTextSize(i);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
public void Initialize()
{
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle(R.string.toolbar_screenshot);
toolbar.setTitleTextColor(Color.parseColor("#FFFFFF"));
if (toolbar != null) {
setSupportActionBar(toolbar);
}
Intent intent = getIntent();
mString = intent.getStringExtra("fishbowl");
cardView = (CardView) findViewById(R.id.cardoso);
canvases = (LinearLayout) findViewById(R.id.canvas);
seekBar = (SeekBar) findViewById(R.id.seekBar1);
seekBar.setMax(30);
textView = (TextView) findViewById(R.id.textviewer);
textView.setText(""+mString);
}
private void ShareImage(Bitmap finalBitmap) {
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/clipboard_images");
myDir.mkdirs();
Random generator = new Random();
int n = 10000;
n = generator.nextInt(n);
String fname = "Image-"+ n +".jpg";
file = new File(myDir, fname);
if (file.exists ()) file.delete ();
try {
FileOutputStream out = new FileOutputStream(file);
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
scanMedia(file.getAbsolutePath());
Uri uri = Uri.parse("file://"+file.getAbsolutePath());
Intent share = new Intent(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_STREAM, uri);
share.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
share.setType("image/*");
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(share, "Share screenshot"));
} catch (Exception e) {
e.printStackTrace();
}
}
private void SaveImage(Bitmap finalBitmap) {
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/clipboard_images");
myDir.mkdirs();
Random generator = new Random();
int n = 10000;
n = generator.nextInt(n);
String fname = "Image-"+ n +".jpg";
file = new File(myDir, fname);
if (file.exists ()) file.delete ();
try {
FileOutputStream out = new FileOutputStream(file);
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
scanMedia(file.getAbsolutePath());
snackTime(getString(R.string.snackText));
} catch (Exception e) {
e.printStackTrace();
}
}
public Bitmap screenShot() {
Bitmap bitmap = Bitmap.createBitmap(canvases.getWidth(),
canvases.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvases.draw(canvas);
return bitmap;
}
public void Snap(View view)
{
Bitmap bitmaps = null;
bitmaps = screenShot();
SaveImage(bitmaps);
}
public void ColoMan(final String strings)
{
ColorPickerDialogBuilder
.with(ShotTaker.this)
.setTitle("Choose color")
.wheelType(ColorPickerView.WHEEL_TYPE.FLOWER)
.density(12)
.setOnColorSelectedListener(new OnColorSelectedListener() {
@Override
public void onColorSelected(int selectedColor) {
}
})
.setPositiveButton("ok", new ColorPickerClickListener() {
@Override
public void onClick(DialogInterface dialog, int selectedColor, Integer[] allColors) {
if (strings.matches("fonts")){
textView.setTextColor(selectedColor);
}else {
cardView.setCardBackgroundColor(selectedColor);
}
}
})
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.build()
.show();
}
public void textPaint(View view)
{
ColoMan("fonts");
}
public void cardPaint(View view)
{
ColoMan("");
}
public void snackTime(String string)
{
View parentLayout = findViewById(R.id.shot_taker);
Snackbar snackbar;
snackbar = Snackbar.make(parentLayout, ""+string, Snackbar.LENGTH_LONG);
snackbar.getView().setBackgroundColor(Color.parseColor("#2E7D32"));
snackbar.show();
}
public void Shares(View view)
{
Bitmap bitmaps = null;
bitmaps = screenShot();
ShareImage(bitmaps);
}
private void scanMedia(String path) {
File file = new File(path);
Uri uri = Uri.fromFile(file);
Intent scanFileIntent = new Intent(
Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
sendBroadcast(scanFileIntent);
snackTime(getString(R.string.snackText));
}
}