From a38c302b72b79a9649129cacabb4f4bb75d97978 Mon Sep 17 00:00:00 2001 From: Paul Hawke Date: Fri, 29 Dec 2017 08:34:25 -0600 Subject: [PATCH] Now that Place and LatLng can handle their own status and rendering (respectively) go through and cleanup usages to reduce feature envy. Converted anonymous inner classes to lambdas. --- .../nrw/commons/nearby/NearbyMapFragment.java | 104 ++++++------------ .../nrw/commons/nearby/PlaceRenderer.java | 90 ++++++--------- 2 files changed, 69 insertions(+), 125 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 0dc367d1e..2e7730016 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 @@ -125,25 +125,21 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { super.onViewCreated(view, savedInstanceState); this.getView().setFocusableInTouchMode(true); this.getView().requestFocus(); - this.getView().setOnKeyListener( new View.OnKeyListener() { - - @Override - public boolean onKey( View v, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK) { - if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior - .STATE_EXPANDED) { - bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); - return true; - } - else if (bottomSheetDetailsBehavior.getState() == BottomSheetBehavior - .STATE_COLLAPSED) { - bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); - return true; - } + this.getView().setOnKeyListener((v, keyCode, event) -> { + if (keyCode == KeyEvent.KEYCODE_BACK) { + if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior + .STATE_EXPANDED) { + bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); + return true; + } + else if (bottomSheetDetailsBehavior.getState() == BottomSheetBehavior + .STATE_COLLAPSED) { + bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); + return true; } - return false; } - } ); + return false; + }); } private void initViews() { @@ -182,22 +178,14 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { } private void setListeners() { - fabPlus.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - animateFAB(isFabOpen); - } - }); + fabPlus.setOnClickListener(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); - } + bottomSheetDetails.setOnClickListener(view -> { + if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior.STATE_COLLAPSED) { + bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); + } + else{ + bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); } }); @@ -370,48 +358,22 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { private void passInfoToSheet(Place place) { this.place = place; - 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()); + wikipediaButton.setEnabled(place.hasWikipediaLink()); + wikipediaButton.setOnClickListener(view -> openWebView(place.siteLinks.getWikipediaLink())); + + wikidataButton.setEnabled(place.hasWikidataLink()); + wikidataButton.setOnClickListener(view -> openWebView(place.siteLinks.getWikidataLink())); + + directionsButton.setOnClickListener(view -> { + //Open map app at given position + Intent mapIntent = new Intent(Intent.ACTION_VIEW, place.location.getGmmIntentUri()); + if (mapIntent.resolveActivity(getActivity().getPackageManager()) != null) { + startActivity(mapIntent); } }); - 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); - } - } - }); - - commonsButton.setEnabled( - !(place.siteLinks == null || Uri.EMPTY.equals(place.siteLinks.getCommonsLink()))); - commonsButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - openWebView(place.siteLinks.getCommonsLink()); - } - }); + commonsButton.setEnabled(place.hasCommonsLink()); + commonsButton.setOnClickListener(view -> openWebView(place.siteLinks.getCommonsLink())); icon.setImageResource(place.getDescription().getIcon()); description.setText(place.getDescription().getText()); 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 fe5e9d09f..e62263b9e 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 @@ -61,30 +61,24 @@ class PlaceRenderer extends Renderer { @Override protected void hookListeners(View view) { - final View.OnClickListener listener = new View.OnClickListener() { - @Override - public void onClick(View view) { - Log.d("Renderer", "clicked"); - TransitionManager.beginDelayedTransition(buttonLayout); - - if(buttonLayout.isShown()){ - closeLayout(buttonLayout); - }else { - openLayout(buttonLayout); - } + final View.OnClickListener listener = view12 -> { + Log.d("Renderer", "clicked"); + TransitionManager.beginDelayedTransition(buttonLayout); + if(buttonLayout.isShown()){ + closeLayout(buttonLayout); + }else { + openLayout(buttonLayout); } + }; view.setOnClickListener(listener); view.requestFocus(); - view.setOnFocusChangeListener(new View.OnFocusChangeListener() { - @Override - public void onFocusChange(View view, boolean hasFocus) { - if(!hasFocus && buttonLayout.isShown()){ - closeLayout(buttonLayout); - }else if(hasFocus && !buttonLayout.isShown()) { - listener.onClick(view); - } + view.setOnFocusChangeListener((view1, hasFocus) -> { + if (!hasFocus && buttonLayout.isShown()) { + closeLayout(buttonLayout); + } else if (hasFocus && !buttonLayout.isShown()) { + listener.onClick(view1); } }); @@ -110,19 +104,11 @@ class PlaceRenderer extends Renderer { distance.setText(place.distance); icon.setImageResource(place.getLabel().getIcon()); - 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(view.getContext().getPackageManager()) != null) { - view.getContext().startActivity(mapIntent); - } + directionsButton.setOnClickListener(view -> { + //Open map app at given position + Intent mapIntent = new Intent(Intent.ACTION_VIEW, place.location.getGmmIntentUri()); + if (mapIntent.resolveActivity(view.getContext().getPackageManager()) != null) { + view.getContext().startActivity(mapIntent); } }); @@ -141,28 +127,25 @@ class PlaceRenderer extends Renderer { MenuItem wikipediaArticle = popupMenu.getMenu() .findItem(R.id.nearby_info_menu_wikipedia_article); - commonsArticle.setEnabled(!place.siteLinks.getCommonsLink().equals(Uri.EMPTY)); - wikiDataArticle.setEnabled(!place.siteLinks.getWikidataLink().equals(Uri.EMPTY)); - wikipediaArticle.setEnabled(!place.siteLinks.getWikipediaLink().equals(Uri.EMPTY)); + commonsArticle.setEnabled(place.hasCommonsLink()); + wikiDataArticle.setEnabled(place.hasWikidataLink()); + wikipediaArticle.setEnabled(place.hasWikipediaLink()); - popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - switch (item.getItemId()) { - case R.id.nearby_info_menu_commons_article: - openWebView(place.siteLinks.getCommonsLink()); - return true; - case R.id.nearby_info_menu_wikidata_article: - openWebView(place.siteLinks.getWikidataLink()); - return true; - case R.id.nearby_info_menu_wikipedia_article: - openWebView(place.siteLinks.getWikipediaLink()); - return true; - default: - break; - } - return false; + popupMenu.setOnMenuItemClickListener(item -> { + switch (item.getItemId()) { + case R.id.nearby_info_menu_commons_article: + openWebView(place.siteLinks.getCommonsLink()); + return true; + case R.id.nearby_info_menu_wikidata_article: + openWebView(place.siteLinks.getWikidataLink()); + return true; + case R.id.nearby_info_menu_wikipedia_article: + openWebView(place.siteLinks.getWikipediaLink()); + return true; + default: + break; } + return false; }); popupMenu.show(); } @@ -173,8 +156,7 @@ class PlaceRenderer extends Renderer { } private boolean showMenu() { - return !place.siteLinks.getCommonsLink().equals(Uri.EMPTY) - || !place.siteLinks.getWikidataLink().equals(Uri.EMPTY); + return place.hasCommonsLink() || place.hasWikidataLink(); } } \ No newline at end of file