From 7f4703ef17dc7715353f5adea5675bc39baa58b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Sch=C3=A4ttgen?= Date: Tue, 27 Nov 2018 20:55:55 +0100 Subject: [PATCH] Remove ImagePicker library --- app/build.gradle | 1 - .../me/impy/aegis/ui/EditEntryActivity.java | 52 +++++++++---------- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 43815ebf..e29c4150 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -41,7 +41,6 @@ dependencies { implementation 'com.getbase:floatingactionbutton:1.10.1' implementation 'com.github.apl-devs:appintro:v4.2.2' implementation 'com.github.avito-tech:krop:3e65e12' - implementation 'com.github.esafirm.android-image-picker:imagepicker:1.13.0' implementation 'com.madgag.spongycastle:core:1.58.0.0' implementation 'com.mattprecious.swirl:swirl:1.0.0' implementation 'de.hdodenhof:circleimageview:2.2.0' diff --git a/app/src/main/java/me/impy/aegis/ui/EditEntryActivity.java b/app/src/main/java/me/impy/aegis/ui/EditEntryActivity.java index eaaaf41f..4e6dc703 100644 --- a/app/src/main/java/me/impy/aegis/ui/EditEntryActivity.java +++ b/app/src/main/java/me/impy/aegis/ui/EditEntryActivity.java @@ -7,6 +7,7 @@ import android.graphics.Canvas; import android.graphics.Color; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; +import android.net.Uri; import android.os.Bundle; import androidx.annotation.ArrayRes; import androidx.appcompat.app.ActionBar; @@ -34,7 +35,9 @@ import com.esafirm.imagepicker.model.Image; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.concurrent.atomic.AtomicReference; @@ -54,6 +57,8 @@ import me.impy.aegis.otp.OtpInfoException; import me.impy.aegis.otp.TotpInfo; public class EditEntryActivity extends AegisActivity { + private static final int PICK_IMAGE_REQUEST = 0; + private boolean _isNew = false; private DatabaseEntry _origEntry; private boolean _hasCustomIcon = false; @@ -190,29 +195,16 @@ public class EditEntryActivity extends AegisActivity { } }); - ImagePicker imagePicker = ImagePicker.create(this) - .returnMode(ReturnMode.ALL) - .folderMode(true) - .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(); - } - }); + _iconView.setOnClickListener(v -> { + Intent galleryIntent = new Intent(Intent.ACTION_PICK); + galleryIntent.setDataAndType(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI, "image/*"); - _advancedSettingsHeader.setOnClickListener(v -> { - openAdvancedSettings(); + Intent chooserIntent = Intent.createChooser(galleryIntent, "Select photo"); + startActivityForResult(Intent.createChooser(chooserIntent, "Select photo"), PICK_IMAGE_REQUEST); }); + _advancedSettingsHeader.setOnClickListener(v -> openAdvancedSettings()); + // automatically open advanced settings since 'Secret' is required. if (_isNew) { openAdvancedSettings(); @@ -355,12 +347,20 @@ public class EditEntryActivity extends AegisActivity { @Override protected void onActivityResult(int requestCode, final int resultCode, Intent data) { - if (ImagePicker.shouldHandle(requestCode, resultCode, data)) { - Image image = ImagePicker.getFirstImageOrNull(data); - BitmapFactory.Options bmOptions = new BitmapFactory.Options(); - Bitmap bitmap = BitmapFactory.decodeFile(image.getPath(),bmOptions); - _kropView.setBitmap(bitmap); - _kropView.setVisibility(View.VISIBLE); + if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) { + Uri inputFile = (data.getData()); + InputStream inputStream; + Bitmap bitmap; + try { + 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() { @Override