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 341ece7d0..8adf42962 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 @@ -367,15 +367,6 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp bundle.putString("CurLatLng", gsonCurLatLng); lockNearbyView(true); - // Begin the transaction - // Begin the transaction - /*if (viewMode.isMap()) { - setMapFragment(); - } else { - setListFragment(); - } - swipeLayout.setRefreshing(false); - }*/ setMapFragment(); setListFragment(); 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 f73b24d7e..de65f80c6 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 @@ -1,5 +1,6 @@ package fr.free.nrw.commons.nearby; +import android.content.Intent; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; @@ -15,7 +16,9 @@ import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.AnimationUtils; +import android.widget.Button; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import com.google.gson.Gson; @@ -36,10 +39,12 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; +import butterknife.BindView; import fr.free.nrw.commons.R; import fr.free.nrw.commons.utils.UriDeserializer; public class NearbyMapFragment extends android.support.v4.app.Fragment { + private MapView mapView; private List baseMarkerOptions; private fr.free.nrw.commons.location.LatLng curLatLng; @@ -48,6 +53,9 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { private View moreInfo; private BottomSheetBehavior bottomSheetListBehavior; private BottomSheetBehavior bottomSheetDetailsBehavior; + private LinearLayout wikipediaButton; + private LinearLayout wikidataButton; + private LinearLayout directionsButton; private FloatingActionButton fabList; private FloatingActionButton fabPlus; private FloatingActionButton fabCamera; @@ -58,7 +66,6 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { private TextView distance; private ImageView icon; - private boolean isFabOpen=false; private Animation rotate_backward; private Animation fab_close; @@ -158,6 +165,11 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { title = getActivity().findViewById(R.id.title); distance = getActivity().findViewById(R.id.category); icon = getActivity().findViewById(R.id.icon); + + wikidataButton = getActivity().findViewById(R.id.wikidataButton); + wikipediaButton = getActivity().findViewById(R.id.wikipediaButton); + directionsButton = getActivity().findViewById(R.id.directionsButton); + } private void setListeners() { @@ -240,6 +252,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { bottomSheetListBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); //NearbyInfoDialog.showYourself(getActivity(), place); + } return false; }); @@ -318,7 +331,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { this.getView().clearFocus(); break; } - + } private void hideFAB() { @@ -339,13 +352,51 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { } private void passInfoToSheet(Place place) { - //TODO set correct icon here + wikipediaButton.setEnabled( + !(place.siteLinks == null || Uri.EMPTY.equals(place.siteLinks.getWikipediaLink()))); + wikipediaButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + openWebView(place.siteLinks.getWikipediaLink()); + } + }); + + wikidataButton.setEnabled( + !(place.siteLinks == null || Uri.EMPTY.equals(place.siteLinks.getWikidataLink()))); + wikidataButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + openWebView(place.siteLinks.getWikidataLink()); + } + }); + + directionsButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + LatLng location = new LatLng(place.location.getLatitude() + , place.location.getLongitude(), 0); + //Open map app at given position + Uri gmmIntentUri = Uri.parse( + "geo:0,0?q=" + location.getLatitude() + "," + location.getLongitude()); + Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); + + if (mapIntent.resolveActivity(getActivity().getPackageManager()) != null) { + startActivity(mapIntent); + } + } + }); + icon.setImageResource(place.getDescription().getIcon()); description.setText(place.getDescription().getText()); title.setText(place.name.toString()); distance.setText(place.distance.toString()); } + private void openWebView(Uri link) { + Intent browserIntent = new Intent(Intent.ACTION_VIEW, link); + startActivity(browserIntent); + } + private void animateFAB(boolean isFabOpen) { if (isFabOpen) { @@ -370,7 +421,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { } private void closeFabs(boolean isFabOpen){ - if(isFabOpen){ + if (isFabOpen) { fabPlus.startAnimation(rotate_backward); fabCamera.startAnimation(fab_close); fabGallery.startAnimation(fab_close); 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 348b4953e..8cafeb39d 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 @@ -30,6 +30,9 @@ class PlaceRenderer extends Renderer { @BindView(R.id.distance) TextView distance; @BindView(R.id.icon) ImageView icon; @BindView(R.id.buttonLayout) LinearLayout buttonLayout; + @BindView(R.id.wikidataButton) LinearLayout wikidataButton; + @BindView(R.id.wikipediaButton) LinearLayout wikipediaButton; + @BindView(R.id.directionsButton) LinearLayout directionsButton; private View view; private static ArrayList openedItems; diff --git a/app/src/main/res/color/button_color_selector.xml b/app/src/main/res/color/button_color_selector.xml new file mode 100644 index 000000000..e48e36c7c --- /dev/null +++ b/app/src/main/res/color/button_color_selector.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/color/text_color_selector.xml b/app/src/main/res/color/text_color_selector.xml new file mode 100644 index 000000000..15c5b3d6d --- /dev/null +++ b/app/src/main/res/color/text_color_selector.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-mdpi/button_background_selector.xml b/app/src/main/res/drawable-mdpi/button_background_selector.xml new file mode 100644 index 000000000..3f5a644f8 --- /dev/null +++ b/app/src/main/res/drawable-mdpi/button_background_selector.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_directions_black_24dp.xml b/app/src/main/res/drawable/ic_directions_black_24dp.xml index d5753c1c2..fe95ed7b1 100644 --- a/app/src/main/res/drawable/ic_directions_black_24dp.xml +++ b/app/src/main/res/drawable/ic_directions_black_24dp.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24.0" android:viewportHeight="24.0" - android:tint="@color/status_bar_blue" + android:tint="@color/button_color_selector" > diff --git a/app/src/main/res/drawable/ic_wikipedia_logo_24dp.xml b/app/src/main/res/drawable/ic_wikipedia_logo_24dp.xml index c57a9a0be..9056d87fa 100644 --- a/app/src/main/res/drawable/ic_wikipedia_logo_24dp.xml +++ b/app/src/main/res/drawable/ic_wikipedia_logo_24dp.xml @@ -3,7 +3,7 @@ android:viewportWidth="141.092" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android" - android:tint="@color/status_bar_blue" + android:tint="@color/button_color_selector" > @@ -85,17 +89,21 @@ android:layout_weight="1" android:padding="16dp" android:clickable="true" + android:background="@drawable/button_background_selector" android:orientation="vertical" > @@ -108,18 +116,22 @@ android:layout_weight="1" android:padding="16dp" android:clickable="true" + android:background="@drawable/button_background_selector" android:orientation="vertical" > #77000000 #44000000 + #64999999 + #32999999 + #48000000 + #B0000000 +