Commit 51314e2bf10755bd85a9c9b7f9928f5fcb8fd7ee

Authored by 赵康
1 parent 9f8c42483b
Exists in master

3.2.0版本

增加facebook sdk登录
重构回调方式,不依赖activity

Showing 17 changed files with 554 additions and 105 deletions Side-by-side Diff

android/GameSDKRelease/.gitignore
1 1 /bin/
  2 +
2 3 /gen/
  4 +
3 5 .classpath
4 6 \ No newline at end of file
android/GameSDKRelease/libs/GameSDK_v3.1.1_proguard.jar
No preview for this file type
android/GameSDKRelease/libs/GameSDK_v3.2.0_proguard.jar
No preview for this file type
android/GameSDKRelease/libs/android-support-v4.jar
No preview for this file type
android/GameSDKRelease/lint.xml
... ... @@ -1,4 +0,0 @@
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<lint>
3   - <issue id="MissingTranslation" severity="warning" />
4   -</lint>
5 0 \ No newline at end of file
android/GameSDKRelease/project.properties
... ... @@ -13,3 +13,4 @@
13 13 # Project target.
14 14 target=android-18
15 15 android.library=true
  16 +android.library.reference.1=../../../../../facebook
android/GameSDKSample/.gitignore
1 1 /gen/
  2 +
2 3 /bin/
  4 +
  5 +/build
  6 +
  7 +/gradle
  8 +
  9 +/.gradle
  10 +/.idea
3 11 \ No newline at end of file
android/GameSDKSample/AndroidManifest.xml
... ... @@ -2,11 +2,11 @@
2 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 3 package="com.loginsdk.sample"
4 4 android:versionCode="6"
5   - android:versionName="1.6" >
  5 + android:versionName="1.6">
6 6  
7 7 <uses-sdk
8   - android:minSdkVersion="8"
9   - android:targetSdkVersion="8" />
  8 + android:minSdkVersion="9"
  9 + android:targetSdkVersion="22" />
10 10  
11 11 <uses-permission android:name="android.permission.INTERNET" />
12 12 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
... ... @@ -40,12 +40,12 @@
40 40 <application
41 41 android:allowBackup="true"
42 42 android:icon="@drawable/ic_launcher"
43   - android:label="@string/app_name" >
  43 + android:label="@string/app_name">
44 44 <activity
45 45 android:name="com.gumptech.loginsdk.sample.MainActivity"
46 46 android:configChanges="navigation|orientation|keyboard"
47 47 android:label="@string/app_name"
48   - android:screenOrientation="portrait" >
  48 + android:screenOrientation="portrait">
49 49 <intent-filter>
50 50 <action android:name="android.intent.action.MAIN" />
51 51  
... ... @@ -55,21 +55,23 @@
55 55 <activity
56 56 android:name="com.gumptech.sdk.ContainerActivity"
57 57 android:configChanges="orientation|screenLayout"
58   - android:theme="@style/container_dialog" >
59   - </activity>
  58 + android:theme="@style/container_dialog"></activity>
60 59 <activity
61 60 android:name="com.gumptech.sdk.PaymentActivity"
62 61 android:configChanges="orientation|screenLayout"
63   - android:theme="@android:style/Theme.Translucent.NoTitleBar" >
64   - </activity>
  62 + android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity>
65 63 <activity
66 64 android:name="com.gumptech.sdk.ExchangeWindow"
67 65 android:configChanges="orientation|screenLayout"
68   - android:theme="@style/ex_win" >
69   - </activity>
  66 + android:theme="@style/ex_win"></activity>
70 67  
71   - <service android:name="com.gumptech.sdk.PushService" >
72   - </service>
  68 + <service android:name="com.gumptech.sdk.PushService"></service>
  69 +
  70 + <activity
  71 + android:name="com.facebook.FacebookActivity"
  72 + android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
  73 + android:label="@string/app_name"
  74 + android:theme="@android:style/Theme.Translucent.NoTitleBar" />
