From 863eee64dd2ec058b811358a1271a2bb6482f7c5 Mon Sep 17 00:00:00 2001 From: misaochan Date: Wed, 7 Feb 2018 20:10:40 +1000 Subject: [PATCH] Add onActivityResult() to NearbyListFragment and pass controller --- .../commons/nearby/NearbyAdapterFactory.java | 8 +++++-- .../commons/nearby/NearbyListFragment.java | 24 +++++++++++++++++-- .../nrw/commons/nearby/PlaceRenderer.java | 7 +++--- 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyAdapterFactory.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyAdapterFactory.java index 31e96e0b3..c060c31b5 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyAdapterFactory.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyAdapterFactory.java @@ -9,21 +9,25 @@ import com.pedrogomez.renderers.RendererBuilder; import java.util.Collections; import java.util.List; +import fr.free.nrw.commons.contributions.ContributionController; + class NearbyAdapterFactory { private Fragment fragment; + private ContributionController controller; NearbyAdapterFactory(){ } - NearbyAdapterFactory(Fragment fragment) { + NearbyAdapterFactory(Fragment fragment, ContributionController controller) { this.fragment = fragment; + this.controller = controller; } public RVRendererAdapter create(List placeList) { RendererBuilder builder = new RendererBuilder() - .bind(Place.class, new PlaceRenderer(fragment)); + .bind(Place.class, new PlaceRenderer(fragment, controller)); ListAdapteeCollection collection = new ListAdapteeCollection<>( placeList != null ? placeList : Collections.emptyList()); return new RVRendererAdapter<>(builder, collection); diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java index 211f03628..a15f7389f 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java @@ -1,6 +1,7 @@ package fr.free.nrw.commons.nearby; import android.content.Context; +import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; @@ -20,10 +21,13 @@ import java.util.List; import dagger.android.support.AndroidSupportInjection; import dagger.android.support.DaggerFragment; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.contributions.ContributionController; import fr.free.nrw.commons.location.LatLng; import fr.free.nrw.commons.utils.UriDeserializer; import timber.log.Timber; +import static android.app.Activity.RESULT_OK; + public class NearbyListFragment extends DaggerFragment { private static final Type LIST_TYPE = new TypeToken>() { }.getType(); @@ -35,6 +39,7 @@ public class NearbyListFragment extends DaggerFragment { private NearbyAdapterFactory adapterFactory; private RecyclerView recyclerView; + private ContributionController controller; @Override public void onCreate(Bundle savedInstanceState) { @@ -56,7 +61,7 @@ public class NearbyListFragment extends DaggerFragment { View view = inflater.inflate(R.layout.fragment_nearby, container, false); recyclerView = view.findViewById(R.id.listView); recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); - adapterFactory = new NearbyAdapterFactory(this); + adapterFactory = new NearbyAdapterFactory(this, controller); return view; } @@ -65,6 +70,7 @@ public class NearbyListFragment extends DaggerFragment { // Check that this is the first time view is created, // to avoid double list when screen orientation changed List placeList = Collections.emptyList(); + controller = new ContributionController(this); Bundle bundle = this.getArguments(); if (bundle != null) { @@ -76,7 +82,21 @@ public class NearbyListFragment extends DaggerFragment { placeList = NearbyController.loadAttractionsFromLocationToPlaces(curLatLng, placeList); } - recyclerView.setAdapter(adapterFactory.create(placeList)); } + + @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); + controller.handleImagePicked(requestCode, data, true); + } else { + Timber.e("OnActivityResult() parameters: Req code: %d Result code: %d Data: %s", + requestCode, resultCode, data); + } + } + } \ No newline at end of file diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java index 186576dd4..1df99138b 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java @@ -68,8 +68,9 @@ public class PlaceRenderer extends Renderer { openedItems = new ArrayList<>(); } */ - public PlaceRenderer(Fragment fragment) { + public PlaceRenderer(Fragment fragment, ContributionController controller) { this.fragment = fragment; + this.controller = controller; openedItems = new ArrayList<>(); } @@ -111,7 +112,7 @@ public class PlaceRenderer extends Renderer { //TODO: Set onClickListeners for camera and gallery in list here cameraButton.setOnClickListener(view2 -> { Timber.d("Camera button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); - controller = new ContributionController(fragment); + //controller = new ContributionController(fragment); DirectUpload directUpload = new DirectUpload(fragment, controller); storeSharedPrefs(); directUpload.initiateCameraUpload(); @@ -119,7 +120,7 @@ public class PlaceRenderer extends Renderer { galleryButton.setOnClickListener(view3 -> { Timber.d("Gallery button tapped. Image title: " + place.getName() + "Image desc: " + place.getLongDescription()); - controller = new ContributionController(fragment); + //controller = new ContributionController(fragment); DirectUpload directUpload = new DirectUpload(fragment, controller); storeSharedPrefs(); directUpload.initiateGalleryUpload();