From 12d9c28d46d5c4a7a092c0dc2e35874d5a240c29 Mon Sep 17 00:00:00 2001 From: vanshikaarora Date: Sun, 3 Mar 2019 10:04:09 +0530 Subject: [PATCH 01/18] crop image activity --- app/build.gradle | 2 ++ app/proguard-rules.txt | 1 + app/src/main/AndroidManifest.xml | 2 ++ .../fr/free/nrw/commons/upload/UploadActivity.java | 14 ++++++++++++++ .../free/nrw/commons/upload/UploadPresenter.java | 5 +++++ .../fr/free/nrw/commons/upload/UploadView.java | 2 ++ .../res/layout/activity_upload_bottom_card.xml | 5 +++++ 7 files changed, 31 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index 93d43f1a6d..c238e30c6d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -91,6 +91,8 @@ dependencies { implementation 'com.daimajia.swipelayout:library:1.2.0@aar' implementation 'com.nineoldandroids:library:2.4.0' implementation files('libs/icafe-1.1-SNAPSHOT.jar') + //image crop + implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.+' } android { diff --git a/app/proguard-rules.txt b/app/proguard-rules.txt index d023294dce..ab03788bb7 100644 --- a/app/proguard-rules.txt +++ b/app/proguard-rules.txt @@ -70,3 +70,4 @@ -keep class org.acra.** { *; } -keepattributes SourceFile,LineNumberTable -keepattributes *Annotation* +-keep class android.support.v7.widget.** { *; } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b1f15c0c26..4eb68b66ce 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -119,6 +119,8 @@ + categoriesAdapter; @@ -154,6 +156,7 @@ protected void onCreate(Bundle savedInstanceState) { configureCategories(); configureLicenses(); configurePolicy(); + configureEditImage(); presenter.init(); @@ -424,6 +427,12 @@ public void hideProgressDialog() { } } + @Override + public void openCropImage(Uri uri) { + CropImage.activity(uri) + .start(this); + } + @Override public void launchMapActivity(String decCoords) { Utils.handleGeoCoordinates(this, decCoords); @@ -508,6 +517,11 @@ private void configureLayout() { background.setOnScaleChangeListener((scaleFactor, x, y) -> presenter.closeAllCards()); } + private void configureEditImage() { + editImages.setOnClickListener(v -> { presenter.editImages(); + }); + } + private void configureTopCard() { topCardExpandButton.setOnClickListener(v -> presenter.toggleTopCardState()); topCardThumbnails.setLayoutManager(new LinearLayoutManager(this, diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java index 05d13ed9d4..80fb3de4fb 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.net.Uri; import java.lang.reflect.Proxy; import java.util.ArrayList; @@ -135,6 +136,10 @@ private void handleImage(Title title, List descriptions, Integer im } } + void editImages(ArrayList uri){ + view.openCropImage(uri.get(0)); + } + /** * Called by the next button in {@link UploadActivity} */ diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadView.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadView.java index 19c27119ba..7cf2ae4d91 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadView.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadView.java @@ -85,4 +85,6 @@ public interface UploadView { void showProgressDialog(); void hideProgressDialog(); + + void openCropImage(Uri uri); } diff --git a/app/src/main/res/layout/activity_upload_bottom_card.xml b/app/src/main/res/layout/activity_upload_bottom_card.xml index 5d529335a4..76d4be96e8 100644 --- a/app/src/main/res/layout/activity_upload_bottom_card.xml +++ b/app/src/main/res/layout/activity_upload_bottom_card.xml @@ -104,6 +104,11 @@ android:layout_marginBottom="8dp" android:visibility="visible" app:srcCompat="@drawable/ic_map_white_24dp" /> + From d1a14dd99bbbca102142677598387c506b1cb8a8 Mon Sep 17 00:00:00 2001 From: vanshikaarora Date: Sun, 3 Mar 2019 11:28:08 +0530 Subject: [PATCH 02/18] loading image cropping --- .../nrw/commons/upload/UploadActivity.java | 23 +++++++++++++++---- .../nrw/commons/upload/UploadPresenter.java | 6 +++-- .../layout/activity_upload_bottom_card.xml | 4 ++-- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java index a1393c2aa1..1db418527e 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java @@ -6,6 +6,7 @@ import android.content.Intent; import android.net.Uri; import android.os.Bundle; +import android.os.Parcelable; import android.support.design.widget.TextInputLayout; import android.support.v7.app.AlertDialog; import android.support.v7.widget.CardView; @@ -101,7 +102,7 @@ public class UploadActivity extends BaseActivity implements UploadView, SimilarI @BindView(R.id.bottom_card_expand_button) ImageView bottomCardExpandButton; @BindView(R.id.bottom_card_title) TextView bottomCardTitle; @BindView(R.id.bottom_card_subtitle) TextView bottomCardSubtitle; - @BindView(R.id.bottom_card_next) Button next; + @BindView(R.id.editImage) Button next; @BindView(R.id.bottom_card_previous) Button previous; @BindView(R.id.bottom_card_add_desc) Button bottomCardAddDescription; @BindView(R.id.categories_subtitle) TextView categoriesSubtitle; @@ -130,7 +131,7 @@ public class UploadActivity extends BaseActivity implements UploadView, SimilarI @BindView(R.id.submit) Button submit; @BindView(R.id.license_previous) Button licensePrevious; @BindView(R.id.rv_descriptions) RecyclerView rvDescriptions; - @BindView(R.id.editImage) ImageView editImages; + @BindView(R.id.bottom_card_next) ImageView editImages; private DescriptionsAdapter descriptionsAdapter; private RVRendererAdapter categoriesAdapter; @@ -147,6 +148,8 @@ protected void onCreate(Bundle savedInstanceState) { ButterKnife.bind(this); compositeDisposable = new CompositeDisposable(); + ArrayList files= getIntent().getParcelableArrayListExtra(EXTRA_FILES); + configureLayout(); configureTopCard(); configureBottomCard(); @@ -156,7 +159,7 @@ protected void onCreate(Bundle savedInstanceState) { configureCategories(); configureLicenses(); configurePolicy(); - configureEditImage(); + configureEditImage(files); presenter.init(); @@ -429,6 +432,7 @@ public void hideProgressDialog() { @Override public void openCropImage(Uri uri) { + Timber.d(uri.toString()); CropImage.activity(uri) .start(this); } @@ -454,6 +458,14 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CommonsApplication.OPEN_APPLICATION_DETAIL_SETTINGS) { //TODO: Confirm if handling manual permission enabled is required } + if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) { + CropImage.ActivityResult result = CropImage.getActivityResult(data); + if (resultCode == RESULT_OK) { + Uri resultUri = result.getUri(); + } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) { + Exception error = result.getError(); + } + } } /** @@ -517,9 +529,10 @@ private void configureLayout() { background.setOnScaleChangeListener((scaleFactor, x, y) -> presenter.closeAllCards()); } - private void configureEditImage() { - editImages.setOnClickListener(v -> { presenter.editImages(); + private void configureEditImage(ArrayList uri) { + editImages.setOnClickListener(v -> {presenter.editImages(Uri.fromFile(uri.get(0).getFile())); }); + //openCropImage(Uri.fromFile(uri.get(0).getFile())); } private void configureTopCard() { diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java index 80fb3de4fb..1ab12dbacd 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java @@ -3,6 +3,7 @@ import android.annotation.SuppressLint; import android.content.Context; import android.net.Uri; +import android.os.Parcelable; import java.lang.reflect.Proxy; import java.util.ArrayList; @@ -136,8 +137,9 @@ private void handleImage(Title title, List descriptions, Integer im } } - void editImages(ArrayList uri){ - view.openCropImage(uri.get(0)); + void editImages(Uri uri){ + String path="data/user/0/fr.free.nrw.commons/cache/CommonsContributions/8b1e3cd5-7fb9-489f-a2f5-ad1ccf6368e5.jpg"; + view.openCropImage(uri); } /** diff --git a/app/src/main/res/layout/activity_upload_bottom_card.xml b/app/src/main/res/layout/activity_upload_bottom_card.xml index 76d4be96e8..487ed91e84 100644 --- a/app/src/main/res/layout/activity_upload_bottom_card.xml +++ b/app/src/main/res/layout/activity_upload_bottom_card.xml @@ -104,7 +104,7 @@ android:layout_marginBottom="8dp" android:visibility="visible" app:srcCompat="@drawable/ic_map_white_24dp" /> -