Skip to content

Commit a38c302

Browse files
pshmaskara
authored andcommitted
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.
1 parent 4f4587f commit a38c302

File tree

2 files changed

+69
-125
lines changed

2 files changed

+69
-125
lines changed

app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java

Lines changed: 31 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -125,25 +125,21 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
125125
super.onViewCreated(view, savedInstanceState);
126126
this.getView().setFocusableInTouchMode(true);
127127
this.getView().requestFocus();
128-
this.getView().setOnKeyListener( new View.OnKeyListener() {
129-
130-
@Override
131-
public boolean onKey( View v, int keyCode, KeyEvent event) {
132-
if (keyCode == KeyEvent.KEYCODE_BACK) {
133-
if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior
134-
.STATE_EXPANDED) {
135-
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
136-
return true;
137-
}
138-
else if (bottomSheetDetailsBehavior.getState() == BottomSheetBehavior
139-
.STATE_COLLAPSED) {
140-
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
141-
return true;
142-
}
128+
this.getView().setOnKeyListener((v, keyCode, event) -> {
129+
if (keyCode == KeyEvent.KEYCODE_BACK) {
130+
if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior
131+
.STATE_EXPANDED) {
132+
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
133+
return true;
134+
}
135+
else if (bottomSheetDetailsBehavior.getState() == BottomSheetBehavior
136+
.STATE_COLLAPSED) {
137+
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
138+
return true;
143139
}
144-
return false;
145140
}
146-
} );
141+
return false;
142+
});
147143
}
148144

