leopard8352
2023-12-04 8871a733498c8d717714b83bb096b7738224541a
提交 | 用户 | 时间
8871a7 1 <?xml version="1.0" encoding="utf-8"?>
L 2 <!--GearVR plugin additions-->
3 <root xmlns:android="http://schemas.android.com/apk/res/android">
4     <!-- init section is always evaluated once per architecture -->
5     <trace enable="true"/>
6     <init>
7         <log text="Taptap APL init"/>
8     </init>
9     <proguardAdditions>
10         <insert>
11             -keep public class com.tds.common.** {*;}
12             -keep public class com.tapsdk.** {*;}
13             -keep class com.tds.** {*;}
14
15             # proguard.cfg
16
17             -keepattributes Signature
18             -dontwarn com.jcraft.jzlib.**
19             -keep class com.jcraft.jzlib.** { *;}
20
21             -dontwarn sun.misc.**
22             -keep class sun.misc.** { *;}
23
24             -dontwarn com.alibaba.fastjson.**
25             -keep class com.alibaba.fastjson.** { *;}
26
27             -dontwarn org.ligboy.retrofit2.**
28             -keep class org.ligboy.retrofit2.** { *;}
29
30             -dontwarn io.reactivex.rxjava2.**
31             -keep class io.reactivex.rxjava2.** { *;}
32
33             -dontwarn sun.security.**
34             -keep class sun.security.** { *; }
35
36             -dontwarn com.google.**
37             -keep class com.google.** { *;}
38
39             -dontwarn com.avos.**
40             -keep class com.avos.** { *;}
41
42             -dontwarn cn.leancloud.**
43             -keep class cn.leancloud.** { *;}
44
45             -keep public class android.net.http.SslError
46             -keep public class android.webkit.WebViewClient
47
48             -dontwarn android.webkit.WebView
49             -dontwarn android.net.http.SslError
50             -dontwarn android.webkit.WebViewClient
51
52             -dontwarn android.support.**
53
54             -dontwarn org.apache.**
55             -keep class org.apache.** { *;}
56
57             -dontwarn org.jivesoftware.smack.**
58             -keep class org.jivesoftware.smack.** { *;}
59
60             -dontwarn com.loopj.**
61             -keep class com.loopj.** { *;}
62
63             -dontwarn com.squareup.okhttp.**
64             -keep class com.squareup.okhttp.** { *;}
65             -keep interface com.squareup.okhttp.** { *; }
66
67             -dontwarn okio.**
68
69             -dontwarn org.xbill.**
70             -keep class org.xbill.** { *;}
71
72             -keepattributes *Annotation*
73
74         </insert>
75     </proguardAdditions>
76     <androidManifestUpdates>
77
78         <!--
79             旧版 Android 额外配置
80             如果 targetSdkVersion < 29,还需要添加如下配置:
81         -->
82 <!--        <addAttribute -->
83 <!--                tag="manifest" -->
84 <!--                name="xmlns:tools" -->
85 <!--                value="http://schemas.android.com/tools" />-->
86 <!--        <addAttribute -->
87 <!--                tag="application " -->
88 <!--                name="tools:remove" -->
89 <!--                value="android:requestLegacyExternalStorage" />-->
90         
91         <!-- 广告 SDK 已添加的权限 -->
92         <uses-permission android:name="android.permission.INTERNET"/>
93         <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
94         <!-- 为了获取更精准的推送数据、建议游戏加上的权限 -->
95         <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
96         <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
97         <uses-permission android:name="android.permission.BLUETOOTH"/>
98         <!-- targetVersion 31 及以上 建议游戏加上这个权限 -->
99         <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
100         <!-- 为了获取更好的广告体验,建议游戏加上以下权限来获取用户信息 -->
101         <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
102         <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
103         <!-- 加上下列权限可以提高广告的转化率 -->
104         <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
105     </androidManifestUpdates>
106     <proguardAdditions>
107         <insert>
108         </insert>
109     </proguardAdditions>
110     
111     <resourceCopies>
112             <copyDir 
113                 src = "$S(PluginDir)/../../ThirdParty/"
114                 dst = "$S(BuildDir)/libs/" />
115
116         <copyDir 
117                 src="$S(PluginDir)/../../ThirdParty/Android/Java/" 
118                 dst="$S(BuildDir)/src/com/leopard/taptap" />
119     </resourceCopies>
120     <gradleCopies>
121     </gradleCopies>
122     
123     <buildGradleAdditions>
124         <insert>
125             <![CDATA[
126 repositories {
127     flatDir {
128         dirs 'src/main/libs'
129     }
130 }
131 dependencies {
132     implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
133     implementation 'io.reactivex.rxjava2:rxjava:2.0.1'
134     implementation 'com.squareup.okhttp3:okhttp:3.12.1'
135     implementation 'androidx.appcompat:appcompat:1.0.0'
136     implementation 'androidx.annotation:annotation:1.0.0'
137     implementation 'androidx.legacy:legacy-support-v4:1.0.0'
138     implementation "com.github.bumptech.glide:glide:4.9.0"
139     implementation 'com.google.android.material:material:1.0.0'
140     implementation 'androidx.recyclerview:recyclerview:1.0.0'
141     implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
142     implementation 'cn.leancloud:storage-android:8.2.19'   // 数据存储
143     implementation 'cn.leancloud:realtime-android:8.2.19'  // 即时通讯
144     implementation(name : 'TapAD_3.16.3.23', ext:'aar')
145     implementation(name : 'TapBootstrap_3.24.0', ext:'aar')
146     implementation(name : 'TapCommon_3.24.0', ext:'aar')
147     implementation(name : 'TapLogin_3.24.0', ext:'aar')
148     implementation(name : 'TapDB_3.24.0', ext:'aar')
149 }
150             ]]>
151         </insert>
152     </buildGradleAdditions>
153     
154     <gameActivityImportAdditions>
155         <insert>
156             <![CDATA[
157 // taptap start
158 import com.tapsdk.tapad.AdRequest;
159 import com.tapsdk.tapad.CustomUser;
160 import com.tapsdk.tapad.TapAdConfig;
161 import com.tapsdk.tapad.TapAdCustomController;
162 import com.tapsdk.tapad.TapAdLocation;
163 import com.tapsdk.tapad.TapAdManager;
164 import com.tapsdk.tapad.TapAdNative;
165 import com.tapsdk.tapad.TapAdSdk;
166 import com.tapsdk.tapad.TapRewardVideoAd;
167 import android.util.Log;
168 // taptap end
169             ]]>
170         </insert>
171     </gameActivityImportAdditions>
172     <gameActivityClassAdditions>
173         <insert>
174             <![CDATA[
175     public native void OnActivitySaveInstanceState();
176     
177     public void Logout(){
178         com.leopard.taptap.TapNative.Logout();
179     }
180     public void TapDBTraceEvent(final String eventName,final String jsonObject) {
181         // 委托主线程调用
182         runOnUiThread(
183             new Runnable() {
184                 public void run() {
185                     com.leopard.taptap.TapNative.TapDBTraceEvent(eventName,jsonObject);
186                 }
187             });
188     }
189     public void InitTapDB(
190         final String clientId,
191         final String clientToken,
192         final String serverUrl,
193         final String gameChannel,
194         final String gameVersion
195     ){
196         android.util.Log.d("Leopard","InitTapDB ==>> clientId:" + clientId + ",clientToken" + clientToken + ",serverUrl" + serverUrl);
197         // 委托主线程调用
198         runOnUiThread(
199             new Runnable() {
200                 public void run() {
201                     com.leopard.taptap.TapNative.InitTapDB(clientId,clientToken,serverUrl,gameChannel,gameVersion);
202                 }
203             });
204     }
205             
206     public boolean CheckLogin() {
207         return com.leopard.taptap.TapNative.CheckLogin();
208     }
209     
210     public void InitLogin(final String clientId,final String clientToken,final String serverUrl){
211         android.util.Log.d("Leopard","InitLoginStart ==>> clientId:" + clientId + ",clientToken" + clientToken + ",serverUrl" + serverUrl);
212         runOnUiThread(
213                 new Runnable() {
214                     public void run() {
215                         com.leopard.taptap.TapNative.InitLogin(clientId, clientToken, serverUrl);
216                     }
217                 });
218     }
219     
220     public void Login(){
221         android.util.Log.d("Leopard","LoginStart");
222         com.leopard.taptap.TapNative.Login();
223     }
224     
225     public String GetCurrentProfile(){
226         android.util.Log.d("Leopard","GetCurrentProfile");
227         return com.leopard.taptap.TapNative.GetCurrentProfile();
228     }
229     
230     
231     public void tapADNRequestPermissionIfNecessary() {
232         TapAdManager.get().requestPermissionIfNecessary(this);
233         android.util.Log.d("Leopard","RequestPermissionIfNecessary");
234     }
235
236     public void tapADNInit(
237             int mediaID,
238             String mediaName,
239             String mediaKey,
240             boolean enableDebug,
241             int avatarLevel
242     ) {
243         android.util.Log.d("Leopard","tapADNInit:mediaName->" + mediaName + ",mediaKey:" + mediaKey);
244         final TapAdConfig config = new TapAdConfig.Builder()
245                 .withMediaId(mediaID)               // 必选参数。为 TapADN 注册的媒体 ID
246                 .withMediaName(mediaName)           // 必选参数。为 TapADN 注册的媒体名称
247                 .withMediaKey(mediaKey)             // 必选参数。媒体密钥,可以在TapADN后台查看
248                 .withMediaVersion("1")              // 必选参数。默认值 "1"
249                 .withGameChannel("taptap2")          // 必选参数,渠道
250 //              .withTapClientId("0RiAlMny7jiz086FaU")
251                 .enableDebug(enableDebug)
252                 .withCustomController(new TapAdCustomController() {
253                     @Override
254                     public boolean isCanUseLocation() {
255                         return true;
256                     }
257
258                     @Override
259                     public TapAdLocation getTapAdLocation() {
260                         double longitude = 0;
261                         double latitude = 0;
262                         double accuracy = 0;
263                         return new TapAdLocation(longitude, latitude, accuracy);
264                     }
265
266                     @Override
267                     public boolean isCanUsePhoneState() {
268                         return super.isCanUsePhoneState();
269                     }
270
271                     @Override
272                     public String getDevImei() {
273                         return super.getDevImei();
274                     }
275
276                     @Override
277                     public boolean isCanUseWifiState() {
278                         return super.isCanUseWifiState();
279                     }
280
281                     @Override
282                     public boolean isCanUseWriteExternal() {
283                         return super.isCanUseWriteExternal();
284                     }
285
286                     @Override
287                     public String getDevOaid() {
288 //                        if (inputOaidEditText != null && inputOaidEditText.getText() != null) {
289 //                            return inputOaidEditText.getText().toString();
290 //                        }
291                         return "asdf12345";
292                     }
293
294                     @Override
295                     public boolean alist() {
296                         return super.alist();
297                     }
298
299                     @Override
300                     public boolean isCanUseAndroidId() {
301                         return true;
302                     }
303
304                     @Override
305                     public CustomUser provideCustomUser() {
306                         return new CustomUser.Builder()
307                                 .withRealAge(1)                   // 年龄
308                                 .withRealSex(1)                   // 性别 0:男 1:女
309                                 .withAvatarSex(1)           // 角色性别 0:男 1:女
310                                 .withAvatarLevel(1)            // 角色等级
311                                 .withNewUserStatus(1)          // 是否新玩家 0:否;1:是
312                                 .withPayedUserStatus(0)        // 是否付费用户 0:否;1:是
313                                 .withBeginMissionFinished(1) // 是否通过新手教程 0:否 1:是
314                                 .withAvatarPayedToolCnt(0)        // 角色当前付费道具数量
315                                 .build();
316                     }
317                 })
318                 .build();
319         TapAdSdk.init(this,config);
320         android.util.Log.d("Leopard","TapAdSdkInitOver");
321     }
322
323     public TapAdNative tapAdNative;
324     public TapRewardVideoAd lastTapRewardVideoAd;
325     public native void nativeRewardRequestOver();
326     public boolean isRewardCached(){
327         return lastTapRewardVideoAd != null;
328     }
329     public void tapADNRequestRewardAD(
330             int spaceID,     // 广告后台获取广告位id
331             String rewardName,  // 奖品名称
332             int rewardAmount    // 奖品数量
333     ){
334         android.util.Log.e("Leopard","tapADNInit:spaceID->" + spaceID);
335         tapAdNative = TapAdManager.get().createAdNative(this);
336         AdRequest adRequest = new AdRequest.Builder()
337                 .withSpaceId(spaceID)
338                 .withExtra1("{}")
339                 .withUserId("123")
340                 .withRewordName(rewardName)
341                 .withRewordAmount(rewardAmount)
342                 .build();
343         tapAdNative.loadRewardVideoAd(adRequest, new TapAdNative.RewardVideoAdListener() {
344              @Override
345             public void onError(int code, String message) {
346                  android.util.Log.e("Leopard","广告获取失败" + message);
347             }
348
349             @Override
350             public void onRewardVideoAdLoad(TapRewardVideoAd rewardVideoAd) {
351                 tapADNPlayRewardAD();
352             }
353
354             @Override
355             public void onRewardVideoCached(TapRewardVideoAd rewardVideoAd) {
356                 android.util.Log.d("Leopard","广告获取成功");
357                 lastTapRewardVideoAd = rewardVideoAd;
358                 GameActivity.this.nativeRewardRequestOver();
359             }
360         });
361     }
362     public native void nativeRewardAdPlayOver();
363     public void tapADNPlayRewardAD(){
364         if (lastTapRewardVideoAd != null){
365             lastTapRewardVideoAd.setRewardAdInteractionListener(new TapRewardVideoAd.RewardAdInteractionListener() {
366                 @Override
367                 public void onAdShow() {
368                     // 激励广告已显示
369                 }
370
371                 @Override
372                 public void onAdClose() {
373                     // 激励广告已经关闭
374                 }
375
376                 @Override
377                 public void onVideoComplete() {
378                     // 视频播放结束
379                 }
380
381                 @Override
382                 public void onVideoError() {
383                     // 视频出错
384                 }
385
386                 @Override
387                 public void onRewardVerify(boolean rewardVerify, int rewardAmount, String rewardName, int code, String msg) {
388                     // 激励任务已完成,游戏可以选择在此时进行玩家奖励,或者进一步通过 s2s 的流程来确认是否可以对当前玩家发放奖励
389                     android.util.Log.d("Leopard","广告播放完毕!");
390                     GameActivity.this.nativeRewardAdPlayOver();
391                 }
392
393                 @Override
394                 public void onSkippedVideo() {
395                     // 激励广告中玩家点击了跳过视频的按钮
396                 }
397             });
398             lastTapRewardVideoAd.showRewardVideoAd(this);
399         }
400         else{
401             android.util.Log.e("Leopard","没有缓存任何的广告");
402         }
403     }
404             ]]>
405         </insert>
406     </gameActivityClassAdditions>
407
408     <gameActivityOnCreateAdditions>
409         <insert>
410             <![CDATA[
411 com.leopard.taptap.TapNative.Init(this);
412             ]]>
413         </insert>
414     </gameActivityOnCreateAdditions>
415     <gameActivityOnSaveInstanceStateAdditions>
416         <insert>
417             <![CDATA[
418         OnActivitySaveInstanceState();
419         android.util.Log.d("Leopard","OnActivitySaveInstanceState");
420             ]]>
421         </insert>
422     </gameActivityOnSaveInstanceStateAdditions>
423 </root>