73 75 </application>
74 76  
75 77 </manifest>
76 78 \ No newline at end of file
android/GameSDKSample/GameSDKSample.iml
... ... @@ -0,0 +1,85 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<module external.linked.project.id="GameSDKSample" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
  3 + <component name="FacetManager">
  4 + <facet type="android-gradle" name="Android-Gradle">
  5 + <configuration>
  6 + <option name="GRADLE_PROJECT_PATH" value=":" />
  7 + </configuration>
  8 + </facet>
  9 + <facet type="java-gradle" name="Java-Gradle">
  10 + <configuration>
  11 + <option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
  12 + <option name="BUILDABLE" value="false" />
  13 + </configuration>
  14 + </facet>
  15 + <facet type="android" name="Android">
  16 + <configuration>
  17 + <option name="SELECTED_BUILD_VARIANT" value="release" />
  18 + <option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
  19 + <option name="ASSEMBLE_TASK_NAME" value="assembleRelease" />
  20 + <option name="COMPILE_JAVA_TASK_NAME" value="compileReleaseSources" />
  21 + <option name="SOURCE_GEN_TASK_NAME" value="generateReleaseSources" />
  22 + <option name="ALLOW_USER_CONFIGURATION" value="false" />
  23 + <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/res" />
  24 + </configuration>
  25 + </facet>
  26 + </component>
  27 + <component name="NewModuleRootManager" inherit-compiler-output="false">
  28 + <output url="file://$MODULE_DIR$/build/intermediates/classes/release" />
  29 + <output-test url="file://$MODULE_DIR$/build/intermediates/classes/androidTest/debug" />
  30 + <exclude-output />
  31 + <content url="file://$MODULE_DIR$">
  32 + <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/release" isTestSource="false" generated="true" />
  33 + <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/release" isTestSource="false" generated="true" />
  34 + <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/release" isTestSource="false" generated="true" />
  35 + <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/release" isTestSource="false" generated="true" />
  36 + <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/release" type="java-resource" />
  37 + <sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/release" type="java-resource" />
  38 + <sourceFolder url="file://$MODULE_DIR$/build-types/release/res" type="java-resource" />
  39 + <sourceFolder url="file://$MODULE_DIR$/build-types/release/resources" type="java-resource" />
  40 + <sourceFolder url="file://$MODULE_DIR$/build-types/release/assets" type="java-resource" />
  41 + <sourceFolder url="file://$MODULE_DIR$/build-types/release/aidl" isTestSource="false" />
  42 + <sourceFolder url="file://$MODULE_DIR$/build-types/release/java" isTestSource="false" />
  43 + <sourceFolder url="file://$MODULE_DIR$/build-types/release/jni" isTestSource="false" />
  44 + <sourceFolder url="file://$MODULE_DIR$/build-types/release/rs" isTestSource="false" />
  45 + <sourceFolder url="file://$MODULE_DIR$/res" type="java-resource" />
  46 + <sourceFolder url="file://$MODULE_DIR$/src" type="java-resource" />
  47 + <sourceFolder url="file://$MODULE_DIR$/assets" type="java-resource" />
  48 + <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
  49 + <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
  50 + <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
  51 + <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
  52 + <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
  53 + <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
  54 + <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
  55 + <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
  56 + <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
  57 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
  58 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
  59 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
  60 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" />
  61 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
  62 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
  63 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
  64 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
  65 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
  66 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
  67 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/libs" />
  68 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
  69 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
  70 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" />
  71 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
  72 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard" />
  73 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
  74 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
  75 + <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
  76 + <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
  77 + <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
  78 + </content>
  79 + <orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" />
  80 + <orderEntry type="sourceFolder" forTests="false" />
  81 + <orderEntry type="library" exported="" name="bolts-android-1.2.1" level="project" />
  82 + <orderEntry type="library" exported="" name="support-annotations-22.1.1" level="project" />
  83 + <orderEntry type="module" module-name="GameSDK" exported="" />
  84 + </component>
  85 +</module>