149145
private void initViews() {
@@ -182,22 +178,14 @@ private void initViews() {
182178
}
183179

184180
private void setListeners() {
185-
fabPlus.setOnClickListener(new View.OnClickListener() {
186-
@Override
187-
public void onClick(View view) {
188-
animateFAB(isFabOpen);
189-
}
190-
});
181+
fabPlus.setOnClickListener(view -> animateFAB(isFabOpen));
191182

192-
bottomSheetDetails.setOnClickListener(new View.OnClickListener() {
193-
@Override
194-
public void onClick(View view) {
195-
if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior.STATE_COLLAPSED) {
196-
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
197-
}
198-
else{
199-
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
200-
}
183+
bottomSheetDetails.setOnClickListener(view -> {
184+
if(bottomSheetDetailsBehavior.getState() == BottomSheetBehavior.STATE_COLLAPSED) {
185+
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
186+
}
187+
else{
188+
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
201189
}
202190
});
203191

@@ -370,48 +358,22 @@ private void showFAB() {
370358

371359
private void passInfoToSheet(Place place) {
372360
this.place = place;
373-
wikipediaButton.setEnabled(
374-
!(place.siteLinks == null || Uri.EMPTY.equals(place.siteLinks.getWikipediaLink())));
375-
wikipediaButton.setOnClickListener(new View.OnClickListener() {
376-
@Override
377-
public void onClick(View view) {
378-
openWebView(place.siteLinks.getWikipediaLink());
379-
}
380-
});
361+
wikipediaButton.setEnabled(place.hasWikipediaLink());
362+
wikipediaButton.setOnClickListener(view -> openWebView(place.siteLinks.getWikipediaLink()));
381363

382-
wikidataButton.setEnabled(
383-
!(place.siteLinks == null || Uri.EMPTY.equals(place.siteLinks.getWikidataLink())));
384-
wikidataButton.setOnClickListener(new View.OnClickListener() {
385-
@Override
386-
public void onClick(View view) {
387-
openWebView(place.siteLinks.getWikidataLink());
388-
}
389-
});
364+
wikidataButton.setEnabled(place.hasWikidataLink());
365+
wikidataButton.setOnClickListener(view -> openWebView(place.siteLinks.getWikidataLink()));
390366

391-
directionsButton.setOnClickListener(new View.OnClickListener() {
392-
@Override
393-
public void onClick(View view) {
394-
LatLng location = new LatLng(place.location.getLatitude()
395-
, place.location.getLongitude(), 0);
396-
//Open map app at given position
397-
Uri gmmIntentUri = Uri.parse(
398-
"geo:0,0?q=" + location.getLatitude() + "," + location.getLongitude());
399-
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
400-
401-
if (mapIntent.resolveActivity(getActivity().getPackageManager()) != null) {
402-
startActivity(mapIntent);
403-
}
367+
directionsButton.setOnClickListener(view -> {
368+
//Open map app at given position
369+
Intent mapIntent = new Intent(Intent.ACTION_VIEW, place.location.getGmmIntentUri());
370+
if (mapIntent.resolveActivity(getActivity().getPackageManager()) != null) {
371+
startActivity(mapIntent);
404372
}
405373
});
406374

407-
commonsButton.setEnabled(
408-
!(place.siteLinks == null || Uri.EMPTY.equals(place.siteLinks.getCommonsLink())));
409-
commonsButton.setOnClickListener(new View.OnClickListener() {
410-
@Override
411-
public void onClick(View view) {
412-
openWebView(place.siteLinks.getCommonsLink());
413-
}
414-
});
375+
commonsButton.setEnabled(place.hasCommonsLink());
376+
commonsButton.setOnClickListener(view -> openWebView(place.siteLinks.getCommonsLink()));
415377

416378
icon.setImageResource(place.getDescription().getIcon());
417379
description.setText(place.getDescription().getText());

app/src/main/java/fr/free/nrw/commons/nearby/PlaceRenderer.java

Lines changed: 38 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -61,30 +61,24 @@ protected void setUpView(View view) {
6161
@Override
6262
protected void hookListeners(View view) {
6363

64-
final View.OnClickListener listener = new View.OnClickListener() {
65-
@Override
66-
public void onClick(View view) {
67-
Log.d("Renderer", "clicked");
68-
TransitionManager.beginDelayedTransition(buttonLayout);
69-
70-
if(buttonLayout.isShown()){
71-
closeLayout(buttonLayout);
72-
}else {
73-
openLayout(buttonLayout);
74-
}
75-
64+
final View.OnClickListener listener = view12 -> {
65+
Log.d("Renderer", "clicked");
66+
TransitionManager.beginDelayedTransition(buttonLayout);
67+
68+
if(buttonLayout.isShown()){
69+
closeLayout(buttonLayout);
70+
}else {
71+
openLayout(buttonLayout);
7672
}
73+
7774
};
7875
view.setOnClickListener(listener);
7976
view.requestFocus();
80-
view.setOnFocusChangeListener(new View.OnFocusChangeListener() {
81-
@Override
82-
public void onFocusChange(View view, boolean hasFocus) {
83-
if(!hasFocus && buttonLayout.isShown()){
84-
closeLayout(buttonLayout);
85-
}else if(hasFocus && !buttonLayout.isShown()) {
86-
listener.onClick(view);
87-
}
77+
view.setOnFocusChangeListener((view1, hasFocus) -> {
78+
if (!hasFocus && buttonLayout.isShown()) {
79+
closeLayout(buttonLayout);
80+
} else if (hasFocus && !buttonLayout.isShown()) {
81+
listener.onClick(view1);
8882
}
8983
});
9084

@@ -110,19 +104,11 @@ public void render() {
110104
distance.setText(place.distance);
111105
icon.setImageResource(place.getLabel().getIcon());
112106

113-
directionsButton.setOnClickListener(new View.OnClickListener() {
114-
@Override
115-
public void onClick(View view) {
116-
LatLng location = new LatLng(place.location.getLatitude()
117-
, place.location.getLongitude(), 0);
118-
//Open map app at given position
119-
Uri gmmIntentUri = Uri.parse(
120-
"geo:0,0?q=" + location.getLatitude() + "," + location.getLongitude());
121-
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
122-
123-
if (mapIntent.resolveActivity(view.getContext().getPackageManager()) != null) {
124-
view.getContext().startActivity(mapIntent);
125-
}
107+
directionsButton.setOnClickListener(view -> {
108+
//Open map app at given position
109+
Intent mapIntent = new Intent(Intent.ACTION_VIEW, place.location.getGmmIntentUri());
110+
if (mapIntent.resolveActivity(view.getContext().getPackageManager()) != null) {
111+
view.getContext().startActivity(mapIntent);
126112
}
127113
});
128114

@@ -141,28 +127,25 @@ private void popupMenuListener() {
141127
MenuItem wikipediaArticle = popupMenu.getMenu()
142128
.findItem(R.id.nearby_info_menu_wikipedia_article);
143129

144-
commonsArticle.setEnabled(!place.siteLinks.getCommonsLink().equals(Uri.EMPTY));
145-
wikiDataArticle.setEnabled(!place.siteLinks.getWikidataLink().equals(Uri.EMPTY));
146-
wikipediaArticle.setEnabled(!place.siteLinks.getWikipediaLink().equals(Uri.EMPTY));
147-
148-
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
149-
@Override
150-
public boolean onMenuItemClick(MenuItem item) {
151-
switch (item.getItemId()) {
152-
case R.id.nearby_info_menu_commons_article:
153-
openWebView(place.siteLinks.getCommonsLink());
154-
return true;
155-
case R.id.nearby_info_menu_wikidata_article:
156-
openWebView(place.siteLinks.getWikidataLink());
157-
return true;
158-
case R.id.nearby_info_menu_wikipedia_article:
159-
openWebView(place.siteLinks.getWikipediaLink());
160-
return true;
161-
default:
162-
break;
163-
}
164-
return false;
130+
commonsArticle.setEnabled(place.hasCommonsLink());
131+
wikiDataArticle.setEnabled(place.hasWikidataLink());
132+
wikipediaArticle.setEnabled(place.hasWikipediaLink());
133+
134+
popupMenu.setOnMenuItemClickListener(item -> {
135+
switch (item.getItemId()) {
136+
case R.id.nearby_info_menu_commons_article:
137+
openWebView(place.siteLinks.getCommonsLink());
138+
return true;
139+
case R.id.nearby_info_menu_wikidata_article:
140+
openWebView(place.siteLinks.getWikidataLink());
141+
return true;
142+
case R.id.nearby_info_menu_wikipedia_article:
143+
openWebView(place.siteLinks.getWikipediaLink());
144+
return true;
145+
default:
146+
break;
165147
}
148+
return false;
166149
});
167150
popupMenu.show();
168151
}
@@ -173,8 +156,7 @@ private void openWebView(Uri link) {
173156
}
174157

175158
private boolean showMenu() {
176-
return !place.siteLinks.getCommonsLink().equals(Uri.EMPTY)
177-
|| !place.siteLinks.getWikidataLink().equals(Uri.EMPTY);
159+
return place.hasCommonsLink() || place.hasWikidataLink();
178160
}
179161

180162
}

0 commit comments

Comments
 (0)