mirror of
				https://github.com/commons-app/apps-android-commons.git
				synced 2025-10-31 06:43:56 +01:00 
			
		
		
		
	Bug fix for uploaded images count in achievements activity (#1885)
This commit is contained in:
		
							parent
							
								
									325e0168e3
								
							
						
					
					
						commit
						cc74f3add7
					
				
					 3 changed files with 28 additions and 78 deletions
				
			
		|  | @ -59,65 +59,6 @@ public class Achievements { | ||||||
|                 response.getDeletedUploads()); |                 response.getDeletedUploads()); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |  | ||||||
|      * Builder class for Achievements class |  | ||||||
|      */ |  | ||||||
|     public class AchievementsBuilder { |  | ||||||
|         private int nestedUniqueUsedImages; |  | ||||||
|         private int nestedArticlesUsingImages; |  | ||||||
|         private int nestedThanksReceived; |  | ||||||
|         private int nestedImagesEditedBySomeoneElse; |  | ||||||
|         private int nestedFeaturedImages; |  | ||||||
|         private int nestedImagesUploaded; |  | ||||||
|         private int nestedRevertCount; |  | ||||||
| 
 |  | ||||||
|         public AchievementsBuilder setUniqueUsedImages(int uniqueUsedImages) { |  | ||||||
|             this.nestedUniqueUsedImages = uniqueUsedImages; |  | ||||||
|             return this; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public AchievementsBuilder setArticlesUsingImages(int articlesUsingImages) { |  | ||||||
|             this.nestedArticlesUsingImages = articlesUsingImages; |  | ||||||
|             return this; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public AchievementsBuilder setThanksReceived(int thanksReceived) { |  | ||||||
|             this.nestedThanksReceived = thanksReceived; |  | ||||||
|             return this; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public AchievementsBuilder setImagesEditedBySomeoneElse(int imagesEditedBySomeoneElse) { |  | ||||||
|             this.nestedImagesEditedBySomeoneElse = imagesEditedBySomeoneElse; |  | ||||||
|             return this; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public AchievementsBuilder setFeaturedImages(int featuredImages) { |  | ||||||
|             this.nestedFeaturedImages = featuredImages; |  | ||||||
|             return this; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public AchievementsBuilder setImagesUploaded(int imagesUploaded) { |  | ||||||
|             this.nestedImagesUploaded = imagesUploaded; |  | ||||||
|             return this; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public AchievementsBuilder setRevertCount( int revertCount){ |  | ||||||
|             this.nestedRevertCount = revertCount; |  | ||||||
|             return this; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public Achievements createAchievements(){ |  | ||||||
|             return new Achievements(nestedUniqueUsedImages, |  | ||||||
|                     nestedArticlesUsingImages, |  | ||||||
|                     nestedThanksReceived, |  | ||||||
|                     nestedImagesEditedBySomeoneElse, |  | ||||||
|                     nestedFeaturedImages, |  | ||||||
|                     nestedImagesUploaded, |  | ||||||
|                     nestedRevertCount); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     /** |     /** | ||||||
|      * getter function to get count of images uploaded |      * getter function to get count of images uploaded | ||||||
|      * @return |      * @return | ||||||
|  |  | ||||||
|  | @ -54,10 +54,7 @@ public class AchievementsActivity extends NavigationBaseActivity { | ||||||
| 
 | 
 | ||||||
|     private static final double BADGE_IMAGE_WIDTH_RATIO = 0.4; |     private static final double BADGE_IMAGE_WIDTH_RATIO = 0.4; | ||||||
|     private static final double BADGE_IMAGE_HEIGHT_RATIO = 0.3; |     private static final double BADGE_IMAGE_HEIGHT_RATIO = 0.3; | ||||||
|     private Boolean isUploadFetched = false; | 
 | ||||||
|     private Boolean isStatisticsFetched = false; |  | ||||||
|     private Boolean isRevertFetched = false; |  | ||||||
|     private Achievements achievements = new Achievements(); |  | ||||||
|     private LevelController.LevelInfo levelInfo; |     private LevelController.LevelInfo levelInfo; | ||||||
| 
 | 
 | ||||||
|     @BindView(R.id.achievement_badge) |     @BindView(R.id.achievement_badge) | ||||||
|  | @ -129,7 +126,6 @@ public class AchievementsActivity extends NavigationBaseActivity { | ||||||
|         progressBar.setVisibility(View.VISIBLE); |         progressBar.setVisibility(View.VISIBLE); | ||||||
|         hideLayouts(); |         hideLayouts(); | ||||||
|         setAchievements(); |         setAchievements(); | ||||||
|         setUploadCount(); |  | ||||||
|         initDrawer(); |         initDrawer(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -189,7 +185,6 @@ public class AchievementsActivity extends NavigationBaseActivity { | ||||||
|      * which then calls parseJson when results are fetched |      * which then calls parseJson when results are fetched | ||||||
|      */ |      */ | ||||||
|     private void setAchievements() { |     private void setAchievements() { | ||||||
| 
 |  | ||||||
|         if(checkAccount()) { |         if(checkAccount()) { | ||||||
|             compositeDisposable.add(mediaWikiApi |             compositeDisposable.add(mediaWikiApi | ||||||
|                     .getAchievements(Objects.requireNonNull(sessionManager.getCurrentAccount()).name) |                     .getAchievements(Objects.requireNonNull(sessionManager.getCurrentAccount()).name) | ||||||
|  | @ -198,29 +193,42 @@ public class AchievementsActivity extends NavigationBaseActivity { | ||||||
|                     .subscribe( |                     .subscribe( | ||||||
|                             response -> { |                             response -> { | ||||||
|                                 if (response != null) { |                                 if (response != null) { | ||||||
|                                     achievements = Achievements.from(response); |                                     setUploadCount(Achievements.from(response)); | ||||||
|                                     isRevertFetched = true; |                                 } else { | ||||||
|                                     isStatisticsFetched = true; |                                     onError(); | ||||||
|                                 } |                                 } | ||||||
|                                 hideProgressBar(); |  | ||||||
|                             }, |                             }, | ||||||
|                             t -> Timber.e(t, "Fetching achievements statisticss failed") |                             t -> { | ||||||
|  |                                 Timber.e(t, "Fetching achievements statistics failed"); | ||||||
|  |                                 onError(); | ||||||
|  |                             } | ||||||
|                     )); |                     )); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** | ||||||
|  |      * Shows a generic error toast when error occurs while loading achievements or uploads | ||||||
|  |      */ | ||||||
|  |     private void onError() { | ||||||
|  |         ViewUtil.showLongToast(this, getResources().getString(R.string.error_occurred)); | ||||||
|  |         progressBar.setVisibility(View.GONE); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     /** |     /** | ||||||
|      * used to the count of images uploaded by user |      * used to the count of images uploaded by user | ||||||
|      */ |      */ | ||||||
|     private void setUploadCount() { |     private void setUploadCount(Achievements achievements) { | ||||||
|         if(checkAccount()) { |         if(checkAccount()) { | ||||||
|             compositeDisposable.add(mediaWikiApi |             compositeDisposable.add(mediaWikiApi | ||||||
|                     .getUploadCount(Objects.requireNonNull(sessionManager.getCurrentAccount()).name) |                     .getUploadCount(Objects.requireNonNull(sessionManager.getCurrentAccount()).name) | ||||||
|                     .subscribeOn(Schedulers.io()) |                     .subscribeOn(Schedulers.io()) | ||||||
|                     .observeOn(AndroidSchedulers.mainThread()) |                     .observeOn(AndroidSchedulers.mainThread()) | ||||||
|                     .subscribe( |                     .subscribe( | ||||||
|                             this::setAchievementsUploadCount, |                             uploadCount -> setAchievementsUploadCount(achievements, uploadCount), | ||||||
|                             t -> Timber.e(t, "Fetching upload count failed") |                             t -> { | ||||||
|  |                                 Timber.e(t, "Fetching upload count failed"); | ||||||
|  |                                 onError(); | ||||||
|  |                             } | ||||||
|                     )); |                     )); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | @ -229,10 +237,9 @@ public class AchievementsActivity extends NavigationBaseActivity { | ||||||
|      * used to set achievements upload count and call hideProgressbar |      * used to set achievements upload count and call hideProgressbar | ||||||
|      * @param uploadCount |      * @param uploadCount | ||||||
|      */ |      */ | ||||||
|     private void setAchievementsUploadCount(int uploadCount){ |     private void setAchievementsUploadCount(Achievements achievements, int uploadCount) { | ||||||
|         achievements.setImagesUploaded(uploadCount); |         achievements.setImagesUploaded(uploadCount); | ||||||
|         isUploadFetched = true; |         hideProgressBar(achievements); | ||||||
|         hideProgressBar(); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  | @ -293,8 +300,8 @@ public class AchievementsActivity extends NavigationBaseActivity { | ||||||
|     /** |     /** | ||||||
|      * to hide progressbar |      * to hide progressbar | ||||||
|      */ |      */ | ||||||
|     private void hideProgressBar() { |     private void hideProgressBar(Achievements achievements) { | ||||||
|         if (progressBar != null && isUploadFetched && isStatisticsFetched && isRevertFetched) { |         if (progressBar != null) { | ||||||
|             levelInfo = LevelController.LevelInfo.from(achievements.getImagesUploaded(), |             levelInfo = LevelController.LevelInfo.from(achievements.getImagesUploaded(), | ||||||
|                     achievements.getUniqueUsedImages(), |                     achievements.getUniqueUsedImages(), | ||||||
|                     achievements.getNotRevertPercentage()); |                     achievements.getNotRevertPercentage()); | ||||||
|  |  | ||||||
|  | @ -341,4 +341,6 @@ | ||||||
|   <string name="images_uploaded_explanation">The number of images you have uploaded to Commons, via any upload software</string> |   <string name="images_uploaded_explanation">The number of images you have uploaded to Commons, via any upload software</string> | ||||||
|   <string name="images_reverted_explanation">The percentage of images you have uploaded to Commons that were not deleted</string> |   <string name="images_reverted_explanation">The percentage of images you have uploaded to Commons that were not deleted</string> | ||||||
|   <string name="images_used_explanation">The number of images you have uploaded to Commons that were used in Wikimedia articles</string> |   <string name="images_used_explanation">The number of images you have uploaded to Commons that were used in Wikimedia articles</string> | ||||||
|  | 
 | ||||||
|  |   <string name="error_occurred">Error occurred!</string> | ||||||
| </resources> | </resources> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Vivek Maskara
						Vivek Maskara