0 86 \ No newline at end of file
android/GameSDKSample/build.gradle
... ... @@ -0,0 +1,70 @@
  1 +buildscript {
  2 + repositories {
  3 + mavenCentral()
  4 + }
  5 + dependencies {
  6 + classpath 'com.android.tools.build:gradle:1.2.3'
  7 + }
  8 +}
  9 +repositories {
  10 + mavenCentral()
  11 +}
  12 +apply plugin: 'com.android.application'
  13 +
  14 +dependencies {
  15 + compile fileTree(dir: 'libs', include: '*.jar')
  16 + compile project(':GameSDK')
  17 +}
  18 +
  19 +android {
  20 + signingConfigs {
  21 + letsgame {
  22 + keyAlias 'ZzTYEadlf2349UIkdf38934KDlsfdKqpzmdhewri387429LKDJL'
  23 + keyPassword 'ZDJDLL23YRPQM3BBXjdfpow3KDehwyrojafdajfjadfLDK83I'
  24 + storeFile file('E:/cert/letsgame.keystore')
  25 + storePassword 'ZDJDLL23YRPQM3BBXjdfpow3KDehwyrojafdajfjadfLDK83I'
  26 + }
  27 + }
  28 + compileSdkVersion 22
  29 + buildToolsVersion '22.0.1'
  30 + sourceSets {
  31 + main {
  32 + manifest.srcFile 'AndroidManifest.xml'
  33 + java.srcDirs = ['src']
  34 + resources.srcDirs = ['src']
  35 + aidl.srcDirs = ['src']
  36 + renderscript.srcDirs = ['src']
  37 + res.srcDirs = ['res']
  38 + assets.srcDirs = ['assets']
  39 + }
  40 +
  41 + // Move the tests to tests/java, tests/res, etc...
  42 + instrumentTest.setRoot('tests')
  43 +
  44 + // Move the build types to build-types/<type>
  45 + // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
  46 + // This moves them out of them default location under src/<type>/... which would
  47 + // conflict with src/ being used by the main source set.
  48 + // Adding new build types or product flavors should be accompanied
  49 + // by a similar customization.
  50 + debug.setRoot('build-types/debug')
  51 + release.setRoot('build-types/release')
  52 + }
  53 + compileOptions {
  54 + sourceCompatibility JavaVersion.VERSION_1_7
  55 + targetCompatibility JavaVersion.VERSION_1_7
  56 + }
  57 + buildTypes {
  58 + release {
  59 + signingConfig signingConfigs.letsgame
  60 + }
  61 + debug {
  62 + signingConfig signingConfigs.letsgame
  63 + }
  64 + }
  65 + defaultConfig {
  66 + signingConfig signingConfigs.letsgame
  67 + }
  68 + productFlavors {
  69 + }
  70 +}
android/GameSDKSample/gradlew
... ... @@ -0,0 +1,164 @@
  1 +#!/usr/bin/env bash
  2 +
  3 +##############################################################################
  4 +##
  5 +## Gradle start up script for UN*X
  6 +##
  7 +##############################################################################
  8 +
  9 +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
  10 +DEFAULT_JVM_OPTS=""
  11 +
  12 +APP_NAME="Gradle"
  13 +APP_BASE_NAME=`basename "$0"`
  14 +
  15 +# Use the maximum available, or set MAX_FD != -1 to use that value.
  16 +MAX_FD="maximum"
  17 +
  18 +warn ( ) {
  19 + echo "$*"
  20 +}
  21 +
  22 +die ( ) {
  23 + echo
  24 + echo "$*"
  25 + echo
  26 + exit 1
  27 +}
  28 +
  29 +# OS specific support (must be 'true' or 'false').
  30 +cygwin=false
  31 +msys=false
  32 +darwin=false
  33 +case "`uname`" in
  34 + CYGWIN* )
  35 + cygwin=true
  36 + ;;
  37 + Darwin* )
  38 + darwin=true
  39 + ;;
  40 + MINGW* )
  41 + msys=true
  42 + ;;
  43 +esac
  44 +
  45 +# For Cygwin, ensure paths are in UNIX format before anything is touched.
  46 +if $cygwin ; then
  47 + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  48 +fi
  49 +
  50 +# Attempt to set APP_HOME
  51 +# Resolve links: $0 may be a link
  52 +PRG="$0"
  53 +# Need this for relative symlinks.
  54 +while [ -h "$PRG" ] ; do
  55 + ls=`ls -ld "$PRG"`
  56 + link=`expr "$ls" : '.*-> \(.*\)$'`
  57 + if expr "$link" : '/.*' > /dev/null; then
  58 + PRG="$link"
  59 + else
  60 + PRG=`dirname "$PRG"`"/$link"
  61 + fi
  62 +done
  63 +SAVED="`pwd`"
  64 +cd "`dirname \"$PRG\"`/" >&-
  65 +APP_HOME="`pwd -P`"
  66 +cd "$SAVED" >&-
  67 +
  68 +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
  69 +
  70 +# Determine the Java command to use to start the JVM.
  71 +if [ -n "$JAVA_HOME" ] ; then
  72 + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
  73 + # IBM's JDK on AIX uses strange locations for the executables
  74 + JAVACMD="$JAVA_HOME/jre/sh/java"
  75 + else
  76 + JAVACMD="$JAVA_HOME/bin/java"
  77 + fi
  78 + if [ ! -x "$JAVACMD" ] ; then
  79 + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
  80 +
  81 +Please set the JAVA_HOME variable in your environment to match the
  82 +location of your Java installation."
  83 + fi
  84 +else
  85 + JAVACMD="java"
  86 + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
  87 +
  88 +Please set the JAVA_HOME variable in your environment to match the
  89 +location of your Java installation."
  90 +fi
  91 +
  92 +# Increase the maximum file descriptors if we can.
  93 +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
  94 + MAX_FD_LIMIT=`ulimit -H -n`
  95 + if [ $? -eq 0 ] ; then
  96 + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
  97 + MAX_FD="$MAX_FD_LIMIT"
  98 + fi
  99 + ulimit -n $MAX_FD
  100 + if [ $? -ne 0 ] ; then
  101 + warn "Could not set maximum file descriptor limit: $MAX_FD"
  102 + fi
  103 + else
  104 + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
  105 + fi
  106 +fi
  107 +
  108 +# For Darwin, add options to specify how the application appears in the dock
  109 +if $darwin; then
  110 + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
  111 +fi
  112 +
  113 +# For Cygwin, switch paths to Windows format before running java
  114 +if $cygwin ; then
  115 + APP_HOME=`cygpath --path --mixed "$APP_HOME"`
  116 + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
  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 +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
  158 +function splitJvmOpts() {
  159 + JVM_OPTS=("$@")
  160 +}
  161 +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
  162 +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
  163 +
  164 +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
