IMPORTANT: Before attempting to run this sample, please change the package name to your own
- * package name (not com.android.*) and replace the IDs on res/values/ids.xml by your own IDs (you
- * must create a game in the developer console to get those IDs).
- *
- *
This is a very simple game where the user selects "easy mode" or "hard mode" and then the
- * "gameplay" consists of inputting the desired score (0 to 9999). In easy mode, you get the score
- * you request; in hard mode, you get half.
+ *
+ * IMPORTANT: Before attempting to run this sample, please change
+ * the package name to your own package name (not com.android.*) and
+ * replace the IDs on res/values/ids.xml by your own IDs (you must
+ * create a game in the developer console to get those IDs).
+ *
+ * This is a very simple game where the user selects "easy mode" or
+ * "hard mode" and then the "gameplay" consists of inputting the
+ * desired score (0 to 9999). In easy mode, you get the score you
+ * request; in hard mode, you get half.
*
* @author Bruno Oliveira
*/
-public class MainActivity extends FragmentActivity
- implements MainMenuFragment.Listener,
- GameplayFragment.Callback,
- WinFragment.Listener,
- FriendsFragment.Listener {
+public class MainActivity extends FragmentActivity implements
+ MainMenuFragment.Listener,
+ GameplayFragment.Callback,
+ WinFragment.Listener {
// Fragments
private MainMenuFragment mMainMenuFragment;
private GameplayFragment mGameplayFragment;
private WinFragment mWinFragment;
- public FriendsFragment mFriendsFragment;
// Client used to sign in with Google APIs
private GoogleSignInClient mGoogleSignInClient;
@@ -93,18 +82,12 @@ public class MainActivity extends FragmentActivity
private static final int RC_UNUSED = 5001;
private static final int RC_SIGN_IN = 9001;
- static final int RC_FRIEND_PROFILE = 9002;
- static final int RC_RESOLUTION = 9003;
-
// tag for debug logging
private static final String TAG = "TanC";
// playing on hard mode?
private boolean mHardMode = false;
- // The diplay name of the signed in user.
- private String mDisplayName = "";
-
// achievements and scores we're pending to push to the cloud
// (waiting for the user to sign in, for instance)
private final AccomplishmentsOutbox mOutbox = new AccomplishmentsOutbox();
@@ -123,13 +106,11 @@ public void onCreate(Bundle savedInstanceState) {
mMainMenuFragment = new MainMenuFragment();
mGameplayFragment = new GameplayFragment();
mWinFragment = new WinFragment();
- mFriendsFragment = new FriendsFragment();
// Set the listeners and callbacks of fragment events.
mMainMenuFragment.setListener(this);
mGameplayFragment.setCallback(this);
mWinFragment.setListener(this);
- mFriendsFragment.setListener(this);
// Add initial Main Menu fragment.
// IMPORTANT: if this Activity supported rotation, we'd have to be
@@ -137,8 +118,8 @@ public void onCreate(Bundle savedInstanceState) {
// already be there after rotation and trying to add it again would
// result in overlapping fragments. But since we don't support rotation,
// we don't deal with that for code simplicity.
- getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, mMainMenuFragment)
- .commit();
+ getSupportFragmentManager().beginTransaction().add(R.id.fragment_container,
+ mMainMenuFragment).commit();
checkPlaceholderIds();
}
@@ -181,7 +162,7 @@ private void checkPlaceholderIds() {
problems.append("\nThese problems may prevent the app from working properly.");
problems.append("\n\nSee the TODO window in Android Studio for more information");
(new AlertDialog.Builder(this)).setMessage(problems.toString())
- .setNeutralButton(android.R.string.ok, null).create().show();
+ .setNeutralButton(android.R.string.ok, null).create().show();
}
}
@@ -204,7 +185,10 @@ public void onSuccess(AnnotatedData eventBufferAnnotatedData) {
for (int i = 0; i < count; i++) {
Event event = eventBuffer.get(i);
- Log.i(TAG, "event: " + event.getName() + " -> " + event.getValue());
+ Log.i(TAG, "event: "
+ + event.getName()
+ + " -> "
+ + event.getValue());
}
}
})
@@ -218,10 +202,8 @@ public void onFailure(@NonNull Exception e) {
// Switch UI to the given fragment
private void switchToFragment(Fragment newFrag) {
- getSupportFragmentManager()
- .beginTransaction()
- .replace(R.id.fragment_container, newFrag)
- .commit();
+ getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, newFrag)
+ .commit();
}
private boolean isSignedIn() {
@@ -243,7 +225,7 @@ public void onComplete(@NonNull Task task) {
onDisconnected();
}
}
- });
+ });
}
private void startSignInIntent() {
@@ -277,7 +259,7 @@ public void onComplete(@NonNull Task task) {
onDisconnected();
}
- });
+ });
}
@Override
@@ -295,10 +277,10 @@ public void onSuccess(Intent intent) {
}
})
.addOnFailureListener(new OnFailureListener() {
- @Override
- public void onFailure(@NonNull Exception e) {
- handleException(e, getString(R.string.achievements_exception));
- }
+ @Override
+ public void onFailure(@NonNull Exception e) {
+ handleException(e, getString(R.string.achievements_exception));
+ }
});
}
@@ -447,7 +429,6 @@ private void pushAccomplishments() {
if (mOutbox.mBoredSteps > 0) {
mAchievementsClient.increment(getString(R.string.achievement_really_bored),
mOutbox.mBoredSteps);
-
mAchievementsClient.increment(getString(R.string.achievement_bored),
mOutbox.mBoredSteps);
mOutbox.mBoredSteps = 0;
@@ -464,14 +445,6 @@ private void pushAccomplishments() {
}
}
- public PlayersClient getPlayersClient() {
- return mPlayersClient;
- }
-
- public String getDisplayName() {
- return mDisplayName;
- }
-
/**
* Update leaderboards with the user's score.
*
@@ -494,7 +467,8 @@ public void onWinScreenDismissed() {
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (requestCode == RC_SIGN_IN) {
- Task task = GoogleSignIn.getSignedInAccountFromIntent(intent);
+ Task task =
+ GoogleSignIn.getSignedInAccountFromIntent(intent);
try {
GoogleSignInAccount account = task.getResult(ApiException.class);
@@ -542,16 +516,16 @@ public void onComplete(@NonNull Task task) {
handleException(e, getString(R.string.players_exception));
displayName = "???";
}
- mDisplayName = displayName;
mMainMenuFragment.setGreeting("Hello, " + displayName);
}
});
+
// if we have accomplishments to push, push them
if (!mOutbox.isEmpty()) {
pushAccomplishments();
- Toast.makeText(this,
- getString(R.string.your_progress_will_be_uploaded), Toast.LENGTH_LONG).show();
+ Toast.makeText(this, getString(R.string.your_progress_will_be_uploaded),
+ Toast.LENGTH_LONG).show();
}
loadAndPrintEvents();
@@ -583,16 +557,6 @@ public void onSignOutButtonClicked() {
signOut();
}
- @Override
- public void onShowFriendsButtonClicked() {
- switchToFragment(mFriendsFragment);
- }
-
- @Override
- public void onBackButtonClicked() {
- switchToFragment(mMainMenuFragment);
- }
-
private class AccomplishmentsOutbox {
boolean mPrimeAchievement = false;
boolean mHumbleAchievement = false;
@@ -603,9 +567,9 @@ private class AccomplishmentsOutbox {
int mHardModeScore = -1;
boolean isEmpty() {
- return !mPrimeAchievement && !mHumbleAchievement && !mLeetAchievement
- && !mArrogantAchievement && mBoredSteps == 0 && mEasyModeScore < 0
- && mHardModeScore < 0;
+ return !mPrimeAchievement && !mHumbleAchievement && !mLeetAchievement &&
+ !mArrogantAchievement && mBoredSteps == 0 && mEasyModeScore < 0 &&
+ mHardModeScore < 0;
}
}
diff --git a/TypeANumber/src/main/java/com/google/example/games/tanc/MainMenuFragment.java b/TypeANumber/src/main/java/com/google/example/games/tanc/MainMenuFragment.java
index ac7b2ba8..9cd7b524 100644
--- a/TypeANumber/src/main/java/com/google/example/games/tanc/MainMenuFragment.java
+++ b/TypeANumber/src/main/java/com/google/example/games/tanc/MainMenuFragment.java
@@ -16,12 +16,12 @@
package com.google.example.games.tanc;
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.TextView;
-import androidx.fragment.app.Fragment;
/**
* Fragment with the main menu for the game. The main menu allows the player
@@ -37,7 +37,6 @@ public class MainMenuFragment extends Fragment implements OnClickListener {
private View mSignOutBarView;
private View mShowAchievementsButton;
private View mShowLeaderboardsButton;
- private View mShowFriendsButton;
interface Listener {
// called when the user presses the `Easy` or `Okay` button; will pass in which via `hardMode`
@@ -54,9 +53,6 @@ interface Listener {
// called when the user presses the `Sign Out` button
void onSignOutButtonClicked();
-
- // called when the user presses the `Friends` button
- void onShowFriendsButtonClicked();
}
private Listener mListener = null;
@@ -75,8 +71,7 @@ public View onCreateView(LayoutInflater inflater,
R.id.show_achievements_button,
R.id.show_leaderboards_button,
R.id.sign_in_button,
- R.id.sign_out_button,
- R.id.show_friends_button
+ R.id.sign_out_button
};
for (int clickableId : clickableIds) {
@@ -86,7 +81,6 @@ public View onCreateView(LayoutInflater inflater,
// cache views
mShowAchievementsButton = view.findViewById(R.id.show_achievements_button);
mShowLeaderboardsButton = view.findViewById(R.id.show_leaderboards_button);
- mShowFriendsButton = view.findViewById(R.id.show_friends_button);
mGreetingTextView = view.findViewById(R.id.text_greeting);
mSignInBarView = view.findViewById(R.id.sign_in_bar);
@@ -110,7 +104,6 @@ private void updateUI() {
mGreetingTextView.setText(mGreeting);
mShowAchievementsButton.setEnabled(!mShowSignInButton);
mShowLeaderboardsButton.setEnabled(!mShowSignInButton);
- mShowFriendsButton.setEnabled(!mShowSignInButton);
mSignInBarView.setVisibility(mShowSignInButton ? View.VISIBLE : View.GONE);
mSignOutBarView.setVisibility(mShowSignInButton ? View.GONE : View.VISIBLE);
}
@@ -130,9 +123,6 @@ public void onClick(View view) {
case R.id.show_leaderboards_button:
mListener.onShowLeaderboardsRequested();
break;
- case R.id.show_friends_button:
- mListener.onShowFriendsButtonClicked();
- break;
case R.id.sign_in_button:
mListener.onSignInButtonClicked();
break;
diff --git a/TypeANumber/src/main/java/com/google/example/games/tanc/WinFragment.java b/TypeANumber/src/main/java/com/google/example/games/tanc/WinFragment.java
index 1d4e03ba..860eadaf 100644
--- a/TypeANumber/src/main/java/com/google/example/games/tanc/WinFragment.java
+++ b/TypeANumber/src/main/java/com/google/example/games/tanc/WinFragment.java
@@ -17,12 +17,12 @@
package com.google.example.games.tanc;
import android.os.Bundle;
+import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.TextView;
-import androidx.fragment.app.Fragment;
/**
* Fragment that shows the 'You won' message. Apart from congratulating the user
@@ -123,4 +123,4 @@ public void setShowSignInButton(boolean showSignIn) {
mShowSignIn = showSignIn;
updateUI();
}
-}
\ No newline at end of file
+}
diff --git a/TypeANumber/src/main/res/drawable-hdpi/pgs_signed_in_friend.png b/TypeANumber/src/main/res/drawable-hdpi/pgs_signed_in_friend.png
deleted file mode 100644
index ef8a50849edf79d58119901ea5bc4acdda09a883..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 4528
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
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/TypeANumber/src/main/res/layout/friends_screen.xml b/TypeANumber/src/main/res/layout/friends_screen.xml
deleted file mode 100644
index bd707d66..00000000
--- a/TypeANumber/src/main/res/layout/friends_screen.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/TypeANumber/src/main/res/values-v13/styles.xml b/TypeANumber/src/main/res/values-v13/styles.xml
index 03b93037..997965b5 100644
--- a/TypeANumber/src/main/res/values-v13/styles.xml
+++ b/TypeANumber/src/main/res/values-v13/styles.xml
@@ -16,5 +16,5 @@
-->
-
+
diff --git a/TypeANumber/src/main/res/values/strings.xml b/TypeANumber/src/main/res/values/strings.xml
index ffd0a884..00b99429 100644
--- a/TypeANumber/src/main/res/values/strings.xml
+++ b/TypeANumber/src/main/res/values/strings.xml
@@ -51,13 +51,10 @@
See your progress:Show AchievementsShow Leaderboards
- Show FriendsSign in with Google to share your scores and achievements with your friends.You are signed in with Google.Sign outYou win! Your score is:Sign in now to upload this score, save your achievements and share your progress with friends.There was an issue with sign in. Please try again later.
- Friends
- Back
diff --git a/build.gradle b/build.gradle
index 728e805b..d0e9a787 100644
--- a/build.gradle
+++ b/build.gradle
@@ -9,7 +9,7 @@ buildscript {
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.6.2'
+ classpath 'com.android.tools.build:gradle:3.0.1'
}
}
@@ -21,14 +21,14 @@ allprojects {
}
ext {
- android_compile_version = 28
+ android_compile_version = 26
// Google Play Services minimum requirements is 14
android_min_sdk_version = 14
appcompat_library_version = '27.0.2'
support_library_version = '27.0.2'
- gms_library_version = '17.0.0'
+ gms_library_version = '11.6.2'
}
}
diff --git a/gradle.properties b/gradle.properties
deleted file mode 100644
index 5465fec0..00000000
--- a/gradle.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-android.enableJetifier=true
-android.useAndroidX=true
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 8a0ae656..49314a56 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Fri Jul 31 16:24:33 BST 2020
+#Tue Nov 28 14:53:07 PST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip