From 5c9dc9a5f802ec52f3cd0cfc0a21ff02bad5aab2 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 28 九月 2023 12:41:56 +0800
Subject: [PATCH] 0312 测试 每次登录弹权限问题

---
 SdkProject/plugins/quick/java/com/secondworld/sdk/QuickSdkMgr.java |  161 +++++++++++++++++++++++------------------------------
 1 files changed, 70 insertions(+), 91 deletions(-)

diff --git a/SdkProject/plugins/quick/java/com/secondworld/sdk/QuickSdkMgr.java b/SdkProject/plugins/quick/java/com/secondworld/sdk/QuickSdkMgr.java
index e3e6b71..9cf0355 100644
--- a/SdkProject/plugins/quick/java/com/secondworld/sdk/QuickSdkMgr.java
+++ b/SdkProject/plugins/quick/java/com/secondworld/sdk/QuickSdkMgr.java
@@ -47,91 +47,86 @@
     public String channelID;
     int REQUEST_RECORD_PERMISSION_SETTING = 110;
 
-    private boolean hasPermissions(Activity activity) {
+    public boolean hasPermissions(Activity activity) {
+        //鏉冮檺鎻愬彇鍒板悇鑷」鐩腑
 //        return (ContextCompat.checkSelfPermission(activity,
 //                Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED)
 //                && (ContextCompat.checkSelfPermission(activity,
 //                Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED);
 
-        return ContextCompat.checkSelfPermission(activity,
-                Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
+        String[] permissionStr = PlatformDiff.I.platformPermission();
+        for (int i = 0; i < permissionStr.length; i++)
+        {
+            if (ContextCompat.checkSelfPermission(activity, permissionStr[i]) != PackageManager.PERMISSION_GRANTED)
+            {
+                return false;
+            }
+        }
+        return true;
     }
 
     public void requestPermissions(Activity activity) {
-//        try {
-//            // check鏉冮檺
-//            if (!hasPermissions(activity)) {
-//                // 娌℃湁鍒欑敵璇锋潈闄�
-//                ActivityCompat.requestPermissions(activity, new String[]{
-//                        Manifest.permission.WRITE_EXTERNAL_STORAGE}, RequestCode.QUICK);
-//            } else {
-//                QuickSdkMgr.I.register(PlatformDiff.I.platformProductCode(), PlatformDiff.I.platformProductKey());
-//                QuickSdkMgr.I.init(activity);
-//            }
-//        } catch (Exception e) {
-//            //QuickSdkMgr.I.init(activity);
-//            ActivityCompat.requestPermissions(activity, new String[]{
-//                    Manifest.permission.WRITE_EXTERNAL_STORAGE}, RequestCode.QUICK);
-//        }
-//        ActivityCompat.requestPermissions(activity, new String[]{
-//                        Manifest.permission.WRITE_EXTERNAL_STORAGE}, RequestCode.QUICK);
+
         try {
             if (!hasPermissions(activity)) {
-                ActivityCompat.requestPermissions(activity, new String[]{
-                        Manifest.permission.WRITE_EXTERNAL_STORAGE}, RequestCode.QUICK);
+                ActivityCompat.requestPermissions(activity, PlatformDiff.I.platformPermission(), RequestCode.QUICK);
             }
-            QuickSdkMgr.I.register(PlatformDiff.I.platformProductCode(), PlatformDiff.I.platformProductKey());
-            QuickSdkMgr.I.init(activity);
+            else
+            {
+                QuickSdkMgr.I.register(PlatformDiff.I.platformProductCode(), PlatformDiff.I.platformProductKey());
+                QuickSdkMgr.I.init(activity);
+            }
+
         }
         catch (Exception e) {
             LogUtil.i("SdkManager", "requestPermissions 鍒濆鍖朣DK澶辫触");
         }
     }
 
-    public void onRequestPermissionsResult(Activity activity, int requestCode, int[] grantResults) {
+    public void onRequestPermissionsResult(Activity activity, int requestCode, int[] grantResults, String[] permissions) {
+        PlatformDiff.I.OnRequestPermissionsResult(requestCode, grantResults, permissions);
         if (requestCode != RequestCode.QUICK) return;
-        if (hasPermissions(activity))
-        {
-            LogUtil.i("SdkManager", "onRequestPermissionsResult 鐢宠鎴愬姛");
-        }
 
-//        if (hasPermissions(activity)) {
-//            //鐢宠鎴愬姛
-//            QuickSdkMgr.I.register(PlatformDiff.I.platformProductCode(), PlatformDiff.I.platformProductKey());
-//            QuickSdkMgr.I.init(activity);
-//            return;
-//        }
-//        final AlertDialog.Builder normalDialog = new AlertDialog.Builder(activity);
-//        normalDialog.setTitle("鏉冮檺璁剧疆");
-//        normalDialog.setMessage("娓告垙闇�瑕侀儴鍒嗘潈闄愭墠鑳芥甯歌繍琛岋紝璇峰墠寰�璁剧疆涓墦寮�鐢佃瘽鏉冮檺涓庡瓨鍌ㄦ潈闄�");
-//        normalDialog.setPositiveButton("鍓嶅線璁剧疆", new DialogInterface.OnClickListener() {
-//            @Override
-//            public void onClick(DialogInterface dialog, int which) {
-//                Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
-//                Uri uri = Uri.fromParts("package", activity.getPackageName(), null);
-//                intent.setData(uri);
-//                activity.startActivityForResult(intent, REQUEST_RECORD_PERMISSION_SETTING);
-//                dialog.dismiss();
-//            }
-//        });
-//        normalDialog.setNegativeButton("閫�鍑�", new DialogInterface.OnClickListener() {
-//            @Override
-//            public void onClick(DialogInterface dialog, int which) {
-//                GameAppProxy.appExit();
-//            }
-//        });
-//        // 鏄剧ず
-//        normalDialog.show();
+
+        if (hasPermissions(activity)) {
+            LogUtil.i("SdkManager", "onRequestPermissionsResult 鐢宠鎴愬姛");
+            //鐢宠鎴愬姛
+            QuickSdkMgr.I.register(PlatformDiff.I.platformProductCode(), PlatformDiff.I.platformProductKey());
+            QuickSdkMgr.I.init(activity);
+            return;
+        }
+        final AlertDialog.Builder normalDialog = new AlertDialog.Builder(activity);
+        normalDialog.setTitle("鏉冮檺璁剧疆");
+        normalDialog.setMessage("娓告垙闇�瑕侀儴鍒嗘潈闄愭墠鑳芥甯歌繍琛岋紝璇峰墠寰�璁剧疆涓墦寮�瀛樺偍鏉冮檺");
+        normalDialog.setPositiveButton("鍓嶅線璁剧疆", new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+                Uri uri = Uri.fromParts("package", activity.getPackageName(), null);
+                intent.setData(uri);
+                activity.startActivityForResult(intent, REQUEST_RECORD_PERMISSION_SETTING);
+                dialog.dismiss();
+            }
+        });
+        normalDialog.setNegativeButton("閫�鍑�", new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                GameAppProxy.appExit();
+            }
+        });
+        // 鏄剧ず
+        normalDialog.show();
     }
 
     public void onActivityResult(Activity activity, int requestCode) {
-//        if (requestCode == REQUEST_RECORD_PERMISSION_SETTING)
-//        {
-//            LogUtil.i("SdkManager", "onActivityResult");
-//            requestPermissions(activity);
-//        }
+        if (requestCode == REQUEST_RECORD_PERMISSION_SETTING)
+        {
+            LogUtil.i("SdkManager", "onActivityResult");
+            requestPermissions(activity);
+        }
 
     }
