Skip to content

Commit c77935e

Browse files
committed
Achievements and LeaderBoard improvements
- Fixed all Achievements scoring - Updated LeaderBoard submissions
1 parent e40e42c commit c77935e

File tree

13 files changed

+337
-208
lines changed

13 files changed

+337
-208
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,7 @@ freeline.py
6060
freeline/
6161
freeline_project_description.json
6262
.DS_Store
63+
app/src/main/*.xml
64+
app/src/main/res/values/*.xml
65+
app/src/main/AndroidManifest.xml
6366
app/src/main/AndroidManifest.xml

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Android drawing application for annotating the backbone of worms.
5151
- App takes up to 70% less space on devices
5252

5353
### 1.02 (2017-12-08)
54-
- Added Firebase Crashlytics and Performance Monitoring
54+
- Added FireBase Crashlytics and Performance Monitoring
5555
- Added feedback and rate app dialog
5656
- Removed brush color functionality
5757
- Images expanded to fill the screen

app/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
/build
2+
/src/main/*.xml
3+
/src/main/res/values/*.xml
0 Bytes
Binary file not shown.

app/.idea/workspace.xml

Lines changed: 255 additions & 179 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ android {
1010
minSdkVersion 21
1111
targetSdkVersion 26
1212
versionCode 1
13-
versionName "1.08"
13+
versionName "1.09"
1414
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1515
}
1616
buildTypes {

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@
7676
android:screenOrientation="portrait"
7777
android:label="@string/title_activity_settings"
7878
android:parentActivityName=".DrawingActivity"
79-
android:theme="@style/AppTheme.Settings">
79+
android:theme="@style/AppTheme.Settings"
80+
android:configChanges="locale">
8081
<meta-data
8182
android:name="android.support.PARENT_ACTIVITY"
8283
android:value="com.example.caden.drawingtest.DrawingActivity" />

app/src/main/ic_launcher-web.png

-5.42 KB
Binary file not shown.

app/src/main/java/com/example/caden/drawingtest/DrawingActivity.java

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import android.support.v7.app.AppCompatActivity;
1919
import android.support.v7.widget.Toolbar;
2020
import android.transition.TransitionManager;
21-
import android.util.Log;
2221
import android.util.TypedValue;
2322
import android.view.Menu;
2423
import android.view.MenuItem;
@@ -36,8 +35,6 @@
3635
import com.google.android.gms.games.AchievementsClient;
3736
import com.google.android.gms.games.Games;
3837
import com.google.android.gms.games.LeaderboardsClient;
39-
import com.google.android.gms.tasks.OnCompleteListener;
40-
import com.google.android.gms.tasks.Task;
4138
import com.google.firebase.analytics.FirebaseAnalytics;
4239
import com.google.firebase.auth.FirebaseAuth;
4340
import 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

app/src/main/java/com/example/caden/drawingtest/SettingsActivity.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import android.content.Intent;
55
import android.content.SharedPreferences;
66
import android.content.res.Configuration;
7+
import android.content.res.Resources;
78
import android.os.Bundle;
89
import android.preference.EditTextPreference;
910
import android.preference.ListPreference;
@@ -12,6 +13,7 @@
1213
import android.preference.PreferenceManager;
1314
import android.support.v4.app.NavUtils;
1415
import android.support.v7.app.ActionBar;
16+
import android.util.DisplayMetrics;
1517
import android.util.Log;
1618
import android.view.MenuItem;
1719

@@ -22,12 +24,14 @@
2224
import com.google.firebase.auth.UserProfileChangeRequest;
2325

2426
import java.util.List;
27+
import java.util.Locale;
2528
import java.util.Objects;
2629

2730
public class SettingsActivity extends AppCompatPreferenceActivity {
2831

2932
private static FirebaseUser user;
3033
private static String userName;
34+
private static SharedPreferences sharedPrefs;
3135

3236
/**
3337
* A preference value change listener that updates the preference's summary
@@ -99,10 +103,11 @@ protected void onCreate(Bundle savedInstanceState) {
99103
new WurmPrefFragment()).commit();
100104
setupActionBar();
101105

102-
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(this).edit();
106+
sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
107+
108+
SharedPreferences.Editor editor = sharedPrefs.edit();
103109
editor.putString("user_name", user.getDisplayName());
104110
editor.putString("user_email", user.getEmail());
105-
106111
editor.apply();
107112
}
108113

@@ -141,22 +146,19 @@ protected boolean isValidFragment(String fragmentName) {
141146

142147

143148
public static class WurmPrefFragment extends PreferenceFragment {
149+
144150
@Override
145151
public void onCreate(Bundle savedInstanceState) {
146152
super.onCreate(savedInstanceState);
147153
addPreferencesFromResource(R.xml.pref_wurm);
148154
setHasOptionsMenu(true);
149-
150155
for (UserInfo u : user.getProviderData()) {
151156
if (u.getProviderId().equals("google.com")) {
152157
findPreference("user_email").setEnabled(false);
153158
}
154159
}
155-
156160
bindPreferenceSummaryToValue(findPreference("user_name"));
157161
bindPreferenceSummaryToValue(findPreference("user_email"));
158-
159-
// bindPreferenceSummaryToValue(findPreference("example_list"));
160162
}
161163

162164
@Override

0 commit comments

Comments
 (0)