Skip to content

Commit 5edf9de

Browse files
* Added a snack with retry when api in AA fails * Increased connection timeouts in okhttpclient builder
1 parent f2d271a commit 5edf9de

File tree

5 files changed

+37
-7
lines changed

5 files changed

+37
-7
lines changed

app/src/main/java/fr/free/nrw/commons/achievements/AchievementsActivity.java

+9-2
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ void shareScreen(Bitmap bitmap) {
185185
* which then calls parseJson when results are fetched
186186
*/
187187
private void setAchievements() {
188+
progressBar.setVisibility(View.VISIBLE);
188189
if (checkAccount()) {
189190
compositeDisposable.add(mediaWikiApi
190191
.getAchievements(Objects.requireNonNull(sessionManager.getCurrentAccount()).name)
@@ -195,17 +196,23 @@ private void setAchievements() {
195196
if (response != null) {
196197
setUploadCount(Achievements.from(response));
197198
} else {
198-
onError();
199+
showSnackBarWithRetry();
199200
}
200201
},
201202
t -> {
202203
Timber.e(t, "Fetching achievements statistics failed");
203-
onError();
204+
showSnackBarWithRetry();
204205
}
205206
));
206207
}
207208
}
208209

210+
private void showSnackBarWithRetry() {
211+
progressBar.setVisibility(View.GONE);
212+
ViewUtil.showDismissibleSnackBar(findViewById(android.R.id.content),
213+
R.string.achievements_fetch_failed, R.string.retry, view -> setAchievements());
214+
}
215+
209216
/**
210217
* Shows a generic error toast when error occurs while loading achievements or uploads
211218
*/

app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesController.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ List<Media> loadBookmarkedPictures() {
3636
for (Bookmark bookmark : bookmarks) {
3737
List<Media> tmpMedias = mediaWikiApi.searchImages(bookmark.getMediaName(), 0);
3838
for (Media m : tmpMedias) {
39-
if (m.getCreator().equals(bookmark.getMediaCreator())) {
39+
if (m.getCreator().trim().equals(bookmark.getMediaCreator().trim())) {
4040
medias.add(m);
4141
break;
4242
}

app/src/main/java/fr/free/nrw/commons/di/NetworkingModule.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import java.io.File;
1111

12+
import java.util.concurrent.TimeUnit;
1213
import javax.inject.Named;
1314
import javax.inject.Singleton;
1415

@@ -30,9 +31,11 @@ public class NetworkingModule {
3031
@Singleton
3132
public OkHttpClient provideOkHttpClient(Context context) {
3233
File dir = new File(context.getCacheDir(), "okHttpCache");
33-
return new OkHttpClient.Builder()
34-
.cache(new Cache(dir, OK_HTTP_CACHE_SIZE))
35-
.build();
34+
return new OkHttpClient.Builder().connectTimeout(30, TimeUnit.SECONDS)
35+
.writeTimeout(30, TimeUnit.SECONDS)
36+
.readTimeout(30, TimeUnit.SECONDS)
37+
.cache(new Cache(dir, OK_HTTP_CACHE_SIZE))
38+
.build();
3639
}
3740

3841
@Provides

app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
271271
menu.clear(); // see http://stackoverflow.com/a/8495697/17865
272272
inflater.inflate(R.menu.fragment_image_detail, menu);
273273
if (pager != null) {
274-
MediaDetailProvider provider = (MediaDetailProvider) getParentFragment();
274+
MediaDetailProvider provider = getMediaDetailProvider();
275275
if(provider == null) {
276276
return;
277277
}

app/src/main/java/fr/free/nrw/commons/utils/ViewUtil.java

+20
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,24 @@ public static void displayPopupWindow(View anchorView, Context context, View pop
8787
popup.showAsDropDown(anchorView);
8888
}
8989

90+
/**
91+
* A snack bar which has an action button which on click dismisses the snackbar and invokes the
92+
* listener passed
93+
*/
94+
public static void showDismissibleSnackBar(View view, int messageResourceId,
95+
int actionButtonResourceId, View.OnClickListener onClickListener) {
96+
if (view.getContext() == null) {
97+
return;
98+
}
99+
ExecutorUtils.uiExecutor().execute(() -> {
100+
Snackbar snackbar = Snackbar.make(view, view.getContext().getString(messageResourceId),
101+
Snackbar.LENGTH_INDEFINITE);
102+
snackbar.setAction(view.getContext().getString(actionButtonResourceId), v -> {
103+
snackbar.dismiss();
104+
onClickListener.onClick(v);
105+
});
106+
snackbar.show();
107+
});
108+
}
109+
90110
}

0 commit comments

Comments
 (0)