1818import android .support .v7 .app .AppCompatActivity ;
1919import android .support .v7 .widget .Toolbar ;
2020import android .transition .TransitionManager ;
21- import android .util .Log ;
2221import android .util .TypedValue ;
2322import android .view .Menu ;
2423import android .view .MenuItem ;
3635import com .google .android .gms .games .AchievementsClient ;
3736import com .google .android .gms .games .Games ;
3837import com .google .android .gms .games .LeaderboardsClient ;
39- import com .google .android .gms .tasks .OnCompleteListener ;
40- import com .google .android .gms .tasks .Task ;
4138import com .google .firebase .analytics .FirebaseAnalytics ;
4239import com .google .firebase .auth .FirebaseAuth ;
4340import com .google .firebase .auth .FirebaseUser ;
@@ -74,6 +71,7 @@ public class DrawingActivity extends AppCompatActivity
7471 private static final int RC_ACHIEVEMENT_UI = 9003 ;
7572 private static final int RC_LEADERBOARD_UI = 9004 ;
7673 private static final int RC_SETTING_UI = 9005 ;
74+ private static final int RC_LEADERBOARD_SCORE = 1337 ;
7775
7876 /* Variables */
7977 String currBatchName ;
@@ -159,6 +157,7 @@ protected void onCreate(Bundle savedInstanceState) {
159157 /* Get Wurm image from FireBase */
160158 fireBaseRetrieveImage ();
161159 fireBaseRetrieveUserScore ();
160+ updateLeaderBoard ();
162161
163162 tvUserScore = findViewById (R .id .tv_user_score );
164163 tvUserScore .setText (String .valueOf (userScore ));
@@ -311,6 +310,8 @@ private void feedbackScreen() {
311310 // say he presses home button and then comes back to app, onResume() is called.
312311 protected void onResume () {
313312 drawView .onResume ();
313+ updateLeaderBoard ();
314+
314315 if (GoogleSignIn .getLastSignedInAccount (this ) == null ) {
315316 FirebaseAuth .getInstance ().signOut ();
316317 Intent i = new Intent (this , LoginActivity .class );
@@ -333,6 +334,12 @@ protected void onPause() {
333334 super .onPause ();
334335 }
335336
337+ @ Override
338+ protected void onStop () {
339+ updateLeaderBoard ();
340+ super .onStop ();
341+ }
342+
336343 @ Override
337344 public void onBackPressed () {
338345 if (drawer .isDrawerOpen (GravityCompat .START )) {
@@ -484,10 +491,7 @@ public void sendImage(View v) {
484491
485492 /* Update User Score internally, with FireBase and with Google Play Games */
486493 userScore ++;
487- if (mAchClient != null ) {
488- mAchClient .increment (getString (R .string .achievement_newbie_id ), 1 );
489-
490- }
494+ updateWurmsAchievements ();
491495
492496 tvUserScore .setText (String .valueOf (userScore ));
493497 mDatabase .child ("user_scores" ).child (mUser .getUid ()).setValue (userScore );
@@ -540,13 +544,44 @@ public void markAsBad(View v) {
540544 }
541545 mDatabase .child ("bad_images" ).child (currBatchName ).child (String .valueOf (currImgNo ))
542546 .child (userUID ).setValue (textToSend );
547+ updateReporterAchievements ();
543548 nextImage (v );
544549 dialog .dismiss ();
545550 })
546551 .setNegativeButton ("Cancel" , (dialog , id ) -> dialog .cancel ())
547552 .show ();
548553 }
549554
555+ private void updateWurmsAchievements () {
556+ if (isGoogleSignIn ) {
557+ mAchClient .increment (getString (R .string .achievement_newbie_1_id ), 1 );
558+ mAchClient .increment (getString (R .string .achievement_newbie_2_id ), 1 );
559+ mAchClient .increment (getString (R .string .achievement_growing_1_id ), 1 );
560+ mAchClient .increment (getString (R .string .achievement_growing_2_id ), 1 );
561+ mAchClient .increment (getString (R .string .achievement_silver_id ), 1 );
562+ mAchClient .increment (getString (R .string .achievement_gold_id ), 1 );
563+ mAchClient .increment (getString (R .string .achievement_diamond_id ), 1 );
564+ mAchClient .increment (getString (R .string .achievement_platinum_id ), 1 );
565+ mAchClient .increment (getString (R .string .achievement_master_of_all_id ), 1 );
566+ }
567+ }
568+
569+ private void updateReporterAchievements () {
570+ if (isGoogleSignIn ) {
571+ mAchClient .increment (getString (R .string .achievement_reporter_1_id ), 1 );
572+ mAchClient .increment (getString (R .string .achievement_reporter_2_id ), 1 );
573+ mAchClient .increment (getString (R .string .achievement_exp_reporter_id ), 1 );
574+ mAchClient .increment (getString (R .string .achievement_pro_reporter_id ), 1 );
575+ }
576+ }
577+
578+ private void updateLeaderBoard () {
579+ if (isGoogleSignIn && userScore > 0 ) {
580+ mLeadClient .submitScore (getString (R .string .leaderboard_wurm_scores_id ), RC_LEADERBOARD_SCORE );
581+ }
582+
583+ }
584+
550585 private void fireBaseRetrieveImage () {
551586 mDatabase .child ("master_upload" ).addListenerForSingleValueEvent (new ValueEventListener () {
552587 @ Override
0 commit comments