android/GameSDKSample/gradlew.bat
... ... @@ -0,0 +1,90 @@
  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 +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
  12 +set DEFAULT_JVM_OPTS=
  13 +
  14 +set DIRNAME=%~dp0
  15 +if "%DIRNAME%" == "" set DIRNAME=.
  16 +set APP_BASE_NAME=%~n0
  17 +set APP_HOME=%DIRNAME%
  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 Windowz variants
  50 +
  51 +if not "%OS%" == "Windows_NT" goto win9xME_args
  52 +if "%@eval[2+2]" == "4" goto 4NT_args
  53 +
  54 +:win9xME_args
  55 +@rem Slurp the command line arguments.
  56 +set CMD_LINE_ARGS=
  57 +set _SKIP=2
  58 +
  59 +:win9xME_args_slurp
  60 +if "x%~1" == "x" goto execute
  61 +
  62 +set CMD_LINE_ARGS=%*
  63 +goto execute
  64 +
  65 +:4NT_args
  66 +@rem Get arguments from the 4NT Shell from JP Software
  67 +set CMD_LINE_ARGS=%$
  68 +
  69 +:execute
  70 +@rem Setup the command line
  71 +
  72 +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
  73 +
  74 +@rem Execute Gradle
  75 +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
  76 +
  77 +:end
  78 +@rem End local scope for the variables with windows NT shell
  79 +if "%ERRORLEVEL%"=="0" goto mainEnd
  80 +
  81 +:fail
  82 +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
  83 +rem the _cmd.exe /c_ return code!
  84 +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
  85 +exit /b 1
  86 +
  87 +:mainEnd
  88 +if "%OS%"=="Windows_NT" endlocal
  89 +
  90 +:omega
android/GameSDKSample/lint.xml
... ... @@ -1,4 +0,0 @@
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<lint>
3   - <issue id="MissingTranslation" severity="warning" />
4   -</lint>
5 0 \ No newline at end of file
android/GameSDKSample/local.properties
... ... @@ -0,0 +1,11 @@
  1 +## This file is automatically generated by Android Studio.
  2 +# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
  3 +#
  4 +# This file must *NOT* be checked into Version Control Systems,
  5 +# as it contains information specific to your local configuration.
  6 +#
  7 +# Location of the SDK. This is only used by Gradle.
  8 +# For customization when using a Version Control System, please read the
  9 +# header note.
  10 +#Thu Jul 23 18:18:45 CST 2015
  11 +sdk.dir=D\:\\DevTools\\android-sdk-windows
android/GameSDKSample/project.properties
... ... @@ -12,5 +12,5 @@
12 12  
13 13 # Project target.
14 14  
15   -target=android-18
16   -android.library.reference.1=../GameSDKRelease
  15 +target=android-19
  16 +android.library.reference.1=..\\GameSDKRelease
android/GameSDKSample/settings.gradle
... ... @@ -0,0 +1,4 @@
  1 +include ':facebook'
  2 +include ':GameSDK'
  3 +project(':facebook').projectDir = new File('../../../../../facebook')
  4 +project(':GameSDK').projectDir = new File('../../../../gamesdk/GameSDK')
