mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-29 05:43:55 +01:00
Use image picker to pick images for upload (#2278)
* Use image picker to pick images for upload * Consolidate storage permissions in Upload activity * With proper request codes for image upload * Use constants for upload limits * Check for request code while handling requests * Let fragment initiate the camera/gallery instead of activity * Delete unused external storage utils
This commit is contained in:
parent
b05b302e65
commit
164ef9bcac
17 changed files with 339 additions and 637 deletions
|
|
@ -2,7 +2,6 @@ package fr.free.nrw.commons.bookmarks.locations;
|
|||
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
|
@ -15,6 +14,8 @@ import android.widget.ProgressBar;
|
|||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.esafirm.imagepicker.features.ImagePicker;
|
||||
import com.esafirm.imagepicker.model.Image;
|
||||
import com.pedrogomez.renderers.RVRendererAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -30,12 +31,8 @@ import fr.free.nrw.commons.R;
|
|||
import fr.free.nrw.commons.contributions.ContributionController;
|
||||
import fr.free.nrw.commons.nearby.NearbyAdapterFactory;
|
||||
import fr.free.nrw.commons.nearby.Place;
|
||||
import timber.log.Timber;
|
||||
|
||||
import static android.app.Activity.RESULT_OK;
|
||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||
import static fr.free.nrw.commons.wikidata.WikidataConstants.WIKIDATA_ENTITY_ID_PREF;
|
||||
import static fr.free.nrw.commons.wikidata.WikidataConstants.WIKIDATA_ITEM_LOCATION;
|
||||
import fr.free.nrw.commons.utils.ImageUtils;
|
||||
import fr.free.nrw.commons.utils.IntentUtils;
|
||||
|
||||
public class BookmarkLocationsFragment extends DaggerFragment {
|
||||
|
||||
|
|
@ -44,12 +41,11 @@ public class BookmarkLocationsFragment extends DaggerFragment {
|
|||
@BindView(R.id.listView) RecyclerView recyclerView;
|
||||
@BindView(R.id.parentLayout) RelativeLayout parentLayout;
|
||||
|
||||
@Inject
|
||||
BookmarkLocationsController controller;
|
||||
@Inject BookmarkLocationsController controller;
|
||||
@Inject @Named("direct_nearby_upload_prefs") SharedPreferences directPrefs;
|
||||
@Inject @Named("default_preferences") SharedPreferences defaultPrefs;
|
||||
private NearbyAdapterFactory adapterFactory;
|
||||
private ContributionController contributionController;
|
||||
@Inject ContributionController contributionController;
|
||||
|
||||
/**
|
||||
* Create an instance of the fragment with the right bundle parameters
|
||||
|
|
@ -67,7 +63,6 @@ public class BookmarkLocationsFragment extends DaggerFragment {
|
|||
) {
|
||||
View v = inflater.inflate(R.layout.fragment_bookmarks_locations, container, false);
|
||||
ButterKnife.bind(this, v);
|
||||
contributionController = new ContributionController(this, defaultPrefs);
|
||||
adapterFactory = new NearbyAdapterFactory(this, contributionController);
|
||||
return v;
|
||||
}
|
||||
|
|
@ -103,23 +98,12 @@ public class BookmarkLocationsFragment extends DaggerFragment {
|
|||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
if (resultCode == RESULT_OK) {
|
||||
Timber.d("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s",
|
||||
requestCode, resultCode, data);
|
||||
String wikidataEntityId = directPrefs.getString(WIKIDATA_ENTITY_ID_PREF, null);
|
||||
String wikidataItemLocation = directPrefs.getString(WIKIDATA_ITEM_LOCATION, null);
|
||||
if (requestCode == ContributionController.SELECT_FROM_CAMERA) {
|
||||
// If coming from camera, pass null as uri. Because camera photos get saved to a
|
||||
// fixed directory
|
||||
contributionController.handleImagePicked(requestCode, null, true, wikidataEntityId, wikidataItemLocation);
|
||||
} else {
|
||||
contributionController.handleImagePicked(requestCode, data.getData(), true, wikidataEntityId, wikidataItemLocation);
|
||||
}
|
||||
if (IntentUtils.shouldBookmarksHandle(requestCode, resultCode, data)) {
|
||||
List<Image> images = ImagePicker.getImages(data);
|
||||
Intent shareIntent = contributionController.handleImagesPicked(ImageUtils.getUriListFromImages(images), requestCode);
|
||||
startActivity(shareIntent);
|
||||
} else {
|
||||
Timber.e("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s",
|
||||
requestCode, resultCode, data);
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue