Commit baa5391839b0c0bc5722d2e6a4fb3d5c003ae79e

Authored by kingzh
1 parent 5553a3ffd4
Exists in master

upgrade to 4.9.0

Showing 15 changed files with 277 additions and 10 deletions Inline Diff

File was created 1 *.iml
2 build/
3 .DS_Store
4 .idea
5 .gradle
6
GameSDKDemo/build.gradle
1 apply plugin: 'com.android.application' 1 apply plugin: 'com.android.application'
2 2
3 /*The config for internal testing,you could ignore it 3 /*The config for internal testing,you could ignore it
4 * gump内部测试使用,你可以自行配置,或者直接删除这部分内容 4 * gump内部测试使用,你可以自行配置,或者直接删除这部分内容
5 * --start-- 5 * --start--
6 */ 6 */
7 def keystorePSW = '' 7 def keystorePSW = ''
8 def keystoreAlias = '' 8 def keystoreAlias = ''
9 def keystoreAliasPSW = '' 9 def keystoreAliasPSW = ''
10 // default keystore file, PLZ config file path in local.properties 10 // default keystore file, PLZ config file path in local.properties
11 def keyfile = file('s.keystore.temp') 11 def keyfile = file('s.keystore.temp')
12 12
13 Properties properties = new Properties() 13 Properties properties = new Properties()
14 // local.properties file in the root director 14 // local.properties file in the root director
15 properties.load(project.file('local.properties').newDataInputStream()) 15 properties.load(project.file('local.properties').newDataInputStream())
16 def keystoreFilepath = properties.getProperty("keystore.path") 16 def keystoreFilepath = properties.getProperty("keystore.path")
17 17
18 if (keystoreFilepath) { 18 if (keystoreFilepath) {
19 keystorePSW = properties.getProperty("keystore.password") 19 keystorePSW = properties.getProperty("keystore.password")
20 keystoreAlias = properties.getProperty("keystore.alias") 20 keystoreAlias = properties.getProperty("keystore.alias")
21 keystoreAliasPSW = properties.getProperty("keystore.key_passwd") 21 keystoreAliasPSW = properties.getProperty("keystore.key_passwd")
22 keyfile = file(keystoreFilepath) 22 keyfile = file(keystoreFilepath)
23 } 23 }
24 /* 24 /*
25 * The config for internal testing,you could ignore it 25 * The config for internal testing,you could ignore it
26 * gump内部测试使用,你可以自行配置,或者直接删除这部分内容 26 * gump内部测试使用,你可以自行配置,或者直接删除这部分内容
27 * --end-- 27 * --end--
28 */ 28 */
29 29
30 repositories { 30 repositories {
31 maven { 31 maven {
32 url "http://117.50.8.198:8081/nexus/content/repositories/sdk" 32 url "http://117.50.8.198:8081/nexus/content/repositories/sdk"
33 } 33 }
34 jcenter() 34 jcenter()
35 google() 35 google()
36 } 36 }
37 37
38 android { 38 android {
39 compileSdkVersion 28 39 compileSdkVersion 28
40 buildToolsVersion '28.0.3' 40 buildToolsVersion '28.0.3'
41 41
42 signingConfigs { 42 signingConfigs {
43 release { 43 release {
44 storeFile keyfile 44 storeFile keyfile
45 storePassword keystorePSW 45 storePassword keystorePSW
46 keyPassword keystoreAliasPSW 46 keyPassword keystoreAliasPSW
47 keyAlias keystoreAlias 47 keyAlias keystoreAlias
48 } 48 }
49 } 49 }
50 50
51 defaultConfig { 51 defaultConfig {
52 minSdkVersion 14 52 minSdkVersion 14
53 targetSdkVersion 27 53 targetSdkVersion 30
54 applicationId "mx.she.rd4" 54 applicationId "com.gp.bakedst.sg"
55 versionCode 6 55 versionCode 6
56 versionName "1.4" 56 versionName "1.5"
57 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 57 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
58 signingConfig signingConfigs.release 58 signingConfig signingConfigs.release
59 } 59 }
60 buildTypes { 60 buildTypes {
61 release { 61 release {
62 minifyEnabled false 62 minifyEnabled false
63 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 63 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
64 zipAlignEnabled true 64 zipAlignEnabled true
65 } 65 }
66 debug { 66 debug {
67 signingConfig signingConfigs.release 67 signingConfig signingConfigs.release
68 } 68 }
69 } 69 }
70 lintOptions { 70 lintOptions {
71 abortOnError false 71 abortOnError false
72 } 72 }
73 compileOptions { 73 compileOptions {
74 sourceCompatibility JavaVersion.VERSION_1_8 74 sourceCompatibility JavaVersion.VERSION_1_8
75 targetCompatibility JavaVersion.VERSION_1_8 75 targetCompatibility JavaVersion.VERSION_1_8
76 } 76 }
77 applicationVariants.all { 77 applicationVariants.all {
78 variant -> 78 variant ->
79 variant.outputs.all { 79 variant.outputs.all {
80 outputFileName = "GameSDKDemo-" + variant.name + defaultConfig.versionName + ".apk" 80 outputFileName = "GameSDKDemo-" + variant.name + defaultConfig.versionName + ".apk"
81 } 81 }
82 } 82 }
83 83
84 } 84 }
85 85
86 dependencies { 86 dependencies {
87 implementation fileTree(include: ['*.jar'], dir: 'libs') 87 implementation fileTree(include: ['*.jar'], dir: 'libs')
88 // implementation 'com.android.support:support-v4:27.1.1' 88 // implementation 'com.android.support:support-v4:27.1.1'
89 implementation 'androidx.appcompat:appcompat:1.1.0' 89 implementation 'androidx.appcompat:appcompat:1.1.0'
90 implementation 'androidx.fragment:fragment:1.1.0' 90 implementation 'androidx.fragment:fragment:1.1.0'
91 implementation 'com.google.android.material:material:1.0.0' 91 implementation 'com.google.android.material:material:1.0.0'
92 testImplementation 'junit:junit:4.12' 92 testImplementation 'junit:junit:4.12'
93 // implementation 'com.android.support:appcompat-v7:27.1.1' 93 // implementation 'com.android.support:appcompat-v7:27.1.1'
94 // implementation 'com.android.support:design:27.1.1' 94 // implementation 'com.android.support:design:27.1.1'
95 // implementation project(':GameSDK') 95 // implementation project(':GameSDK')
96 // implementation project(':IAP5Helper') 96 // implementation project(':IAP5Helper')
97 implementation 'com.gumptech.sdk:GameSDK:4.8.0' 97 implementation 'com.gumptech.sdk:GameSDK:4.9.0'
98 // implementation 'com.gump.game.sdk:SamsungIAP:5.1.1' 98 // implementation 'com.gump.game.sdk:SamsungIAP:5.1.1'
99 } 99 }
100 100
GameSDKDemo/gradle/wrapper/gradle-wrapper.jar
No preview for this file type
GameSDKDemo/gradle/wrapper/gradle-wrapper.properties
File was created 1 #Thu Jun 04 13:41:54 CST 2020
2 distributionBase=GRADLE_USER_HOME
3 distributionPath=wrapper/dists
4 zipStoreBase=GRADLE_USER_HOME
5 zipStorePath=wrapper/dists
6 distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
7
File was created 1 #!/usr/bin/env sh
2
3 ##############################################################################
4 ##
5 ## Gradle start up script for UN*X
6 ##
7 ##############################################################################
8
9 # Attempt to set APP_HOME
10 # Resolve links: $0 may be a link
11 PRG="$0"
12 # Need this for relative symlinks.
13 while [ -h "$PRG" ] ; do
14 ls=`ls -ld "$PRG"`
15 link=`expr "$ls" : '.*-> \(.*\)$'`
16 if expr "$link" : '/.*' > /dev/null; then
17 PRG="$link"
18 else
19 PRG=`dirname "$PRG"`"/$link"
20 fi
21 done
22 SAVED="`pwd`"
23 cd "`dirname \"$PRG\"`/" >/dev/null
24 APP_HOME="`pwd -P`"
25 cd "$SAVED" >/dev/null
26
27 APP_NAME="Gradle"
28 APP_BASE_NAME=`basename "$0"`
29
30 # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
31 DEFAULT_JVM_OPTS=""
32
33 # Use the maximum available, or set MAX_FD != -1 to use that value.
34 MAX_FD="maximum"
35
36 warn () {
37 echo "$*"
38 }
39
40 die () {
41 echo
42 echo "$*"
43 echo
44 exit 1
45 }
46
47 # OS specific support (must be 'true' or 'false').
48 cygwin=false
49 msys=false
50 darwin=false
51 nonstop=false
52 case "`uname`" in
53 CYGWIN* )
54 cygwin=true
55 ;;
56 Darwin* )
57 darwin=true
58 ;;
59 MINGW* )
60 msys=true
61 ;;
62 NONSTOP* )
63 nonstop=true
64 ;;
65 esac
66
67 CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
68
69 # Determine the Java command to use to start the JVM.
70 if [ -n "$JAVA_HOME" ] ; then
71 if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
72 # IBM's JDK on AIX uses strange locations for the executables
73 JAVACMD="$JAVA_HOME/jre/sh/java"
74 else
75 JAVACMD="$JAVA_HOME/bin/java"
76 fi
77 if [ ! -x "$JAVACMD" ] ; then
78 die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
79
80 Please set the JAVA_HOME variable in your environment to match the
81 location of your Java installation."
82 fi
83 else
84 JAVACMD="java"
85 which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
86
87 Please set the JAVA_HOME variable in your environment to match the
88 location of your Java installation."
89 fi
90
91 # Increase the maximum file descriptors if we can.
92 if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
93 MAX_FD_LIMIT=`ulimit -H -n`
94 if [ $? -eq 0 ] ; then
95 if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
96 MAX_FD="$MAX_FD_LIMIT"
97 fi
98 ulimit -n $MAX_FD
99 if [ $? -ne 0 ] ; then
100 warn "Could not set maximum file descriptor limit: $MAX_FD"
101 fi
102 else
103 warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
104 fi
105 fi
106
107 # For Darwin, add options to specify how the application appears in the dock
108 if $darwin; then
109 GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
110 fi
111
112 # For Cygwin, switch paths to Windows format before running java
113 if $cygwin ; then
114 APP_HOME=`cygpath --path --mixed "$APP_HOME"`
115 CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
116 JAVACMD=`cygpath --unix "$JAVACMD"`
117
118 # We build the pattern for arguments to be converted via cygpath
119 ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
120 SEP=""
121 for dir in $ROOTDIRSRAW ; do
122 ROOTDIRS="$ROOTDIRS$SEP$dir"
123 SEP="|"
124 done
125 OURCYGPATTERN="(^($ROOTDIRS))"
126 # Add a user-defined pattern to the cygpath arguments
127 if [ "$GRADLE_CYGPATTERN" != "" ] ; then
128 OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
129 fi
130 # Now convert the arguments - kludge to limit ourselves to /bin/sh
131 i=0
132 for arg in "$@" ; do
133 CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
134 CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
135
136 if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
137 eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
138 else
139 eval `echo args$i`="\"$arg\""
140 fi
141 i=$((i+1))
142 done
143 case $i in
144 (0) set -- ;;
145 (1) set -- "$args0" ;;
146 (2) set -- "$args0" "$args1" ;;
147 (3) set -- "$args0" "$args1" "$args2" ;;
148 (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149 (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150 (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151 (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152 (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153 (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154 esac
155 fi
156
157 # Escape application args
158 save () {
159 for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
160 echo " "
161 }
162 APP_ARGS=$(save "$@")
163
164 # Collect all arguments for the java command, following the shell quoting and substitution rules
165 eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
166
167 # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
168 if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
169 cd "$(dirname "$0")"
170 fi
171
172 exec "$JAVACMD" "$@"
173
GameSDKDemo/gradlew.bat
File was created 1 @if "%DEBUG%" == "" @echo off
2 @rem ##########################################################################
3 @rem
4 @rem Gradle startup script for Windows
5 @rem
6 @rem ##########################################################################
7
8 @rem Set local scope for the variables with windows NT shell
9 if "%OS%"=="Windows_NT" setlocal
10
11 set DIRNAME=%~dp0
12 if "%DIRNAME%" == "" set DIRNAME=.
13 set APP_BASE_NAME=%~n0
14 set APP_HOME=%DIRNAME%
15
16 @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17 set DEFAULT_JVM_OPTS=
18
19 @rem Find java.exe
20 if defined JAVA_HOME goto findJavaFromJavaHome
21
22 set JAVA_EXE=java.exe
23 %JAVA_EXE% -version >NUL 2>&1
24 if "%ERRORLEVEL%" == "0" goto init
25
26 echo.
27 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 echo.
29 echo Please set the JAVA_HOME variable in your environment to match the
30 echo location of your Java installation.
31
32 goto fail
33
34 :findJavaFromJavaHome
35 set JAVA_HOME=%JAVA_HOME:"=%
36 set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37
38 if exist "%JAVA_EXE%" goto init
39
40 echo.
41 echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 echo.
43 echo Please set the JAVA_HOME variable in your environment to match the
44 echo location of your Java installation.
45
46 goto fail
47
48 :init
49 @rem Get command-line arguments, handling Windows variants
50
51 if not "%OS%" == "Windows_NT" goto win9xME_args
52
53 :win9xME_args
54 @rem Slurp the command line arguments.
55 set CMD_LINE_ARGS=
56 set _SKIP=2
57
58 :win9xME_args_slurp
59 if "x%~1" == "x" goto execute
60
61 set CMD_LINE_ARGS=%*
62
63 :execute
64 @rem Setup the command line
65
66 set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
67
68 @rem Execute Gradle
69 "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
70
71 :end
72 @rem End local scope for the variables with windows NT shell
73 if "%ERRORLEVEL%"=="0" goto mainEnd
74
75 :fail
76 rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
77 rem the _cmd.exe /c_ return code!
78 if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
79 exit /b 1
80
81 :mainEnd
82 if "%OS%"=="Windows_NT" endlocal
83
84 :omega
85
GameSDKDemo/src/main/AndroidManifest.xml
1 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2 package="com.gump.game.sdk.demo"> 2 package="com.gump.game.sdk.demo">
3 3
4 4
5 <uses-permission android:name="android.permission.INTERNET"/> 5 <uses-permission android:name="android.permission.INTERNET"/>
6 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 6 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
7 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 7 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
8 <!-- Danger Level permission--> 8 <!-- Danger Level permission-->
9 9
10 <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. --> 10 <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. -->
11 <uses-permission android:name="com.android.vending.BILLING"/> 11 <uses-permission android:name="com.android.vending.BILLING"/>
12 <!--samgung iap need this permission--> 12 <!--samgung iap need this permission-->
13 <uses-permission android:name="com.samsung.android.iap.permission.BILLING"/> 13 <uses-permission android:name="com.samsung.android.iap.permission.BILLING"/>
14 14
15 <application 15 <application
16 android:allowBackup="true" 16 android:allowBackup="true"
17 android:icon="@drawable/ic_launcher" 17 android:icon="@drawable/ic_launcher"
18 android:label="@string/app_name"> 18 android:label="@string/app_name">
19 <activity 19 <activity
20 android:name="com.gump.game.sdk.demo.MainActivity" 20 android:name="com.gump.game.sdk.demo.MainActivity"
21 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout" 21 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
22 android:label="@string/app_name" 22 android:label="@string/app_name"
23 android:theme="@style/Theme.AppCompat.Light.NoActionBar" 23 android:theme="@style/Theme.AppCompat.Light.NoActionBar"
24 android:screenOrientation="portrait"> 24 >
25 <intent-filter> 25 <intent-filter>
26 <action android:name="android.intent.action.MAIN"/> 26 <action android:name="android.intent.action.MAIN"/>
27 27
28 <category android:name="android.intent.category.LAUNCHER"/> 28 <category android:name="android.intent.category.LAUNCHER"/>
29 </intent-filter> 29 </intent-filter>
30 </activity> 30 </activity>
31
31 <activity 32 <activity
32 android:name="com.gump.game.sdk.PassportActivity" 33 android:name="com.gump.game.sdk.PassportActivity"
33 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout" 34 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
34 android:launchMode="singleTask" 35 android:launchMode="singleTask"
35 android:theme="@style/Theme.Pink" 36 android:theme="@style/Theme.Origin"
36 android:screenOrientation="behind" 37 android:screenOrientation="behind"
37 android:windowSoftInputMode="stateAlwaysHidden|adjustPan"> 38 android:windowSoftInputMode="stateAlwaysHidden|adjustPan">
38 </activity> 39 </activity>
39 <activity 40 <activity
40 android:name="com.gump.game.sdk.RechargeActivity" 41 android:name="com.gump.game.sdk.RechargeActivity"
41 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout" 42 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
42 android:launchMode="singleTask" 43 android:launchMode="singleTask"
43 android:screenOrientation="behind" 44 android:screenOrientation="behind"
44 android:theme="@style/Theme.Translucent"> 45 android:theme="@style/Theme.Translucent">
45 <intent-filter> 46 <intent-filter>
46 <category android:name="android.intent.category.DEFAULT"/> 47 <category android:name="android.intent.category.DEFAULT"/>
47 48
48 <action android:name="android.intent.action.VIEW"/> 49 <action android:name="android.intent.action.VIEW"/>
49 50
50 <category android:name="android.intent.category.BROWSABLE"/> 51 <category android:name="android.intent.category.BROWSABLE"/>
51 52
52 <data 53 <data
53 android:host="com.gump.sdk" 54 android:host="com.gump.sdk"
54 android:scheme="gump100"/> 55 android:scheme="gump100"/>
55 </intent-filter> 56 </intent-filter>
56 </activity> 57 </activity>
57 58
58 </application> 59 </application>
59 60
60 61
61 </manifest> 62 </manifest>
62 63
GameSDKDemo/src/main/java/com/gump/game/sdk/demo/MainActivity.java
1 package com.gump.game.sdk.demo; 1 package com.gump.game.sdk.demo;
2 2
3 import android.os.Bundle; 3 import android.os.Bundle;
4 import android.util.Log; 4 import android.util.Log;
5 import android.widget.Button; 5 import android.widget.Button;
6 import android.widget.TextView; 6 import android.widget.TextView;
7 import android.widget.Toast; 7 import android.widget.Toast;
8 8
9 import com.gump.game.sdk.GameSDK;
10 import com.gump.game.sdk.GumpPreference; 9 import com.gump.game.sdk.GumpPreference;
10 import com.gump.game.sdk.GameSDK;
11 import com.gump.game.sdk.SDKSettings; 11 import com.gump.game.sdk.SDKSettings;
12 import com.gump.game.sdk.bean.GumpUser; 12 import com.gump.game.sdk.bean.GumpUser;
13 import com.gump.game.sdk.callback.LoginStateListener; 13 import com.gump.game.sdk.callback.LoginStateListener;
14 import com.gump.game.sdk.callback.RechargeCallback; 14 import com.gump.game.sdk.callback.RechargeCallback;
15 import com.gump.game.sdk.passport.fb.FBAccessToken; 15 import com.gump.game.sdk.passport.fb.FBAccessToken;
16 16
17 import java.util.Locale; 17 import java.util.Locale;
18 18
19 import androidx.appcompat.app.AppCompatActivity; 19 import androidx.appcompat.app.AppCompatActivity;
20 20
21 public class MainActivity extends AppCompatActivity implements RechargeCallback { 21 public class MainActivity extends AppCompatActivity implements RechargeCallback {
22 22
23 private static final String TAG = "MainActivity"; 23 private static final String TAG = "MainActivity";
24 24
25 private TextView tvVersion; 25 private TextView tvVersion;
26 private TextView userInfo; 26 private TextView userInfo;
27 27
28 private Button btnLoginOrLogout; 28 private Button btnLoginOrLogout;
29 private Button btnCheckState; 29 private Button btnCheckState;
30 private Button btnPay; 30 private Button btnPay;
31 private Button btnIap; 31 private Button btnIap;
32 32
33 private String appId = "100"; 33 private String appId = "100";
34 private String appKey = "f899139df5e1059396431415e770c6dd";
35 private GumpUser gumpUser; 34 private GumpUser gumpUser;
36 35
37 /** 36 /**
38 * 测试数据 37 * 测试数据
39 */ 38 */
40 String serverId = "100"; 39 String serverId = "100";
41 String roleId = "41080"; 40 String roleId = "41080";
42 41
43 42
44 @Override 43 @Override
45 protected void onCreate(Bundle savedInstanceState) { 44 protected void onCreate(Bundle savedInstanceState) {
46 super.onCreate(savedInstanceState); 45 super.onCreate(savedInstanceState);
47 setContentView(R.layout.activity_main); 46 setContentView(R.layout.activity_main);
48 47
49 tvVersion = findViewById(R.id.version); 48 tvVersion = findViewById(R.id.version);
50 userInfo = findViewById(R.id.user_info); 49 userInfo = findViewById(R.id.user_info);
51 btnLoginOrLogout = findViewById(R.id.login_or_logout); 50 btnLoginOrLogout = findViewById(R.id.login_or_logout);
52 btnCheckState = findViewById(R.id.check_state); 51 btnCheckState = findViewById(R.id.check_state);
53 btnLoginOrLogout.setOnClickListener(v -> { 52 btnLoginOrLogout.setOnClickListener(v -> {
54 if (btnLoginOrLogout.getTag() == null || (Integer) btnLoginOrLogout.getTag() == 0) 53 if (btnLoginOrLogout.getTag() == null || (Integer) btnLoginOrLogout.getTag() == 0)
55 GameSDK.login(MainActivity.this); 54 GameSDK.login(MainActivity.this);
56 else 55 else
57 GameSDK.logout(MainActivity.this); 56 GameSDK.logout(MainActivity.this);
58 }); 57 });
59 btnCheckState.setOnClickListener(v -> { 58 btnCheckState.setOnClickListener(v -> {
60 GameSDK.iapUsable(MainActivity.this, serverId, roleId, usable -> { 59 GameSDK.iapUsable(MainActivity.this, serverId, roleId, usable -> {
61 btnIap.setEnabled(usable); 60 btnIap.setEnabled(usable);
62 btnPay.setEnabled(!usable); 61 btnPay.setEnabled(!usable);
63 }); 62 });
64 }); 63 });
65 btnPay = findViewById(R.id.pay); 64 btnPay = findViewById(R.id.pay);
66 btnPay.setOnClickListener(v -> { 65 btnPay.setOnClickListener(v -> {
67 PaymentInfoSubmitFragment submitFragment = PaymentInfoSubmitFragment.newInstance(payInfo -> GameSDK.pay(MainActivity.this, payInfo, MainActivity.this)); 66 PaymentInfoSubmitFragment submitFragment = PaymentInfoSubmitFragment.newInstance(payInfo -> GameSDK.pay(MainActivity.this, payInfo, MainActivity.this));
68 submitFragment.show(getSupportFragmentManager(), "pay"); 67 submitFragment.show(getSupportFragmentManager(), "pay");
69 }); 68 });
70 btnIap = findViewById(R.id.iap); 69 btnIap = findViewById(R.id.iap);
71 btnIap.setOnClickListener(v -> { 70 btnIap.setOnClickListener(v -> {
72 PaymentInfoSubmitFragment submitFragment = PaymentInfoSubmitFragment.newInstance(payInfo -> GameSDK.iap(MainActivity.this, payInfo, MainActivity.this)); 71 PaymentInfoSubmitFragment submitFragment = PaymentInfoSubmitFragment.newInstance(payInfo -> GameSDK.iap(MainActivity.this, payInfo, MainActivity.this));
73 submitFragment.show(getSupportFragmentManager(), "iap"); 72 submitFragment.show(getSupportFragmentManager(), "iap");
74 }); 73 });
75 74
76 75
77 Log.i("DEMO", "country:" + Locale.getDefault().getCountry() + ",language:" + Locale.getDefault().getLanguage()); 76 Log.i("DEMO", "country:" + Locale.getDefault().getCountry() + ",language:" + Locale.getDefault().getLanguage());
78 77
79 GameSDK.getSettings().setDebug(false); 78 GameSDK.getSettings().setDebug(false);
80 /** 79 /**
81 * 设置是否打印debug日志 80 * 设置是否打印debug日志
82 */ 81 */
83 GameSDK.getSettings().enableDebugLogging(true); 82 GameSDK.getSettings().enableDebugLogging(true);
84 /** 83 /**
85 * 设置启用facebook登录 84 * 设置启用facebook登录
86 */ 85 */
87 GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_FB); 86 GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_FB);
88 87
89 /** 88 /**
90 * 设置启用google登录 89 * 设置启用google登录
91 */ 90 */
92 GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_GOOGLE); 91 GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_GOOGLE);
93 92
94 /** 93 /**
95 * 设置启用Line登录 94 * 设置启用Line登录
96 */ 95 */
97 GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_LINE); 96 GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_LINE);
98 97
99 98
100 /** 99 /**
101 * 设置用户登录状态监听器 100 * 设置用户登录状态监听器
102 */ 101 */
103 102
104 GameSDK.setUserStateListener(new LoginStateListener() { 103 GameSDK.setUserStateListener(new LoginStateListener() {
105 @Override 104 @Override
106 public void onLoginSuccess(GumpUser user) { 105 public void onLoginSuccess(GumpUser user) {
107 btnCheckState.setEnabled(true); 106 btnCheckState.setEnabled(true);
108 gumpUser = user; 107 gumpUser = user;
109 String userType = null; 108 String userType = null;
110 switch (user.getAccountType()) { 109 switch (user.getAccountType()) {
111 case GumpPreference.ACCOUNT_TYPE_FB: 110 case GumpPreference.ACCOUNT_TYPE_FB:
112 userType = "Facebook登录"; 111 userType = "Facebook登录";
113 String fbToken = FBAccessToken.getCurrentAccessToken().getToken(); 112 String fbToken = FBAccessToken.getCurrentAccessToken().getToken();
114 Log.d(TAG, "FBAccessToken:" + fbToken); 113 Log.d(TAG, "FBAccessToken:" + fbToken);
115 break; 114 break;
116 case GumpPreference.ACCOUNT_TYPE_QUICK_REG: 115 case GumpPreference.ACCOUNT_TYPE_QUICK_REG:
117 userType = "快速登录"; 116 userType = "快速登录";
118 break; 117 break;
119 case GumpPreference.ACCOUNT_TYPE_REG: 118 case GumpPreference.ACCOUNT_TYPE_REG:
120 userType = "gump注册用户"; 119 userType = "gump注册用户";
121 break; 120 break;
122 case GumpPreference.ACCOUNT_TYPE_GOOGLE: 121 case GumpPreference.ACCOUNT_TYPE_GOOGLE:
123 userType = "google 登录"; 122 userType = "google 登录";
124 break; 123 break;
125 case GumpPreference.ACCOUNT_TYPE_LINE: 124 case GumpPreference.ACCOUNT_TYPE_LINE:
126 userType = "Line登录"; 125 userType = "Line登录";
127 break; 126 break;
128 } 127 }
129 userInfo.setText(" Userid:" + user.getUid() + "\n accountType:(" + user.getAccountType() + ") " + userType + "\n sessionKey:" + user.getSessionKey() 128 userInfo.setText(" Userid:" + user.getUid() + "\n accountType:(" + user.getAccountType() + ") " + userType + "\n sessionKey:" + user.getSessionKey()
130 .getToken()); 129 .getToken());
131 btnLoginOrLogout.setText("Logout"); 130 btnLoginOrLogout.setText("Logout");
132 btnLoginOrLogout.setTag(1); 131 btnLoginOrLogout.setTag(1);
133 } 132 }
134 133
135 @Override 134 @Override
136 public void onLoginFailed(int code, String msg) { 135 public void onLoginFailed(int code, String msg) {
137 userInfo.setText(msg); 136 userInfo.setText(msg);
138 Toast.makeText(MainActivity.this, "Login failed:code=" + code + ",message=" + msg, Toast.LENGTH_SHORT).show(); 137 Toast.makeText(MainActivity.this, "Login failed:code=" + code + ",message=" + msg, Toast.LENGTH_SHORT).show();
139 } 138 }
140 139
141 @Override 140 @Override
142 public void onLoginCanceled() { 141 public void onLoginCanceled() {
143 Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show(); 142 Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show();
144 } 143 }
145 144
146 @Override 145 @Override
147 public void onLogout() { 146 public void onLogout() {
148 btnLoginOrLogout.setText("Login"); 147 btnLoginOrLogout.setText("Login");
149 btnLoginOrLogout.setTag(0); 148 btnLoginOrLogout.setTag(0);
150 userInfo.setText("User is logout"); 149 userInfo.setText("User is logout");
151 } 150 }
152 151
153 @Override 152 @Override
154 public void onPermissionDenied(String[] deniedPermissions) { 153 public void onPermissionDenied(String[] deniedPermissions) {
155 StringBuilder sb = new StringBuilder(); 154 StringBuilder sb = new StringBuilder();
156 for (String s : deniedPermissions) { 155 for (String s : deniedPermissions) {
157 sb.append(s); 156 sb.append(s);
158 sb.append(","); 157 sb.append(",");
159 } 158 }
160 Toast.makeText(MainActivity.this, "Permission denied:" + sb.toString(), Toast.LENGTH_SHORT).show(); 159 Toast.makeText(MainActivity.this, "Permission denied:" + sb.toString(), Toast.LENGTH_SHORT).show();
161 } 160 }
162 }); 161 });
163 /** 162 /**
164 * 初始化sdk 163 * 初始化sdk
165 */ 164 */
166 GameSDK.init(getApplicationContext(), appId); 165 GameSDK.init(getApplicationContext(), appId);
167 166
168 tvVersion.setText("SDK Version:" + GameSDK.getVersion()); 167 tvVersion.setText("SDK Version:" + GameSDK.getVersion());
169 168
170 } 169 }
171 170
172 private void checkRisk() { 171 private void checkRisk() {
173 GameSDK.inspectRiskLevel(this, isRisk -> Log.i(TAG, isRisk ? "There is some risks" : "Nothing is risk")); 172 GameSDK.inspectRiskLevel(this, isRisk -> Log.i(TAG, isRisk ? "There is some risks" : "Nothing is risk"));
174 } 173 }
175 174
176 @Override 175 @Override
177 public void onPurchaseCompleted() { 176 public void onPurchaseCompleted() {
178 Log.i(TAG, "purchase completed"); 177 Log.i(TAG, "purchase completed");
179 } 178 }
180 179
181 @Override 180 @Override
182 public void onPurchaseError(int code, String msg) { 181 public void onPurchaseError(int code, String msg) {
183 Log.i(TAG, "purchase error:"+code+","+msg); 182 Log.i(TAG, "purchase error:"+code+","+msg);
184 } 183 }
185 184
186 @Override 185 @Override
187 public void onPurchaseCanceled() { 186 public void onPurchaseCanceled() {
188 Log.i(TAG, "purchase canceled"); 187 Log.i(TAG, "purchase canceled");
189 } 188 }
190 189
191 190
192 } 191 }
GameSDKDemo/src/main/res/drawable-hdpi/ic_launcher.jpeg

