From 2cb09a2f9e511412b764fda037293dd16d65f46b Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 08 四月 2022 04:04:30 +0800
Subject: [PATCH] 0312 整理sdk

---
 SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java |  111 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 102 insertions(+), 9 deletions(-)

diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java b/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java
index 669f692..2d71129 100644
--- a/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java
@@ -1,26 +1,119 @@
 package com.secondworld.sdk;
 
+import android.content.Intent;
 import android.os.Bundle;
-import android.view.View;
+import androidx.annotation.NonNull;
+import android.view.KeyEvent;
 import android.widget.FrameLayout;
+import android.widget.RelativeLayout;
+
+import com.secondworld.sdk.utils.LogUtil;
+import com.secondworld.sdk.utils.WebViewUtil;
 
 public class GameActivity extends UnityPlayerActivity {
+
+    private static Class<? extends GameActivityProxy> proxyClass;
+
+    private GameActivityProxy proxy;
+
+    private RelativeLayout webContainer;
+    private FrameLayout unityContainer;
+
+    //娉ㄥ唽浠g悊绫�
+    public static void registerProxy(Class<? extends GameActivityProxy> proxyClass) {
+        GameActivity.proxyClass = proxyClass;
+    }
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-//        setContentView(R.layout.activity_main);
-        checkPermission();
-//        addUnityView();
+        LogUtil.d("GameActivity", "鍚姩鐨勬槸GameActivity锛�");
+        setContentView(R.layout.activity_main);
+        webContainer = findViewById(R.id.webContainer);
+        unityContainer = findViewById(R.id.unityContainer);
+        unityContainer.addView(mUnityPlayer);
+        WebViewUtil.I.init(this, webContainer);
+        //鍒濆鍖栨笭閬撲唬鐞嗙被
+        try {
+            if (proxyClass != null) {
+                proxy = proxyClass.newInstance();
+                proxy.onCreate(this);
+            } else
+                LogUtil.w("GameActivity", "proxyClass 涓嶅瓨鍦�");
+        } catch (IllegalAccessException | InstantiationException e) {
+            e.printStackTrace();
+            LogUtil.e("GameActivity", e);
+        }
     }
 
-    private void checkPermission() {
+    @Override
+    protected void onStart() {
+        super.onStart();
+        if (proxy != null)
+            proxy.onStart();
     }
 
-    protected void addUnityView() {
-        FrameLayout _frameLayout = findViewById(R.id.unity_view);
-        View unityView = mUnityPlayer.getView();
-        _frameLayout.addView(unityView);
+    @Override
+    protected void onRestart() {
+        super.onRestart();
+        if (proxy != null)
+            proxy.onRestart();
     }
 
+    @Override
+    protected void onResume() {
+        super.onResume();
+        if (proxy != null)
+            proxy.onResume();
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        if (proxy != null)
+            proxy.onPause();
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        if (proxy != null)
+            proxy.onStop();
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (proxy != null)
+            proxy.onDestroy();
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        if (proxy != null)
+            proxy.onNewIntent(intent);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (proxy != null)
+            proxy.onActivityResult(requestCode, resultCode, data);
+    }
+
+    @Override
+    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+        if (proxy != null)
+            proxy.onRequestPermissionsResult(requestCode, permissions, grantResults);
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (proxy == null)
+            return super.onKeyDown(keyCode, event);
+        boolean b = proxy.onKeyDown(keyCode, event);
+        return b ? b : super.onKeyDown(keyCode, event);
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0