Commit 7cbcf7845c6ec7aa4f0cb12e7ed38e81e8e6beb9
1 parent
f60c7c1fb6
Exists in
master
add sample project
Showing 22 changed files with 400 additions and 0 deletions Side-by-side Diff
- .gitignore
- CohesiveSDKSample/.classpath
- CohesiveSDKSample/.project
- CohesiveSDKSample/AndroidManifest.xml
- CohesiveSDKSample/assets/cohesive.conf
- CohesiveSDKSample/libs/CohesiveSDK.jar
- CohesiveSDKSample/proguard-project.txt
- CohesiveSDKSample/project.properties
- CohesiveSDKSample/res/drawable-hdpi/ic_launcher.png
- CohesiveSDKSample/res/drawable-hdpi/sample_yuanbao.png
- CohesiveSDKSample/res/drawable-mdpi/ic_launcher.png
- CohesiveSDKSample/res/drawable-xhdpi/ic_launcher.png
- CohesiveSDKSample/res/layout/activity_main.xml
- CohesiveSDKSample/res/values-v11/styles.xml
- CohesiveSDKSample/res/values-v14/styles.xml
- CohesiveSDKSample/res/values-w820dp/dimens.xml
- CohesiveSDKSample/res/values/dimens.xml
- CohesiveSDKSample/res/values/strings.xml
- CohesiveSDKSample/res/values/styles.xml
- CohesiveSDKSample/src/com/gump/cohesivesdk/sample/MainActivity.java
- CohesiveSDKSample/src/com/gump/cohesivesdk/sample/MyApplication.java
- CohesiveSDKSample/src/com/gump/cohesivesdk/sample/MySplashActivity.java
.gitignore
CohesiveSDKSample/.classpath
... | ... | @@ -0,0 +1,9 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<classpath> | |
3 | + <classpathentry kind="src" path="src"/> | |
4 | + <classpathentry kind="src" path="gen"/> | |
5 | + <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> | |
6 | + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> | |
7 | + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> | |
8 | + <classpathentry kind="output" path="bin/classes"/> | |
9 | +</classpath> |
CohesiveSDKSample/.project
... | ... | @@ -0,0 +1,33 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<projectDescription> | |
3 | + <name>CohesiveSDKSample</name> | |
4 | + <comment></comment> | |
5 | + <projects> | |
6 | + </projects> | |
7 | + <buildSpec> | |
8 | + <buildCommand> | |
9 | + <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> | |
10 | + <arguments> | |
11 | + </arguments> | |
12 | + </buildCommand> | |
13 | + <buildCommand> | |
14 | + <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> | |
15 | + <arguments> | |
16 | + </arguments> | |
17 | + </buildCommand> | |
18 | + <buildCommand> | |
19 | + <name>org.eclipse.jdt.core.javabuilder</name> | |
20 | + <arguments> | |
21 | + </arguments> | |
22 | + </buildCommand> | |
23 | + <buildCommand> | |
24 | + <name>com.android.ide.eclipse.adt.ApkBuilder</name> | |
25 | + <arguments> | |
26 | + </arguments> | |
27 | + </buildCommand> | |
28 | + </buildSpec> | |
29 | + <natures> | |
30 | + <nature>com.android.ide.eclipse.adt.AndroidNature</nature> | |
31 | + <nature>org.eclipse.jdt.core.javanature</nature> | |
32 | + </natures> | |
33 | +</projectDescription> |
CohesiveSDKSample/AndroidManifest.xml
... | ... | @@ -0,0 +1,35 @@ |
1 | +<?xml version="1.0" encoding="utf-8"?> | |
2 | +<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
3 | + package="com.tencent.tmgp.testgump" | |
4 | + android:versionCode="1" | |
5 | + android:versionName="1.0" > | |
6 | + | |
7 | + <uses-sdk | |
8 | + android:minSdkVersion="8" | |
9 | + android:targetSdkVersion="21" /> | |
10 | + | |
11 | + <uses-permission android:name="android.permission.BLUETOOTH" /> | |
12 | + <uses-permission android:name="android.permission.WRITE_SETTINGS" /> | |
13 | + <uses-permission android:name="android.permission.READ_PHONE_STATE" /> | |
14 | + <uses-permission android:name="android.permission.INTERNET" /> | |
15 | + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | |
16 | + | |
17 | + <application | |
18 | + android:name="com.gump.cohesivesdk.sample.MyApplication" | |
19 | + android:allowBackup="true" | |
20 | + android:icon="@drawable/ic_launcher" | |
21 | + android:label="@string/app_name" > | |
22 | + <activity | |
23 | + android:name="com.gump.cohesivesdk.sample.MainActivity" | |
24 | + android:label="@string/app_name" > | |
25 | + </activity> | |
26 | + <activity android:name="com.gump.cohesivesdk.sample.MySplashActivity" > | |
27 | + <intent-filter> | |
28 | + <action android:name="android.intent.action.MAIN" /> | |
29 | + | |
30 | + <category android:name="android.intent.category.LAUNCHER" /> | |
31 | + </intent-filter> | |
32 | + </activity> | |
33 | + </application> | |
34 | + | |
35 | +</manifest> | |
0 | 36 | \ No newline at end of file |
CohesiveSDKSample/assets/cohesive.conf
CohesiveSDKSample/libs/CohesiveSDK.jar
No preview for this file type
CohesiveSDKSample/proguard-project.txt
... | ... | @@ -0,0 +1,20 @@ |
1 | +# To enable ProGuard in your project, edit project.properties | |
2 | +# to define the proguard.config property as described in that file. | |
3 | +# | |
4 | +# Add project specific ProGuard rules here. | |
5 | +# By default, the flags in this file are appended to flags specified | |
6 | +# in ${sdk.dir}/tools/proguard/proguard-android.txt | |
7 | +# You can edit the include path and order by changing the ProGuard | |
8 | +# include property in project.properties. | |
9 | +# | |
10 | +# For more details, see | |
11 | +# http://developer.android.com/guide/developing/tools/proguard.html | |
12 | + | |
13 | +# Add any project specific keep options here: | |
14 | + | |
15 | +# If your project uses WebView with JS, uncomment the following | |
16 | +# and specify the fully qualified class name to the JavaScript interface | |
17 | +# class: | |
18 | +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { | |
19 | +# public *; | |
20 | +#} |
CohesiveSDKSample/project.properties
... | ... | @@ -0,0 +1,14 @@ |
1 | +# This file is automatically generated by Android Tools. | |
2 | +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! | |
3 | +# | |
4 | +# This file must be checked in Version Control Systems. | |
5 | +# | |
6 | +# To customize properties used by the Ant build system edit | |
7 | +# "ant.properties", and override values to adapt the script to your | |
8 | +# project structure. | |
9 | +# | |
10 | +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): | |
11 | +#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt | |
12 | + | |
13 | +# Project target. | |
14 | +target=android-19 |
CohesiveSDKSample/res/drawable-hdpi/ic_launcher.png
9.18 KB
CohesiveSDKSample/res/drawable-hdpi/sample_yuanbao.png
4.85 KB
CohesiveSDKSample/res/drawable-mdpi/ic_launcher.png
5.11 KB
CohesiveSDKSample/res/drawable-xhdpi/ic_launcher.png
14 KB
CohesiveSDKSample/res/layout/activity_main.xml
... | ... | @@ -0,0 +1,31 @@ |
1 | +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
2 | + xmlns:tools="http://schemas.android.com/tools" | |
3 | + android:layout_width="match_parent" | |
4 | + android:layout_height="match_parent" | |
5 | + android:orientation="vertical" | |
6 | + android:paddingBottom="@dimen/activity_vertical_margin" | |
7 | + android:paddingLeft="@dimen/activity_horizontal_margin" | |
8 | + android:paddingRight="@dimen/activity_horizontal_margin" | |
9 | + android:paddingTop="@dimen/activity_vertical_margin" | |
10 | + tools:context="com.gump.cohesivesdk.sample.MainActivity" > | |
11 | + | |
12 | + <TextView | |
13 | + android:id="@+id/info" | |
14 | + android:layout_width="match_parent" | |
15 | + android:layout_height="wrap_content" | |
16 | + android:gravity="center_horizontal" /> | |
17 | + | |
18 | + <Button | |
19 | + android:id="@+id/login" | |
20 | + android:layout_width="match_parent" | |
21 | + android:layout_height="wrap_content" | |
22 | + android:text="login" /> | |
23 | + | |
24 | + <Button | |
25 | + android:id="@+id/pay" | |
26 | + android:layout_width="match_parent" | |
27 | + android:layout_height="wrap_content" | |
28 | + android:layout_below="@id/login" | |
29 | + android:text="pay" /> | |
30 | + | |
31 | +</LinearLayout> | |
0 | 32 | \ No newline at end of file |
CohesiveSDKSample/res/values-v11/styles.xml
CohesiveSDKSample/res/values-v14/styles.xml
CohesiveSDKSample/res/values-w820dp/dimens.xml
... | ... | @@ -0,0 +1,10 @@ |
1 | +<resources> | |
2 | + | |
3 | + <!-- | |
4 | + Example customization of dimensions originally defined in res/values/dimens.xml | |
5 | + (such as screen margins) for screens with more than 820dp of available width. This | |
6 | + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). | |
7 | + --> | |
8 | + <dimen name="activity_horizontal_margin">64dp</dimen> | |
9 | + | |
10 | +</resources> |
CohesiveSDKSample/res/values/dimens.xml
CohesiveSDKSample/res/values/strings.xml
CohesiveSDKSample/res/values/styles.xml
CohesiveSDKSample/src/com/gump/cohesivesdk/sample/MainActivity.java
... | ... | @@ -0,0 +1,182 @@ |
1 | +package com.gump.cohesivesdk.sample; | |
2 | + | |
3 | +import android.app.Activity; | |
4 | +import android.app.ProgressDialog; | |
5 | +import android.content.Intent; | |
6 | +import android.os.Bundle; | |
7 | +import android.util.Log; | |
8 | +import android.view.View; | |
9 | +import android.widget.Button; | |
10 | +import android.widget.TextView; | |
11 | + | |
12 | +import com.gump.cohesivesdk.CohesiveApi; | |
13 | +import com.gump.cohesivesdk.callback.ExitCallback; | |
14 | +import com.gump.cohesivesdk.callback.InitialCallback; | |
15 | +import com.gump.cohesivesdk.callback.PaymentListener; | |
16 | +import com.gump.cohesivesdk.callback.UserStateListener; | |
17 | +import com.gump.cohesivesdk.model.GPUser; | |
18 | +import com.gump.cohesivesdk.model.Payment; | |
19 | +import com.tencent.tmgp.testgump.R; | |
20 | + | |
21 | +public class MainActivity extends Activity implements UserStateListener { | |
22 | + private static final String TAG = "MainActivity"; | |
23 | + | |
24 | + CohesiveApi cohesiveApi; | |
25 | + private Button btnLogin; | |
26 | + private Button btnPay; | |
27 | + private TextView tvInfo; | |
28 | + private boolean isLogin = false; | |
29 | + | |
30 | + private ProgressDialog prog; | |
31 | + | |
32 | + @Override | |
33 | + protected void onCreate(Bundle savedInstanceState) { | |
34 | + super.onCreate(savedInstanceState); | |
35 | + setContentView(R.layout.activity_main); | |
36 | + | |
37 | + CohesiveApi.setDebugging(true); | |
38 | + cohesiveApi = CohesiveApi.build(this); | |
39 | + cohesiveApi.onCreate(this, getIntent()); | |
40 | + cohesiveApi.init(this, "1002", new InitialCallback() { | |
41 | + | |
42 | + @Override | |
43 | + public void onInitComplete(int result) { | |
44 | + Log.d(TAG, "sdk init completed result:" + result); | |
45 | + if (result == 0) | |
46 | + setListeners(); | |
47 | + } | |
48 | + }); | |
49 | + cohesiveApi.setUserListener(this); | |
50 | + btnLogin = (Button) findViewById(R.id.login); | |
51 | + btnPay = (Button) findViewById(R.id.pay); | |
52 | + tvInfo = (TextView) findViewById(R.id.info); | |
53 | + tvInfo.setText("SDK Version:" + CohesiveApi.getVersion()); | |
54 | + } | |
55 | + | |
56 | + private void setListeners() { | |
57 | + btnLogin.setOnClickListener(new View.OnClickListener() { | |
58 | + | |
59 | + @Override | |
60 | + public void onClick(View v) { | |
61 | + prog = ProgressDialog.show(MainActivity.this, "", isLogin ? "正在注销" : "正在登录"); | |
62 | + if (isLogin) | |
63 | + cohesiveApi.logout(MainActivity.this); | |
64 | + else | |
65 | + cohesiveApi.login(MainActivity.this); | |
66 | + } | |
67 | + }); | |
68 | + btnPay.setOnClickListener(new View.OnClickListener() { | |
69 | + | |
70 | + @Override | |
71 | + public void onClick(View v) { | |
72 | + Bundle payinfo = new Bundle(); | |
73 | + payinfo.putString("orderId", System.currentTimeMillis() + ""); | |
74 | + payinfo.putString("product", "coin"); | |
75 | + payinfo.putString("extra", "buy 10 coins"); | |
76 | + payinfo.putLong("amount", 1); | |
77 | + cohesiveApi.goPay(MainActivity.this, payinfo, new PaymentListener() { | |
78 | + | |
79 | + @Override | |
80 | + public void onPaySuccess(Payment arg0) { | |
81 | + Log.i(TAG, arg0.toString()); | |
82 | + } | |
83 | + | |
84 | + @Override | |
85 | + public void onPayError(int code) { | |
86 | + Log.i(TAG, "pay Error:" + code); | |
87 | + } | |
88 | + }); | |
89 | + } | |
90 | + }); | |
91 | + } | |
92 | + | |
93 | + @Override | |
94 | + public void onBackPressed() { | |
95 | + cohesiveApi.exit(this, new ExitCallback() { | |
96 | + | |
97 | + @Override | |
98 | + public void onNo3rdExiterProvide() { | |
99 | + // 退出窗口需要游戏自定义,并且实现资源回收,杀死进程等退出逻辑 | |
100 | + // TODO 实现退出窗口 | |
101 | + cohesiveApi.appDestroy(MainActivity.this); | |
102 | + MainActivity.super.onBackPressed(); | |
103 | + } | |
104 | + | |
105 | + @Override | |
106 | + public void onExit() { | |
107 | + // 退出窗口由渠道提供,游戏只须实现资源回收,杀死进程等退出逻辑 | |
108 | + cohesiveApi.appDestroy(MainActivity.this); | |
109 | + // 调用游戏退出逻辑 | |
110 | + MainActivity.super.onBackPressed(); | |
111 | + } | |
112 | + }); | |
113 | + } | |
114 | + | |
115 | + @Override | |
116 | + protected void onNewIntent(Intent intent) { | |
117 | + super.onNewIntent(intent); | |
118 | + cohesiveApi.onNewIntent(this, intent); | |
119 | + } | |
120 | + | |
121 | + @Override | |
122 | + protected void onActivityResult(int requestCode, int resultCode, Intent data) { | |
123 | + super.onActivityResult(requestCode, resultCode, data); | |
124 | + cohesiveApi.onActivityResult(requestCode, resultCode, data); | |
125 | + } | |
126 | + | |
127 | + @Override | |
128 | + protected void onPause() { | |
129 | + super.onPause(); | |
130 | + cohesiveApi.onPause(this); | |
131 | + } | |
132 | + | |
133 | + @Override | |
134 | + protected void onResume() { | |
135 | + super.onResume(); | |
136 | + cohesiveApi.onResume(this); | |
137 | + } | |
138 | + | |
139 | + @Override | |
140 | + protected void onDestroy() { | |
141 | + super.onDestroy(); | |
142 | + cohesiveApi.onDestroy(this); | |
143 | + } | |
144 | + | |
145 | + @Override | |
146 | + protected void onRestart() { | |
147 | + super.onRestart(); | |
148 | + cohesiveApi.onRestart(this); | |
149 | + } | |
150 | + | |
151 | + @Override | |
152 | + protected void onStop() { | |
153 | + super.onStop(); | |
154 | + cohesiveApi.onStop(this); | |
155 | + } | |
156 | + | |
157 | + @Override | |
158 | + public void onLoginFailed(String arg0) { | |
159 | + Log.i(TAG, "Login Failed:" + arg0); | |
160 | + if (prog != null) | |
161 | + prog.cancel(); | |
162 | + } | |
163 | + | |
164 | + @Override | |
165 | + public void onLoginSuccess(GPUser arg0) { | |
166 | + Log.i(TAG, "Login success:" + arg0.toString()); | |
167 | + btnLogin.setText("logout"); | |
168 | + isLogin = true; | |
169 | + if (prog != null) | |
170 | + prog.cancel(); | |
171 | + } | |
172 | + | |
173 | + @Override | |
174 | + public void onLogout() { | |
175 | + Log.i(TAG, "logout"); | |
176 | + btnLogin.setText("login"); | |
177 | + isLogin = false; | |
178 | + if (prog != null) | |
179 | + prog.cancel(); | |
180 | + } | |
181 | + | |
182 | +} |
CohesiveSDKSample/src/com/gump/cohesivesdk/sample/MyApplication.java
... | ... | @@ -0,0 +1,17 @@ |
1 | +package com.gump.cohesivesdk.sample; | |
2 | + | |
3 | +import com.gump.cohesivesdk.CohesiveApplication; | |
4 | + | |
5 | +import android.content.Context; | |
6 | +import android.support.multidex.MultiDex; | |
7 | +import android.support.multidex.MultiDexApplication; | |
8 | + | |
9 | +public class MyApplication extends CohesiveApplication { | |
10 | + | |
11 | +// @Override | |
12 | +// protected void attachBaseContext(Context base) { | |
13 | +// super.attachBaseContext(base); | |
14 | +// MultiDex.install(this); | |
15 | +// } | |
16 | + | |
17 | +} |
CohesiveSDKSample/src/com/gump/cohesivesdk/sample/MySplashActivity.java
... | ... | @@ -0,0 +1,16 @@ |
1 | +package com.gump.cohesivesdk.sample; | |
2 | + | |
3 | +import android.content.Intent; | |
4 | + | |
5 | +import com.gump.cohesivesdk.SplashActivity; | |
6 | + | |
7 | +public class MySplashActivity extends SplashActivity { | |
8 | + | |
9 | + @Override | |
10 | + public void onSplashStop() { | |
11 | + Intent intent = new Intent(this,MainActivity.class); | |
12 | + startActivity(intent); | |
13 | + finish(); | |
14 | + } | |
15 | + | |
16 | +} |