+
 
     public void init(Activity activity) {
         sdkInitState = SdkInitState.LOADING;
@@ -139,34 +134,7 @@
     }
 
     public void login() {
-        switch (sdkInitState) {
-            case FAILED:
-            case UNKNOWN: {
-                if (GameActivityProxy.I.activity == null)
-                    return;
-                if (hasPermissions(GameActivityProxy.I.activity)) {
-                    //init(BtGameMain.I.activity);
-                    Toast.makeText(GameAppProxy.app, "寮傚父璇烽噸鍚父鎴�", Toast.LENGTH_LONG).show();
-                }
-                break;
-            }
-            case SUCCEED: {
-                //User.getInstance().login(GameActivityProxy.I.activity);
-                GameActivityProxy.I.activity.runOnUiThread(new Runnable()
-                {
-                    @Override
-                    public void run()
-                    {
-                        User.getInstance().login(GameActivityProxy.I.activity);
-                    }
-                });
-                break;
-            }
-            case LOADING: {
-                Toast.makeText(GameAppProxy.app, "姝e湪鍒濆鍖栦腑锛岃绋嶇瓑锛�", Toast.LENGTH_LONG).show();
-                break;
-            }
-        }
+        PlatformDiff.I.Login();
     }
 
     public void loginOut() {
@@ -261,8 +229,8 @@
                 sdkInitState = SdkInitState.SUCCEED;
                 LogUtil.debug("SdkManager", "鍒濆鍖栨垚鍔�");
                 UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitOk);
+                PlatformDiff.I.RegisterEvent("youxitu");
             }
-
             @Override
             public void onFailed(String message, String trace) {
                 //鍒濆鍖栧け璐�
@@ -382,7 +350,18 @@
             @Override
             public void onSuccess() {
                 //閫�鍑烘垚鍔燂紝娓告垙鍦ㄦ鍋氳嚜韬殑閫�鍑洪�昏緫澶勭悊
-                UnityMsgHandler.sendMessageToUnity(CodeA2U.ExitGame);
+                //UnityMsgHandler.sendMessageToUnity(CodeA2U.ExitGame);
+                if (GameActivityProxy.I.activity == null)
+                {
+                    UnityMsgHandler.sendMessageToUnity(CodeA2U.ExitGame);
+                    return;
+                }
+                LogUtil.i("SdkManager", "activity閫�鍑�");
+                GameActivityProxy.I.activity.finish();
+                android.os.Process.killProcess(android.os.Process.myPid());
+                System.exit(0);
+
+
             }
 
             @Override

--
Gitblit v1.8.0