|
|
@ -7,6 +7,7 @@ import android.graphics.Canvas;
|
|
|
|
import android.graphics.Color;
|
|
|
|
import android.graphics.Color;
|
|
|
|
import android.graphics.drawable.BitmapDrawable;
|
|
|
|
import android.graphics.drawable.BitmapDrawable;
|
|
|
|
import android.graphics.drawable.Drawable;
|
|
|
|
import android.graphics.drawable.Drawable;
|
|
|
|
|
|
|
|
import android.net.Uri;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import androidx.annotation.ArrayRes;
|
|
|
|
import androidx.annotation.ArrayRes;
|
|
|
|
import androidx.appcompat.app.ActionBar;
|
|
|
|
import androidx.appcompat.app.ActionBar;
|
|
|
@ -34,7 +35,9 @@ import com.esafirm.imagepicker.model.Image;
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
|
|
|
|
|
import java.io.FileNotFoundException;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
import java.io.ObjectInputStream;
|
|
|
|
import java.io.ObjectInputStream;
|
|
|
|
import java.io.ObjectOutputStream;
|
|
|
|
import java.io.ObjectOutputStream;
|
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
@ -54,6 +57,8 @@ import me.impy.aegis.otp.OtpInfoException;
|
|
|
|
import me.impy.aegis.otp.TotpInfo;
|
|
|
|
import me.impy.aegis.otp.TotpInfo;
|
|
|
|
|
|
|
|
|
|
|
|
public class EditEntryActivity extends AegisActivity {
|
|
|
|
public class EditEntryActivity extends AegisActivity {
|
|
|
|
|
|
|
|
private static final int PICK_IMAGE_REQUEST = 0;
|
|
|
|
|
|
|
|
|
|
|
|
private boolean _isNew = false;
|
|
|
|
private boolean _isNew = false;
|
|
|
|
private DatabaseEntry _origEntry;
|
|
|
|
private DatabaseEntry _origEntry;
|
|
|
|
private boolean _hasCustomIcon = false;
|
|
|
|
private boolean _hasCustomIcon = false;
|
|
|
@ -190,29 +195,16 @@ public class EditEntryActivity extends AegisActivity {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
ImagePicker imagePicker = ImagePicker.create(this)
|
|
|
|
_iconView.setOnClickListener(v -> {
|
|
|
|
.returnMode(ReturnMode.ALL)
|
|
|
|
Intent galleryIntent = new Intent(Intent.ACTION_PICK);
|
|
|
|
.folderMode(true)
|
|
|
|
galleryIntent.setDataAndType(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI, "image/*");
|
|
|
|
.toolbarFolderTitle(getString(R.string.folder))
|
|
|
|
|
|
|
|
.toolbarImageTitle(getString(R.string.tap_to_select))
|
|
|
|
|
|
|
|
.toolbarArrowColor(Color.BLACK)
|
|
|
|
|
|
|
|
.single()
|
|
|
|
|
|
|
|
.showCamera(false)
|
|
|
|
|
|
|
|
.imageDirectory("Camera");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// open ImagePicker when clicking on the icon
|
|
|
|
|
|
|
|
_iconView.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
|
|
|
// start image picker activity with request code
|
|
|
|
|
|
|
|
imagePicker.start();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_advancedSettingsHeader.setOnClickListener(v -> {
|
|
|
|
Intent chooserIntent = Intent.createChooser(galleryIntent, "Select photo");
|
|
|
|
openAdvancedSettings();
|
|
|
|
startActivityForResult(Intent.createChooser(chooserIntent, "Select photo"), PICK_IMAGE_REQUEST);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_advancedSettingsHeader.setOnClickListener(v -> openAdvancedSettings());
|
|
|
|
|
|
|
|
|
|
|
|
// automatically open advanced settings since 'Secret' is required.
|
|
|
|
// automatically open advanced settings since 'Secret' is required.
|
|
|
|
if (_isNew) {
|
|
|
|
if (_isNew) {
|
|
|
|
openAdvancedSettings();
|
|
|
|
openAdvancedSettings();
|
|
|
@ -355,12 +347,20 @@ public class EditEntryActivity extends AegisActivity {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
protected void onActivityResult(int requestCode, final int resultCode, Intent data) {
|
|
|
|
protected void onActivityResult(int requestCode, final int resultCode, Intent data) {
|
|
|
|
if (ImagePicker.shouldHandle(requestCode, resultCode, data)) {
|
|
|
|
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
|
|
|
|
Image image = ImagePicker.getFirstImageOrNull(data);
|
|
|
|
Uri inputFile = (data.getData());
|
|
|
|
BitmapFactory.Options bmOptions = new BitmapFactory.Options();
|
|
|
|
InputStream inputStream;
|
|
|
|
Bitmap bitmap = BitmapFactory.decodeFile(image.getPath(),bmOptions);
|
|
|
|
Bitmap bitmap;
|
|
|
|
_kropView.setBitmap(bitmap);
|
|
|
|
try {
|
|
|
|
_kropView.setVisibility(View.VISIBLE);
|
|
|
|
inputStream = getContentResolver().openInputStream(inputFile);
|
|
|
|
|
|
|
|
BitmapFactory.Options bmOptions = new BitmapFactory.Options();
|
|
|
|
|
|
|
|
bitmap = BitmapFactory.decodeStream(inputStream, null, bmOptions);
|
|
|
|
|
|
|
|
_kropView.setBitmap(bitmap);
|
|
|
|
|
|
|
|
_kropView.setVisibility(View.VISIBLE);
|
|
|
|
|
|
|
|
} catch (FileNotFoundException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_saveImageButton.setOnClickListener(new View.OnClickListener() {
|
|
|
|
_saveImageButton.setOnClickListener(new View.OnClickListener() {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|