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.

This commit is contained in:
Paul Hawke 2017-12-29 08:34:25 -06:00
parent 92e20b4cee
commit c65614ead5
2 changed files with 69 additions and 125 deletions

View file

@ -125,10 +125,7 @@ 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) {
this.getView().setOnKeyListener((v, keyCode, event) -> {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior
.STATE_EXPANDED) {
@ -142,7 +139,6 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment {
}
}
return false;
}
});
}
@ -182,23 +178,15 @@ 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) {
bottomSheetDetails.setOnClickListener(view -> {
if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior.STATE_COLLAPSED) {
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
else{
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
}
});
bottomSheetDetailsBehavior.setBottomSheetCallback(new BottomSheetBehavior
@ -368,48 +356,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.siteLinks == null || Uri.EMPTY.equals(place.siteLinks.getWikidataLink())));
wikidataButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openWebView(place.siteLinks.getWikidataLink());
}
});
wikidataButton.setEnabled(place.hasWikidataLink());
wikidataButton.setOnClickListener(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);
directionsButton.setOnClickListener(view -> {
//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);
Intent mapIntent = new Intent(Intent.ACTION_VIEW, place.location.getGmmIntentUri());
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());

View file

@ -61,9 +61,7 @@ class PlaceRenderer extends Renderer<Place> {
@Override
protected void hookListeners(View view) {
final View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View view) {
final View.OnClickListener listener = view12 -> {
Log.d("Renderer", "clicked");
TransitionManager.beginDelayedTransition(buttonLayout);
@ -73,18 +71,14 @@ class PlaceRenderer extends Renderer<Place> {
openLayout(buttonLayout);
}
}
};
view.setOnClickListener(listener);
view.requestFocus();
view.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
view.setOnFocusChangeListener((view1, hasFocus) -> {
if (!hasFocus && buttonLayout.isShown()) {
closeLayout(buttonLayout);
} else if (hasFocus && !buttonLayout.isShown()) {
listener.onClick(view);
}
listener.onClick(view1);
}
});
@ -110,20 +104,12 @@ class PlaceRenderer extends Renderer<Place> {
distance.setText(place.distance);
icon.setImageResource(place.getDescription().getIcon());
directionsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LatLng location = new LatLng(place.location.getLatitude()
, place.location.getLongitude(), 0);
directionsButton.setOnClickListener(view -> {
//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);
Intent mapIntent = new Intent(Intent.ACTION_VIEW, place.location.getGmmIntentUri());
if (mapIntent.resolveActivity(view.getContext().getPackageManager()) != null) {
view.getContext().startActivity(mapIntent);
}
}
});
iconOverflow.setVisibility(showMenu() ? View.VISIBLE : View.GONE);
@ -141,13 +127,11 @@ class PlaceRenderer extends Renderer<Place> {
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) {
popupMenu.setOnMenuItemClickListener(item -> {
switch (item.getItemId()) {
case R.id.nearby_info_menu_commons_article:
openWebView(place.siteLinks.getCommonsLink());
@ -162,7 +146,6 @@ class PlaceRenderer extends Renderer<Place> {
break;
}
return false;
}
});
popupMenu.show();
}
@ -173,8 +156,7 @@ class PlaceRenderer extends Renderer<Place> {
}
private boolean showMenu() {
return !place.siteLinks.getCommonsLink().equals(Uri.EMPTY)
|| !place.siteLinks.getWikidataLink().equals(Uri.EMPTY);
return place.hasCommonsLink() || place.hasWikidataLink();
}
}