1.82 KB

GameSDKDemo/src/main/res/drawable-hdpi/ic_launcher.png

7.23 KB

GameSDKDemo/src/main/res/drawable-mdpi/ic_launcher.png

4.73 KB

GameSDKDemo/src/main/res/drawable-xhdpi/ic_launcher.jpeg

2.33 KB

GameSDKDemo/src/main/res/drawable-xhdpi/ic_launcher.png

9.91 KB

GameSDKDemo/src/main/res/values-zh/strings.xml
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <resources> 2 <resources>
3 3
4 <string name="app_name">GameSDKSample</string> 4 <string name="app_name">Baked Stone</string>
5 5
6 <string name="init">初始化</string> 6 <string name="init">初始化</string>
7 <string name="login">登录</string> 7 <string name="login">登录</string>
8 <string name="check">检查支付状态</string> 8 <string name="check">检查支付状态</string>
9 <string name="iap">官方支付(插件支付)</string> 9 <string name="iap">官方支付(插件支付)</string>
10 <string name="pay">三方支付</string> 10 <string name="pay">三方支付</string>
11 11
12 12
13 <string name="hint_product">商品id/商品名</string> 13 <string name="hint_product">商品id/商品名</string>
14 <string name="hint_amount">金额</string> 14 <string name="hint_amount">金额</string>
15 <string name="hint_currency">货币代码</string> 15 <string name="hint_currency">货币代码</string>
16 <string name="hint_server_id">serverId</string> 16 <string name="hint_server_id">serverId</string>
17 <string name="hint_role_id">roleId</string> 17 <string name="hint_role_id">roleId</string>
18 <string name="hint_extra">游戏透传信息(extraInfo)</string> 18 <string name="hint_extra">游戏透传信息(extraInfo)</string>
19 <string name="go_pay">去支付</string> 19 <string name="go_pay">去支付</string>
20 </resources> 20 </resources>
21 21
GameSDKDemo/src/main/res/values/strings.xml
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <resources> 2 <resources>
3 3
4 <string name="app_name">GameSDKSample</string> 4 <string name="app_name">Baked Stone</string>
5 5
6 <string name="init">Initialize</string> 6 <string name="init">Initialize</string>
7 <string name="login">Login</string> 7 <string name="login">Login</string>
8 <string name="check">Check payemnt state</string> 8 <string name="check">Check payemnt state</string>
9 <string name="iap">IAP</string> 9 <string name="iap">IAP</string>
10 <string name="pay">Pay</string> 10 <string name="pay">Pay</string>
11 11
12 <string name="hint_product">product</string> 12 <string name="hint_product">product</string>
13 <string name="hint_amount">amount</string> 13 <string name="hint_amount">amount</string>
14 <string name="hint_currency">currency</string> 14 <string name="hint_currency">currency</string>
15 <string name="hint_server_id">serverId</string> 15 <string name="hint_server_id">serverId</string>
16 <string name="hint_role_id">roleId</string> 16 <string name="hint_role_id">roleId</string>
17 <string name="hint_extra">extraInfo</string> 17 <string name="hint_extra">extraInfo</string>
18 <string name="go_pay">Submit</string> 18 <string name="go_pay">Submit</string>
19 19
20 </resources> 20 </resources>
21 21