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" />
-
-