Skip to content

Commit 87b7529

Browse files
committed
fixed issue commons-app#2065 for achievements activity
1 parent 677e009 commit 87b7529

File tree

5 files changed

+96
-28
lines changed

5 files changed

+96
-28
lines changed

app/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -201,5 +201,5 @@ android {
201201
targetCompatibility JavaVersion.VERSION_1_8
202202
}
203203

204-
buildToolsVersion buildToolsVersion
204+
buildToolsVersion '28.0.3'
205205
}

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

+82-23
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.accounts.Account;
44
import android.annotation.SuppressLint;
55
import android.content.Context;
6+
import android.content.DialogInterface;
67
import android.content.Intent;
78
import android.graphics.Bitmap;
89
import android.graphics.drawable.BitmapDrawable;
@@ -13,6 +14,7 @@
1314
import android.support.v7.app.AlertDialog;
1415
import android.support.v7.widget.Toolbar;
1516
import android.util.DisplayMetrics;
17+
import android.util.Log;
1618
import android.view.ContextThemeWrapper;
1719
import android.view.LayoutInflater;
1820
import android.view.Menu;
@@ -26,6 +28,8 @@
2628

2729
import com.dinuscxj.progressbar.CircleProgressBar;
2830

31+
import org.w3c.dom.Text;
32+
2933
import java.io.File;
3034
import java.io.FileOutputStream;
3135
import java.io.IOException;
@@ -42,6 +46,7 @@
4246
import fr.free.nrw.commons.mwapi.MediaWikiApi;
4347
import fr.free.nrw.commons.theme.NavigationBaseActivity;
4448
import fr.free.nrw.commons.utils.ViewUtil;
49+
import io.reactivex.Single;
4550
import io.reactivex.android.schedulers.AndroidSchedulers;
4651
import io.reactivex.disposables.CompositeDisposable;
4752
import io.reactivex.schedulers.Schedulers;
@@ -85,6 +90,12 @@ public class AchievementsActivity extends NavigationBaseActivity {
8590
RelativeLayout layoutImageUsedByWiki;
8691
@BindView(R.id.layout_statistics)
8792
LinearLayout layoutStatistics;
93+
@BindView(R.id.images_used_by_wiki_text)
94+
TextView imageByWikiText;
95+
@BindView(R.id.images_reverted_text)
96+
TextView imageRevertedText;
97+
@BindView(R.id.images_upload_text_param)
98+
TextView imageUploadedText;
8899
@Inject
89100
SessionManager sessionManager;
90101
@Inject
@@ -186,23 +197,42 @@ void shareScreen(Bitmap bitmap) {
186197
*/
187198
private void setAchievements() {
188199
if (checkAccount()) {
189-
compositeDisposable.add(mediaWikiApi
190-
.getAchievements(Objects.requireNonNull(sessionManager.getCurrentAccount()).name)
191-
.subscribeOn(Schedulers.io())
192-
.observeOn(AndroidSchedulers.mainThread())
193-
.subscribe(
194-
response -> {
195-
if (response != null) {
196-
setUploadCount(Achievements.from(response));
197-
} else {
200+
//Timber.d(String.valueOf(mediaWikiApi.getAchievements(sessionManager.getCurrentAccount().name)));
201+
/*layoutImageReverts.setVisibility(View.VISIBLE);
202+
imageView.setVisibility(View.VISIBLE);*/
203+
try{
204+
205+
compositeDisposable.add(mediaWikiApi
206+
.getAchievements(Objects.requireNonNull(sessionManager.getCurrentAccount()).name)
207+
.subscribeOn(Schedulers.io())
208+
.observeOn(AndroidSchedulers.mainThread())
209+
.subscribe(
210+
response -> {
211+
if (response != null) {
212+
setUploadCount(Achievements.from(response));
213+
} else {
214+
Timber.d("success");
215+
layoutImageReverts.setVisibility(View.INVISIBLE);
216+
imageView.setVisibility(View.INVISIBLE);
217+
levelNumber.setText("You haven't qualified any level yet");
218+
//onError();
219+
}
220+
},
221+
t -> {
222+
Timber.e(t, "Fetching achievements statistics failed");
198223
onError();
199224
}
200-
},
201-
t -> {
202-
Timber.e(t, "Fetching achievements statistics failed");
203-
onError();
204-
}
205-
));
225+
));
226+
}
227+
catch (Exception e){
228+
Timber.d(e+"success");
229+
/*layoutImageReverts.setVisibility(View.INVISIBLE);
230+
imageView.setVisibility(View.INVISIBLE);
231+
levelNumber.setText("You haven't qualified any level yet");*/
232+
}
233+
234+
235+
206236
}
207237
}
208238

@@ -247,10 +277,38 @@ private void setAchievementsUploadCount(Achievements achievements, int uploadCou
247277
* @param uploadCount
248278
*/
249279
private void setUploadProgress(int uploadCount){
250-
imagesUploadedProgressbar.setProgress
251-
(100*uploadCount/levelInfo.getMaxUploadCount());
252-
imagesUploadedProgressbar.setProgressTextFormatPattern
253-
(uploadCount +"/" + levelInfo.getMaxUploadCount() );
280+
if (uploadCount==0){
281+
setZeroAchievements();
282+
}else {
283+
284+
imagesUploadedProgressbar.setProgress
285+
(100*uploadCount/levelInfo.getMaxUploadCount());
286+
imagesUploadedProgressbar.setProgressTextFormatPattern
287+
(uploadCount +"/" + levelInfo.getMaxUploadCount() );
288+
}
289+
290+
}
291+
292+
private void setZeroAchievements() {
293+
AlertDialog.Builder builder=new AlertDialog.Builder(this)
294+
.setMessage("You haven't made any contributions yet")
295+
.setPositiveButton("Ok", (dialog, which) -> {
296+
//dismiss
297+
});
298+
AlertDialog dialog = builder.create();
299+
dialog.show();
300+
imagesUploadedProgressbar.setVisibility(View.INVISIBLE);
301+
imageRevertsProgressbar.setVisibility(View.INVISIBLE);
302+
imagesUsedByWikiProgessbar.setVisibility(View.INVISIBLE);
303+
//levelNumber.setText("LEVEL 0");
304+
imageView.setVisibility(View.INVISIBLE);
305+
imageByWikiText.setText("No images used");
306+
imageRevertedText.setText("No image reverted");
307+
imageUploadedText.setText("No images Uploaded");
308+
/*BitmapDrawable bitmapImage = BitmapUtils.writeOnDrawable(bitmap, Integer.toString(levelInfo.getLevelNumber()),this);
309+
imageView.setImageDrawable(bitmapImage);*/
310+
imageView.setVisibility(View.INVISIBLE);
311+
254312
}
255313

256314
/**
@@ -315,6 +373,7 @@ private void hideProgressBar(Achievements achievements) {
315373
layoutStatistics.setVisibility(View.VISIBLE);
316374
imageView.setVisibility(View.VISIBLE);
317375
levelNumber.setVisibility(View.VISIBLE);
376+
//levelNumber.setText("You haven't qualified any level yet");
318377
}
319378
}
320379

@@ -388,10 +447,10 @@ private void launchAlert(String title, String message){
388447
private boolean checkAccount(){
389448
Account currentAccount = sessionManager.getCurrentAccount();
390449
if (currentAccount == null) {
391-
Timber.d("Current account is null");
392-
ViewUtil.showLongToast(this, getResources().getString(R.string.user_not_logged_in));
393-
sessionManager.forceLogin(this);
394-
return false;
450+
Timber.d("Current account is null");
451+
ViewUtil.showLongToast(this, getResources().getString(R.string.user_not_logged_in));
452+
sessionManager.forceLogin(this);
453+
return false;
395454
}
396455
return true;
397456
}

app/src/main/java/fr/free/nrw/commons/mwapi/ApacheHttpClientMediaWikiApi.java

+10-1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import fr.free.nrw.commons.BuildConfig;
4444
import fr.free.nrw.commons.Media;
4545
import fr.free.nrw.commons.PageTitle;
46+
import fr.free.nrw.commons.achievements.FeaturedImages;
4647
import fr.free.nrw.commons.achievements.FeedbackResponse;
4748
import fr.free.nrw.commons.auth.AccountUtil;
4849
import fr.free.nrw.commons.category.CategoryImageUtils;
@@ -988,7 +989,15 @@ public Single<FeedbackResponse> getAchievements(String userName) {
988989
if (json == null) {
989990
return null;
990991
}
991-
return gson.fromJson(json, FeedbackResponse.class);
992+
Timber.d(json);
993+
try {
994+
return gson.fromJson(String.valueOf(response.body()), FeedbackResponse.class);
995+
}
996+
catch (Exception e){
997+
return new FeedbackResponse("",0,0,0,new FeaturedImages(0,0),0,"",0);
998+
}
999+
1000+
9921001
}
9931002
return null;
9941003
});

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ buildscript {
77
google()
88
}
99
dependencies {
10-
classpath 'com.android.tools.build:gradle:3.1.4'
10+
classpath 'com.android.tools.build:gradle:3.2.1'
1111
classpath 'com.dicedmelon.gradle:jacoco-android:0.1.3'
1212
classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2'
1313
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Sat Nov 03 11:02:51 CET 2018
1+
#Sat Dec 08 21:00:44 IST 2018
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

0 commit comments

Comments
 (0)