0 5 \ No newline at end of file
android/GameSDKSample/src/com/gumptech/loginsdk/sample/MainActivity.java
... ... @@ -10,89 +10,109 @@ import android.widget.TextView;
10 10 import android.widget.Toast;
11 11  
12 12 import com.gumptech.sdk.GumpSDK;
  13 +import com.gumptech.sdk.bean.GumpUser;
  14 +import com.gumptech.sdk.bean.PurchaseResult;
  15 +import com.gumptech.sdk.callback.InitializeCallback;
  16 +import com.gumptech.sdk.callback.LoginStateListener;
  17 +import com.gumptech.sdk.callback.PurchaseCallback;
13 18 import com.loginsdk.sample.R;
14 19  
15   -public class MainActivity extends Activity implements GumpSDK.Callback {
16   -
17   - private TextView tvVersion;
18   - private TextView userInfo;
19   -
20   - private Button btnLoginOrLogout;
21   -
22   - private String appId = "10009";
23   -
24   - @Override
25   - protected void onCreate(Bundle savedInstanceState) {
26   - super.onCreate(savedInstanceState);
27   - setContentView(R.layout.activity_main);
28   - tvVersion = (TextView) findViewById(R.id.version);
29   - userInfo = (TextView) findViewById(R.id.user_info);
30   - btnLoginOrLogout = (Button) findViewById(R.id.login_or_logout);
31   - btnLoginOrLogout.setOnClickListener(new View.OnClickListener() {
32   -
33   - @Override
34   - public void onClick(View v) {
35   - if (btnLoginOrLogout.getTag() == null || (Integer) btnLoginOrLogout.getTag() == 0)
36   - GumpSDK.start(MainActivity.this);
37   - else
38   - GumpSDK.logout(MainActivity.this, MainActivity.this);
39   - }
40   - });
41   - findViewById(R.id.pay).setOnClickListener(new View.OnClickListener() {
42   -
43   - @Override
44   - public void onClick(View v) {
45   - Bundle payInfo = new Bundle();
46   - payInfo.putString("nick", "thi");
47   - payInfo.putString("product", "元宝");
48   - payInfo.putFloat("amount", 0.0f);
49   - payInfo.putString("extraInfo", "This is demo!");
50   - payInfo.putString("serverId", "4019");
51   - GumpSDK.pay(MainActivity.this, payInfo, "2263806");
52   - }
53   - });
54   - GumpSDK.init(getApplicationContext(), appId, "483d8df877b31405c1e8fe4247f02d86", "1000");
55   - GumpSDK.setLogoShow(true);
56   - GumpSDK.setScreenLandscape(false);
57   - tvVersion.setText("SDK Version:" + GumpSDK.getVersion());
58   - GumpSDK.start(this);
59   - }
60   -
61   - @Override
62   - protected void onActivityResult(int requestCode, int resultCode, Intent data) {
63   - Log.d("Main", "activity requestCode:" + requestCode + ",resultCode:" + resultCode);
64   - if (requestCode == GumpSDK.LOGIN_REQUEST_CODE) {
65   - if (resultCode == RESULT_OK) {
66   - String uid = data.getStringExtra("userId");
67   - int accountType = data.getIntExtra("accountType", -1);
68   - String sessionkey = data.getStringExtra("sessionKey");
69   - userInfo.setText(" userid:" + uid + "\n accountType:" + accountType + "\n sessionKey:" + sessionkey);
70   - btnLoginOrLogout.setText("Logout");
71   - btnLoginOrLogout.setTag(1);
72   - } else if (resultCode == RESULT_CANCELED) {
73   - Toast.makeText(this, "operate be canceled", Toast.LENGTH_SHORT).show();
74   - }
75   - }
76   - // @Deprecated
77   - // else if (requestCode == GumpSDK.PAY_REQUEST_CODE) {
78   - // if (resultCode == RESULT_OK) {
79   - // int code = data.getIntExtra("code", -1);
80   - // String msg = data.getStringExtra("msg");
81   - // String orderId = data.getStringExtra("orderId");
82   - // String extraInfo = data.getStringExtra("extraInfo");
83   - // Toast.makeText(this, "pay result: " + code + "," + msg + ",orderId:" + orderId + ",extraInfo:" + extraInfo, Toast.LENGTH_SHORT).show();
84   - // } else if (resultCode == RESULT_CANCELED) {
85   - // Toast.makeText(this, "operate be canceled", Toast.LENGTH_SHORT).show();
86   - // }
87   - // }
88   - super.onActivityResult(requestCode, resultCode, data);
89   - }
90   -
91   - @Override
92   - public void onLogout() {
93   - btnLoginOrLogout.setText("Login");
94   - btnLoginOrLogout.setTag(0);
95   - userInfo.append("\n User is logout");
96   - }
  20 +public class MainActivity extends Activity implements PurchaseCallback{
97 21  
  22 + private static final String TAG = "MainActivity";
  23 +
  24 + private TextView tvVersion;
  25 + private TextView userInfo;
  26 +
  27 + private Button btnLoginOrLogout;
  28 +
  29 + private String appId = "10022";
  30 + private String appKey = "93a27b0bd99bac3e68a440b48aa421ab";
  31 +
  32 + @Override
  33 + protected void onCreate(Bundle savedInstanceState) {
  34 + super.onCreate(savedInstanceState);
  35 + setContentView(R.layout.activity_main);
  36 + tvVersion = (TextView) findViewById(R.id.version);
  37 + userInfo = (TextView) findViewById(R.id.user_info);
  38 + btnLoginOrLogout = (Button) findViewById(R.id.login_or_logout);
  39 + btnLoginOrLogout.setOnClickListener(new View.OnClickListener() {
  40 +
  41 + @Override
  42 + public void onClick(View v) {
  43 + if (btnLoginOrLogout.getTag() == null || (Integer) btnLoginOrLogout.getTag() == 0)
  44 + GumpSDK.start(MainActivity.this);
  45 + else
  46 + GumpSDK.logout(MainActivity.this);
  47 + }
  48 + });
  49 + findViewById(R.id.pay).setOnClickListener(new View.OnClickListener() {
  50 +
  51 + @Override
  52 + public void onClick(View v) {
  53 + Bundle payInfo = new Bundle();
  54 + payInfo.putString("nick", "thi");
  55 + payInfo.putString("product", "元宝");
  56 + payInfo.putFloat("amount", 0.0f);
  57 + payInfo.putString("extraInfo", "This is demo!");
  58 + payInfo.putString("serverId", "5001");
  59 + GumpSDK.pay(MainActivity.this, payInfo, "3332768", MainActivity.this);
  60 + }
  61 + });
  62 + GumpSDK.setDebugState(true);
  63 + GumpSDK.setLogoShow(true);
  64 + GumpSDK.setScreenLandscape(false);
  65 + GumpSDK.setUserStateListener(new LoginStateListener() {
  66 + @Override
  67 + public void onLoginSuccess(GumpUser user) {
  68 + userInfo.setText("Userid:" + user.getUid() + "\n accountType:" + user.getAccountType() + "\n sessionKey:" + user.getSessionKey());
  69 + btnLoginOrLogout.setText("Logout");
  70 + btnLoginOrLogout.setTag(1);
  71 + }
  72 +
  73 + @Override
  74 + public void onLoginFailed(int code, String msg) {
  75 + userInfo.setText(msg);
  76 + Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show();
  77 + }
  78 +
  79 + @Override
  80 + public void onLoginCanceled() {
  81 + Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show();
  82 + }
  83 +
  84 + @Override
  85 + public void onLogout() {
  86 + btnLoginOrLogout.setText("Login");
  87 + btnLoginOrLogout.setTag(0);
  88 + userInfo.setText("User is logout");
  89 + }
  90 + });
  91 + GumpSDK.init(getApplicationContext(), appId, appKey, "1000", new InitializeCallback() {
  92 + @Override
  93 + public void initComplete(int result) {
  94 + if (result == GumpSDK.CODE.OK) {
  95 + btnLoginOrLogout.setEnabled(true);
  96 + }
  97 + }
  98 + });
  99 +
  100 +
  101 + tvVersion.setText("SDK Version:" + GumpSDK.getVersion());
  102 + }
  103 +
  104 + @Override
  105 + public void onPurchaseCompleted(PurchaseResult result) {
  106 + Log.i(TAG,"purchase completed");
  107 + }
  108 +
  109 + @Override
  110 + public void onPurchaseError(int code, String msg) {
  111 + Log.i(TAG,"purchase error");
  112 + }
  113 +
  114 + @Override
  115 + public void onPurchaseCanceled() {
  116 + Log.i(TAG,"purchase canceled");
  117 + }
98 118 }