From 7cff34119d24ba77e1c2c6f1602f0ed8796d379b Mon Sep 17 00:00:00 2001 From: maskara Date: Sat, 25 Nov 2017 14:12:38 +0530 Subject: [PATCH 001/321] Remove CSV option for nearby places --- .../nrw/commons/nearby/NearbyController.java | 4 +- .../free/nrw/commons/nearby/NearbyPlaces.java | 64 ------------------- app/src/main/res/xml/preferences.xml | 7 -- 3 files changed, 1 insertion(+), 74 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java index 58c8bb8a7..6ca626299 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java @@ -41,9 +41,7 @@ public class NearbyController { } NearbyPlaces nearbyPlaces = CommonsApplication.getInstance().getNearbyPlaces(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - List places = prefs.getBoolean("useWikidata", true) - ? nearbyPlaces.getFromWikidataQuery(curLatLng, Locale.getDefault().getLanguage()) - : nearbyPlaces.getFromWikiNeedsPictures(); + List places = nearbyPlaces.getFromWikidataQuery(curLatLng, Locale.getDefault().getLanguage()); if (curLatLng != null) { Timber.d("Sorting places by distance..."); final Map distances = new HashMap<>(); diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java index de14a2ef8..8a6e9adca 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java @@ -1,7 +1,6 @@ package fr.free.nrw.commons.nearby; import android.net.Uri; -import android.os.StrictMode; import java.io.BufferedReader; import java.io.IOException; @@ -30,7 +29,6 @@ public class NearbyPlaces { private static final Uri WIKIDATA_QUERY_UI_URL = Uri.parse("https://query.wikidata.org/"); private final String wikidataQuery; private double radius = INITIAL_RADIUS; - private List places; public NearbyPlaces() { try { @@ -141,66 +139,4 @@ public class NearbyPlaces { return places; } - - List getFromWikiNeedsPictures() { - if (places != null) { - return places; - } else { - try { - places = new ArrayList<>(); - StrictMode.ThreadPolicy policy - = new StrictMode.ThreadPolicy.Builder().permitAll().build(); - StrictMode.setThreadPolicy(policy); - - URL file = new URL("https://tools.wmflabs.org/wiki-needs-pictures/data/data.csv"); - - BufferedReader in = new BufferedReader(new InputStreamReader(file.openStream())); - - boolean firstLine = true; - String line; - Timber.d("Reading from CSV file..."); - - while ((line = in.readLine()) != null) { - - // Skip CSV header. - if (firstLine) { - firstLine = false; - continue; - } - - String[] fields = line.split(","); - String name = Utils.stripLocalizedString(fields[0]); - - double latitude; - double longitude; - try { - latitude = Double.parseDouble(fields[1]); - } catch (NumberFormatException e) { - latitude = 0; - } - try { - longitude = Double.parseDouble(fields[2]); - } catch (NumberFormatException e) { - longitude = 0; - } - - String type = fields[3]; - - places.add(new Place( - name, - Place.Description.fromText(type), // list - type, // details - null, - new LatLng(latitude, longitude, 0), - new Sitelinks.Builder().build() - )); - } - in.close(); - - } catch (IOException e) { - Timber.d(e.toString()); - } - } - return places; - } } diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index b7b63d39c..bf6b55686 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -31,13 +31,6 @@ android:key="theme" /> - - Date: Mon, 11 Dec 2017 12:18:02 +0300 Subject: [PATCH 002/321] Fix conflicts --- .../nrw/commons/nearby/NearbyActivity.java | 42 ++++++++++ app/src/main/res/layout/activity_nearby.xml | 81 +++++++++++++------ 2 files changed, 98 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index 57d21dd95..c68e9475a 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -9,6 +9,8 @@ import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.annotation.NonNull; +import android.support.design.widget.BottomSheetBehavior; +import android.support.design.widget.FloatingActionButton; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AlertDialog; @@ -16,6 +18,7 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; +import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.Toast; @@ -52,6 +55,11 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp @BindView(R.id.progressBar) ProgressBar progressBar; + @BindView(R.id.bottom_sheet) + LinearLayout bottomSheet; + @BindView(R.id.fab_list) + FloatingActionButton fabList; + @Inject LocationServiceManager locationManager; @Inject @@ -63,6 +71,7 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp private NearbyActivityMode viewMode; private Disposable placesDisposable; private boolean lockNearbyView; //Determines if the nearby places needs to be refreshed + private BottomSheetBehavior bottomSheetBehavior; @Override protected void onCreate(Bundle savedInstanceState) { @@ -71,6 +80,10 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp setContentView(R.layout.activity_nearby); ButterKnife.bind(this); bundle = new Bundle(); + + initBottomSheetBehaviour(); + initFabList(); + initDrawer(); initViewState(); } @@ -83,6 +96,35 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp } } + private void initBottomSheetBehaviour() { + bottomSheet.getLayoutParams().height = getWindowManager() + .getDefaultDisplay().getHeight() / 16 * 9; + bottomSheetBehavior = BottomSheetBehavior.from(bottomSheet); + // TODO initProperBottomSheetBehavior(); + bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { + + @Override + public void onStateChanged(View bottomSheet, int newState) { + // TODO prepareViewsForSheetPosition(newState); + } + + @Override + public void onSlide(View bottomSheet, float slideOffset) { + + } + }); + } + + private void initFabList() { + fabList.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + //nearbyMapFragment.bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); + bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); + } + }); + } + @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); diff --git a/app/src/main/res/layout/activity_nearby.xml b/app/src/main/res/layout/activity_nearby.xml index 6f74e8a60..7c70bb327 100644 --- a/app/src/main/res/layout/activity_nearby.xml +++ b/app/src/main/res/layout/activity_nearby.xml @@ -4,39 +4,70 @@ android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> - - - - + + android:layout_height="match_parent"> - - - + android:layout_height="wrap_content" /> - + android:layout_height="match_parent" + android:orientation="horizontal" + android:gravity="center_vertical" + android:layout_below="@id/toolbar"> - - + - + + + + + + + + + + + Date: Mon, 11 Dec 2017 12:34:33 +0300 Subject: [PATCH 003/321] Add nearby list fragment to bottom sheet --- .../main/java/fr/free/nrw/commons/nearby/NearbyActivity.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index c68e9475a..60f305aec 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -394,7 +394,9 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); Fragment fragment = new NearbyListFragment(); fragment.setArguments(bundle); - fragmentTransaction.replace(R.id.container, fragment, fragment.getClass().getSimpleName()); + fragmentTransaction.replace(R.id.container_sheet, fragment); + bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); + //TODO replace this sheet for details map fragmentTransaction.commitAllowingStateLoss(); } From 503a7a01a4c87f8dbd93d0f289ceac9de894146e Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Mon, 11 Dec 2017 12:42:12 +0300 Subject: [PATCH 004/321] Set display list button visibility according to bottom sheet visibility --- .../fr/free/nrw/commons/nearby/NearbyActivity.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index 60f305aec..2ca10aae4 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -105,7 +105,7 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp @Override public void onStateChanged(View bottomSheet, int newState) { - // TODO prepareViewsForSheetPosition(newState); + prepareViewsForSheetPosition(newState); } @Override @@ -404,4 +404,15 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp public void onLocationChanged(LatLng latLng) { refreshView(false); } + + public void prepareViewsForSheetPosition(int bottomSheetState) { + if (bottomSheetState >= BottomSheetBehavior.STATE_COLLAPSED) { + fabList.show(); + } + else if (bottomSheetState == BottomSheetBehavior.STATE_EXPANDED) { + fabList.hide(); + //NearbyActivity.bottomSheetStatus = BottomSheetStatus.DISPLAY_LIST_SHEET; + } + + } } From 8c16fb91a9628c49c2904c05eb8f47487f27eaa7 Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Mon, 11 Dec 2017 12:45:16 +0300 Subject: [PATCH 005/321] Remove unused imports --- .../main/java/fr/free/nrw/commons/nearby/NearbyActivity.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index 2ca10aae4..ce29f0d35 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -1,6 +1,5 @@ package fr.free.nrw.commons.nearby; -import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; @@ -44,8 +43,6 @@ import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; import timber.log.Timber; -import static fr.free.nrw.commons.location.LocationServiceManager.LOCATION_REQUEST; - public class NearbyActivity extends NavigationBaseActivity implements LocationUpdateListener { @@ -413,6 +410,5 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp fabList.hide(); //NearbyActivity.bottomSheetStatus = BottomSheetStatus.DISPLAY_LIST_SHEET; } - } } From 6d2577d14e8ace810de2b1a6f8defe4bd968572c Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Mon, 11 Dec 2017 13:38:35 +0300 Subject: [PATCH 006/321] Fix conflicts --- .../nrw/commons/nearby/NearbyMapFragment.java | 21 +++ app/src/main/res/layout/activity_nearby.xml | 2 + .../main/res/layout/bottom_sheet_details.xml | 157 ++++++++++++++++++ 3 files changed, 180 insertions(+) create mode 100644 app/src/main/res/layout/bottom_sheet_details.xml diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java index 910c61328..f6040b8ac 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java @@ -3,9 +3,14 @@ package fr.free.nrw.commons.nearby; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.design.widget.BottomSheetBehavior; +import android.support.design.widget.FloatingActionButton; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -32,6 +37,11 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { private MapView mapView; private List baseMarkerOptions; private fr.free.nrw.commons.location.LatLng curLatLng; + private View bottomSheetList; + private View bottomSheetDetails; + private BottomSheetBehavior bottomSheetListBehavior; + private BottomSheetBehavior bottomSheetDetailsBehavior; + public NearbyMapFragment() { } @@ -40,6 +50,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle bundle = this.getArguments(); + initViews(); Gson gson = new GsonBuilder() .registerTypeAdapter(Uri.class, new UriDeserializer()) .create(); @@ -73,6 +84,16 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { return mapView; } + private void initViews() { + bottomSheetList = getActivity().findViewById(R.id.bottom_sheet); + bottomSheetListBehavior = BottomSheetBehavior.from(bottomSheetList); + bottomSheetDetails = getActivity().findViewById(R.id.bottom_sheet_details); + bottomSheetDetailsBehavior = BottomSheetBehavior.from(bottomSheetDetails); + bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); + //moreInfo = getActivity().findViewById(R.id.more_info_bar); + + } + private void setupMapView(Bundle savedInstanceState) { MapboxMapOptions options = new MapboxMapOptions() .styleUrl(Style.OUTDOORS) diff --git a/app/src/main/res/layout/activity_nearby.xml b/app/src/main/res/layout/activity_nearby.xml index 7c70bb327..51037c6e4 100644 --- a/app/src/main/res/layout/activity_nearby.xml +++ b/app/src/main/res/layout/activity_nearby.xml @@ -64,6 +64,8 @@ + + diff --git a/app/src/main/res/layout/bottom_sheet_details.xml b/app/src/main/res/layout/bottom_sheet_details.xml new file mode 100644 index 000000000..708a6b24f --- /dev/null +++ b/app/src/main/res/layout/bottom_sheet_details.xml @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 970213f900d1e6270b2f04933f067e14d6b231c1 Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Mon, 11 Dec 2017 13:54:35 +0300 Subject: [PATCH 007/321] Add FAB buttons --- .../nrw/commons/nearby/NearbyMapFragment.java | 13 ++++- app/src/main/res/layout/activity_nearby.xml | 51 +++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java index f6040b8ac..bd7e743e8 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java @@ -41,7 +41,13 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { private View bottomSheetDetails; private BottomSheetBehavior bottomSheetListBehavior; private BottomSheetBehavior bottomSheetDetailsBehavior; - + private FloatingActionButton fabList; + private FloatingActionButton fabPlus; + private FloatingActionButton fabCamera; + private FloatingActionButton fabGallery; + private View transparentView; + private int currBottomSheetState; + private boolean isFabOpen=false; public NearbyMapFragment() { } @@ -91,7 +97,12 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { bottomSheetDetailsBehavior = BottomSheetBehavior.from(bottomSheetDetails); bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); //moreInfo = getActivity().findViewById(R.id.more_info_bar); + fabList = getActivity().findViewById(R.id.fab_list); + fabPlus = getActivity().findViewById(R.id.fab_plus); + fabCamera = getActivity().findViewById(R.id.fab_camera); + fabGallery = getActivity().findViewById(R.id.fab_galery); + transparentView = getActivity().findViewById(R.id.transparentView); } private void setupMapView(Bundle savedInstanceState) { diff --git a/app/src/main/res/layout/activity_nearby.xml b/app/src/main/res/layout/activity_nearby.xml index 51037c6e4..7a965d3c5 100644 --- a/app/src/main/res/layout/activity_nearby.xml +++ b/app/src/main/res/layout/activity_nearby.xml @@ -66,6 +66,57 @@ + + + + + + From b0cc10c599551eb49ffe35380a2f6130250dfa3b Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Mon, 11 Dec 2017 13:56:56 +0300 Subject: [PATCH 008/321] Add animations --- .../nrw/commons/nearby/NearbyMapFragment.java | 11 ++++++++++- app/src/main/res/anim/fab_close.xml | 17 +++++++++++++++++ app/src/main/res/anim/fab_open.xml | 18 ++++++++++++++++++ app/src/main/res/anim/rotate_backward.xml | 10 ++++++++++ app/src/main/res/anim/rotate_forward.xml | 10 ++++++++++ 5 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/anim/fab_close.xml create mode 100644 app/src/main/res/anim/fab_open.xml create mode 100644 app/src/main/res/anim/rotate_backward.xml create mode 100644 app/src/main/res/anim/rotate_forward.xml diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java index bd7e743e8..557b6af39 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java @@ -48,6 +48,10 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { private View transparentView; private int currBottomSheetState; private boolean isFabOpen=false; + private Animation rotate_backward; + private Animation fab_close; + private Animation fab_open; + private Animation rotate_forward; public NearbyMapFragment() { } @@ -96,12 +100,17 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { bottomSheetDetails = getActivity().findViewById(R.id.bottom_sheet_details); bottomSheetDetailsBehavior = BottomSheetBehavior.from(bottomSheetDetails); bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); - //moreInfo = getActivity().findViewById(R.id.more_info_bar); + fabList = getActivity().findViewById(R.id.fab_list); fabPlus = getActivity().findViewById(R.id.fab_plus); fabCamera = getActivity().findViewById(R.id.fab_camera); fabGallery = getActivity().findViewById(R.id.fab_galery); + fab_open = AnimationUtils.loadAnimation(getActivity(), R.anim.fab_open); + fab_close = AnimationUtils.loadAnimation(getActivity(),R.anim.fab_close); + rotate_forward = AnimationUtils.loadAnimation(getActivity(),R.anim.rotate_forward); + rotate_backward = AnimationUtils.loadAnimation(getActivity(),R.anim.rotate_backward); + transparentView = getActivity().findViewById(R.id.transparentView); } diff --git a/app/src/main/res/anim/fab_close.xml b/app/src/main/res/anim/fab_close.xml new file mode 100644 index 000000000..a8e450d48 --- /dev/null +++ b/app/src/main/res/anim/fab_close.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/fab_open.xml b/app/src/main/res/anim/fab_open.xml new file mode 100644 index 000000000..0cc5ee308 --- /dev/null +++ b/app/src/main/res/anim/fab_open.xml @@ -0,0 +1,18 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/rotate_backward.xml b/app/src/main/res/anim/rotate_backward.xml new file mode 100644 index 000000000..9bbb510ba --- /dev/null +++ b/app/src/main/res/anim/rotate_backward.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/rotate_forward.xml b/app/src/main/res/anim/rotate_forward.xml new file mode 100644 index 000000000..c1173e870 --- /dev/null +++ b/app/src/main/res/anim/rotate_forward.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file From e336b50f87053a73f8cd9b95ba8ba47ee55f0c95 Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Mon, 11 Dec 2017 14:02:24 +0300 Subject: [PATCH 009/321] Add actions --- .../nrw/commons/nearby/NearbyMapFragment.java | 108 +++++++++++++++++- 1 file changed, 106 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java index 557b6af39..a9e842d08 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java @@ -4,7 +4,9 @@ import android.graphics.Color; import android.net.Uri; import android.os.Bundle; import android.preference.PreferenceManager; +import android.support.annotation.NonNull; import android.support.design.widget.BottomSheetBehavior; +import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.FloatingActionButton; import android.view.LayoutInflater; import android.view.View; @@ -61,6 +63,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { super.onCreate(savedInstanceState); Bundle bundle = this.getArguments(); initViews(); + setListeners(); Gson gson = new GsonBuilder() .registerTypeAdapter(Uri.class, new UriDeserializer()) .create(); @@ -100,7 +103,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { bottomSheetDetails = getActivity().findViewById(R.id.bottom_sheet_details); bottomSheetDetailsBehavior = BottomSheetBehavior.from(bottomSheetDetails); bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); - + fabList = getActivity().findViewById(R.id.fab_list); fabPlus = getActivity().findViewById(R.id.fab_plus); fabCamera = getActivity().findViewById(R.id.fab_camera); @@ -114,6 +117,41 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { transparentView = getActivity().findViewById(R.id.transparentView); } + private void setListeners() { + fabPlus.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + animateFAB(isFabOpen); + } + }); + + bottomSheetDetails.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior.STATE_COLLAPSED) { + bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); + } + else{ + bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); + } + } + }); + + bottomSheetDetailsBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { + @Override + public void onStateChanged(@NonNull View bottomSheet, int newState) { + prepareViewsForSheetPosition(newState); + } + + @Override + public void onSlide(@NonNull View bottomSheet, float slideOffset) { + if(slideOffset>=0){ + transparentView.setAlpha(slideOffset); + } + } + }); + } + private void setupMapView(Bundle savedInstanceState) { MapboxMapOptions options = new MapboxMapOptions() .styleUrl(Style.OUTDOORS) @@ -186,10 +224,76 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { double nodeLatitude = centerLat + radiusLat * Math.sin(theta); circle.add(new LatLng(nodeLatitude, nodeLongitude)); } - return circle; } + public void prepareViewsForSheetPosition(int bottomSheetState) { + if(bottomSheetState==BottomSheetBehavior.STATE_COLLAPSED){ + if(!fabList.isShown()) fabList.show(); + closeFabs(isFabOpen); + if(!fabPlus.isShown()){ + CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fabPlus.getLayoutParams(); + p.setAnchorId(getActivity().findViewById(R.id.bottom_sheet_details).getId()); + fabPlus.setLayoutParams(p); + fabPlus.show(); + } + this.getView().requestFocus(); + //moreInfo.setVisibility(View.VISIBLE); + //NearbyActivity.bottomSheetStatus = NearbyActivity.BottomSheetStatus.DISPLAY_DETAILS_SHEET_COLLAPSED; + } + else if(bottomSheetState==BottomSheetBehavior.STATE_EXPANDED){ + if(fabList.isShown()) fabList.hide(); + this.getView().requestFocus(); + //moreInfo.setVisibility(View.GONE); + //NearbyActivity.bottomSheetStatus = NearbyActivity.BottomSheetStatus.DISPLAY_DETAILS_SHEET_EXPANDED; + } + else if(bottomSheetState==BottomSheetBehavior.STATE_HIDDEN){ + closeFabs(isFabOpen); + //get rid of anchors + //Somehow this was the only way https://stackoverflow.com/questions/32732932/floatingactionbutton-visible-for-sometime-even-if-visibility-is-set-to-gone + CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fabPlus.getLayoutParams(); + p.setAnchorId(View.NO_ID); + fabPlus.setLayoutParams(p); + fabPlus.hide(); + //moreInfo.setVisibility(View.GONE); + } + currBottomSheetState = bottomSheetState; + } + + private void animateFAB(boolean isFabOpen) { + + if (isFabOpen) { + + fabPlus.startAnimation(rotate_backward); + fabCamera.startAnimation(fab_close); + fabGallery.startAnimation(fab_close); + fabCamera.setClickable(false); + fabGallery.setClickable(false); + + } else { + + fabPlus.startAnimation(rotate_forward); + fabCamera.startAnimation(fab_open); + fabGallery.startAnimation(fab_open); + fabCamera.setClickable(true); + fabGallery.setClickable(true); + + } + + this.isFabOpen=!isFabOpen; + } + + private void closeFabs(boolean isFabOpen){ + if(isFabOpen){ + fabPlus.startAnimation(rotate_backward); + fabCamera.startAnimation(fab_close); + fabGallery.startAnimation(fab_close); + fabCamera.setClickable(false); + fabGallery.setClickable(false); + this.isFabOpen=!isFabOpen; + } + } + @Override public void onStart() { if (mapView != null) { From 4348dd65aaec061cda3572dc0cb80a40512c7835 Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Mon, 11 Dec 2017 14:22:37 +0300 Subject: [PATCH 010/321] Add map marker listener --- .../nrw/commons/nearby/NearbyMapFragment.java | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java index a9e842d08..f8aeb6054 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java @@ -48,7 +48,6 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { private FloatingActionButton fabCamera; private FloatingActionButton fabGallery; private View transparentView; - private int currBottomSheetState; private boolean isFabOpen=false; private Animation rotate_backward; private Animation fab_close; @@ -137,7 +136,8 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { } }); - bottomSheetDetailsBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { + bottomSheetDetailsBehavior.setBottomSheetCallback(new BottomSheetBehavior + .BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { prepareViewsForSheetPosition(newState); @@ -150,6 +150,21 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { } } }); + + bottomSheetListBehavior.setBottomSheetCallback(new BottomSheetBehavior + .BottomSheetCallback() { + @Override + public void onStateChanged(@NonNull View bottomSheet, int newState) { + if (newState == BottomSheetBehavior.STATE_EXPANDED){ + bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); + } + } + + @Override + public void onSlide(@NonNull View bottomSheet, float slideOffset) { + + } + }); } private void setupMapView(Bundle savedInstanceState) { @@ -170,7 +185,10 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { if (marker instanceof NearbyMarker) { NearbyMarker nearbyMarker = (NearbyMarker) marker; Place place = nearbyMarker.getNearbyBaseMarker().getPlace(); - NearbyInfoDialog.showYourself(getActivity(), place); + passInfoToSheet(place); + bottomSheetListBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); + bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); + //NearbyInfoDialog.showYourself(getActivity(), place); } return false; }); @@ -257,7 +275,11 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { fabPlus.hide(); //moreInfo.setVisibility(View.GONE); } - currBottomSheetState = bottomSheetState; + //currBottomSheetState = bottomSheetState; + } + + private void passInfoToSheet(Place place) { + } private void animateFAB(boolean isFabOpen) { From 06bb7f0f4fba73987b1becc9e9abd814f4af7b9b Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Mon, 11 Dec 2017 16:16:34 +0300 Subject: [PATCH 011/321] Add FAB icons and bottom bar --- .../drawable-xhdpi/ic_directions_black_48dp.xml | 11 +++++++++++ .../drawable-xhdpi/ic_wikidata_logo_48dp.xml | 11 +++++++++++ .../drawable-xhdpi/ic_wikipedia_logo_48dp.xml | 11 +++++++++++ app/src/main/res/layout/bar_more_info.xml | 17 +++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 app/src/main/res/drawable-xhdpi/ic_directions_black_48dp.xml create mode 100644 app/src/main/res/drawable-xhdpi/ic_wikidata_logo_48dp.xml create mode 100644 app/src/main/res/drawable-xhdpi/ic_wikipedia_logo_48dp.xml create mode 100644 app/src/main/res/layout/bar_more_info.xml diff --git a/app/src/main/res/drawable-xhdpi/ic_directions_black_48dp.xml b/app/src/main/res/drawable-xhdpi/ic_directions_black_48dp.xml new file mode 100644 index 000000000..b0dbfcbc7 --- /dev/null +++ b/app/src/main/res/drawable-xhdpi/ic_directions_black_48dp.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable-xhdpi/ic_wikidata_logo_48dp.xml b/app/src/main/res/drawable-xhdpi/ic_wikidata_logo_48dp.xml new file mode 100644 index 000000000..c0074ee91 --- /dev/null +++ b/app/src/main/res/drawable-xhdpi/ic_wikidata_logo_48dp.xml @@ -0,0 +1,11 @@ + + + + + diff --git a/app/src/main/res/drawable-xhdpi/ic_wikipedia_logo_48dp.xml b/app/src/main/res/drawable-xhdpi/ic_wikipedia_logo_48dp.xml new file mode 100644 index 000000000..fcd9edb9a --- /dev/null +++ b/app/src/main/res/drawable-xhdpi/ic_wikipedia_logo_48dp.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/layout/bar_more_info.xml b/app/src/main/res/layout/bar_more_info.xml new file mode 100644 index 000000000..377d8544e --- /dev/null +++ b/app/src/main/res/layout/bar_more_info.xml @@ -0,0 +1,17 @@ + + +