mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 12:53:55 +01:00
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:
parent
4f4587fd4d
commit
a38c302b72
2 changed files with 69 additions and 125 deletions
|
|
@ -125,10 +125,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
this.getView().setFocusableInTouchMode(true);
|
this.getView().setFocusableInTouchMode(true);
|
||||||
this.getView().requestFocus();
|
this.getView().requestFocus();
|
||||||
this.getView().setOnKeyListener( new View.OnKeyListener() {
|
this.getView().setOnKeyListener((v, keyCode, event) -> {
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onKey( View v, int keyCode, KeyEvent event) {
|
|
||||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||||
if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior
|
if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior
|
||||||
.STATE_EXPANDED) {
|
.STATE_EXPANDED) {
|
||||||
|
|
@ -142,8 +139,7 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
});
|
||||||
} );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initViews() {
|
private void initViews() {
|
||||||
|
|
@ -182,23 +178,15 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setListeners() {
|
private void setListeners() {
|
||||||
fabPlus.setOnClickListener(new View.OnClickListener() {
|
fabPlus.setOnClickListener(view -> animateFAB(isFabOpen));
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
animateFAB(isFabOpen);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
bottomSheetDetails.setOnClickListener(new View.OnClickListener() {
|
bottomSheetDetails.setOnClickListener(view -> {
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior.STATE_COLLAPSED) {
|
if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior.STATE_COLLAPSED) {
|
||||||
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
bottomSheetDetailsBehavior.setBottomSheetCallback(new BottomSheetBehavior
|
bottomSheetDetailsBehavior.setBottomSheetCallback(new BottomSheetBehavior
|
||||||
|
|
@ -370,48 +358,22 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment {
|
||||||
|
|
||||||
private void passInfoToSheet(Place place) {
|
private void passInfoToSheet(Place place) {
|
||||||
this.place = place;
|
this.place = place;
|
||||||
wikipediaButton.setEnabled(
|
wikipediaButton.setEnabled(place.hasWikipediaLink());
|
||||||
!(place.siteLinks == null || Uri.EMPTY.equals(place.siteLinks.getWikipediaLink())));
|
wikipediaButton.setOnClickListener(view -> openWebView(place.siteLinks.getWikipediaLink()));
|
||||||
wikipediaButton.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
openWebView(place.siteLinks.getWikipediaLink());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
wikidataButton.setEnabled(
|
wikidataButton.setEnabled(place.hasWikidataLink());
|
||||||
!(place.siteLinks == null || Uri.EMPTY.equals(place.siteLinks.getWikidataLink())));
|
wikidataButton.setOnClickListener(view -> openWebView(place.siteLinks.getWikidataLink()));
|
||||||
wikidataButton.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
openWebView(place.siteLinks.getWikidataLink());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
directionsButton.setOnClickListener(new View.OnClickListener() {
|
directionsButton.setOnClickListener(view -> {
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
LatLng location = new LatLng(place.location.getLatitude()
|
|
||||||
, place.location.getLongitude(), 0);
|
|
||||||
//Open map app at given position
|
//Open map app at given position
|
||||||
Uri gmmIntentUri = Uri.parse(
|
Intent mapIntent = new Intent(Intent.ACTION_VIEW, place.location.getGmmIntentUri());
|
||||||
"geo:0,0?q=" + location.getLatitude() + "," + location.getLongitude());
|
|
||||||
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
|
|
||||||
|
|
||||||
if (mapIntent.resolveActivity(getActivity().getPackageManager()) != null) {
|
if (mapIntent.resolveActivity(getActivity().getPackageManager()) != null) {
|
||||||
startActivity(mapIntent);
|
startActivity(mapIntent);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
commonsButton.setEnabled(
|
commonsButton.setEnabled(place.hasCommonsLink());
|
||||||
!(place.siteLinks == null || Uri.EMPTY.equals(place.siteLinks.getCommonsLink())));
|
commonsButton.setOnClickListener(view -> openWebView(place.siteLinks.getCommonsLink()));
|
||||||
commonsButton.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
openWebView(place.siteLinks.getCommonsLink());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
icon.setImageResource(place.getDescription().getIcon());
|
icon.setImageResource(place.getDescription().getIcon());
|
||||||
description.setText(place.getDescription().getText());
|
description.setText(place.getDescription().getText());
|
||||||
|
|
|
||||||
|
|
@ -61,9 +61,7 @@ class PlaceRenderer extends Renderer<Place> {
|
||||||
@Override
|
@Override
|
||||||
protected void hookListeners(View view) {
|
protected void hookListeners(View view) {
|
||||||
|
|
||||||
final View.OnClickListener listener = new View.OnClickListener() {
|
final View.OnClickListener listener = view12 -> {
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Log.d("Renderer", "clicked");
|
Log.d("Renderer", "clicked");
|
||||||
TransitionManager.beginDelayedTransition(buttonLayout);
|
TransitionManager.beginDelayedTransition(buttonLayout);
|
||||||
|
|
||||||
|
|
@ -73,18 +71,14 @@ class PlaceRenderer extends Renderer<Place> {
|
||||||
openLayout(buttonLayout);
|
openLayout(buttonLayout);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
view.setOnClickListener(listener);
|
view.setOnClickListener(listener);
|
||||||
view.requestFocus();
|
view.requestFocus();
|
||||||
view.setOnFocusChangeListener(new View.OnFocusChangeListener() {
|
view.setOnFocusChangeListener((view1, hasFocus) -> {
|
||||||
@Override
|
if (!hasFocus && buttonLayout.isShown()) {
|
||||||
public void onFocusChange(View view, boolean hasFocus) {
|
|
||||||
if(!hasFocus && buttonLayout.isShown()){
|
|
||||||
closeLayout(buttonLayout);
|
closeLayout(buttonLayout);
|
||||||
}else if(hasFocus && !buttonLayout.isShown()) {
|
} else if (hasFocus && !buttonLayout.isShown()) {
|
||||||
listener.onClick(view);
|
listener.onClick(view1);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -110,20 +104,12 @@ class PlaceRenderer extends Renderer<Place> {
|
||||||
distance.setText(place.distance);
|
distance.setText(place.distance);
|
||||||
icon.setImageResource(place.getLabel().getIcon());
|
icon.setImageResource(place.getLabel().getIcon());
|
||||||
|
|
||||||
directionsButton.setOnClickListener(new View.OnClickListener() {
|
directionsButton.setOnClickListener(view -> {
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
LatLng location = new LatLng(place.location.getLatitude()
|
|
||||||
, place.location.getLongitude(), 0);
|
|
||||||
//Open map app at given position
|
//Open map app at given position
|
||||||
Uri gmmIntentUri = Uri.parse(
|
Intent mapIntent = new Intent(Intent.ACTION_VIEW, place.location.getGmmIntentUri());
|
||||||
"geo:0,0?q=" + location.getLatitude() + "," + location.getLongitude());
|
|
||||||
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
|
|
||||||
|
|
||||||
if (mapIntent.resolveActivity(view.getContext().getPackageManager()) != null) {
|
if (mapIntent.resolveActivity(view.getContext().getPackageManager()) != null) {
|
||||||
view.getContext().startActivity(mapIntent);
|
view.getContext().startActivity(mapIntent);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
iconOverflow.setVisibility(showMenu() ? View.VISIBLE : View.GONE);
|
iconOverflow.setVisibility(showMenu() ? View.VISIBLE : View.GONE);
|
||||||
|
|
@ -141,13 +127,11 @@ class PlaceRenderer extends Renderer<Place> {
|
||||||
MenuItem wikipediaArticle = popupMenu.getMenu()
|
MenuItem wikipediaArticle = popupMenu.getMenu()
|
||||||
.findItem(R.id.nearby_info_menu_wikipedia_article);
|
.findItem(R.id.nearby_info_menu_wikipedia_article);
|
||||||
|
|
||||||
commonsArticle.setEnabled(!place.siteLinks.getCommonsLink().equals(Uri.EMPTY));
|
commonsArticle.setEnabled(place.hasCommonsLink());
|
||||||
wikiDataArticle.setEnabled(!place.siteLinks.getWikidataLink().equals(Uri.EMPTY));
|
wikiDataArticle.setEnabled(place.hasWikidataLink());
|
||||||
wikipediaArticle.setEnabled(!place.siteLinks.getWikipediaLink().equals(Uri.EMPTY));
|
wikipediaArticle.setEnabled(place.hasWikipediaLink());
|
||||||
|
|
||||||
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
popupMenu.setOnMenuItemClickListener(item -> {
|
||||||
@Override
|
|
||||||
public boolean onMenuItemClick(MenuItem item) {
|
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
case R.id.nearby_info_menu_commons_article:
|
case R.id.nearby_info_menu_commons_article:
|
||||||
openWebView(place.siteLinks.getCommonsLink());
|
openWebView(place.siteLinks.getCommonsLink());
|
||||||
|
|
@ -162,7 +146,6 @@ class PlaceRenderer extends Renderer<Place> {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
});
|
});
|
||||||
popupMenu.show();
|
popupMenu.show();
|
||||||
}
|
}
|
||||||
|
|
@ -173,8 +156,7 @@ class PlaceRenderer extends Renderer<Place> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean showMenu() {
|
private boolean showMenu() {
|
||||||
return !place.siteLinks.getCommonsLink().equals(Uri.EMPTY)
|
return place.hasCommonsLink() || place.hasWikidataLink();
|
||||||
|| !place.siteLinks.getWikidataLink().equals(Uri.EMPTY);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue