From 43b0d5870d528f23ecd6aeceb6cfd4325188b46f Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 01 七月 2021 15:50:43 +0800
Subject: [PATCH] Revert "1"

---
 HDL-ON_Android/Application.cs |  295 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 274 insertions(+), 21 deletions(-)

diff --git a/HDL-ON_Android/Application.cs b/HDL-ON_Android/Application.cs
index 153c1a1..3d29968 100644
--- a/HDL-ON_Android/Application.cs
+++ b/HDL-ON_Android/Application.cs
@@ -1,11 +1,19 @@
 锘縰sing System;
 using System.Net;
+using System.Threading.Tasks;
 using Android;
+using Android.App;
 using Android.Content;
 using Android.Net;
 using Android.OS;
+using Android.Runtime;
+using Android.Widget;
+using CN.Jpush.Android.Api;
 using HDL_ON;
 using Java.Util;
+using Microsoft.AppCenter;
+using Microsoft.AppCenter.Analytics;
+using Microsoft.AppCenter.Crashes;
 using Shared;
 
 namespace HDL_ON_Android
@@ -14,7 +22,7 @@
     /// 璁惧畾涓洪粯璁ゅ惎鍔ㄧ殑Application
     /// </summary>
     [Android.App.Application]
-    public class Application : Android.App.Application
+    public class Application : Android.App.Application, Android.App.Application.IActivityLifecycleCallbacks
     {
         static void reStartApp(Android.App.Application application)
         {
@@ -27,6 +35,8 @@
         public Application(IntPtr handle, Android.Runtime.JniHandleOwnership ownerShip) : base(handle, ownerShip) { }
         public override void OnCreate()
         {
+            //娉ㄥ唽鏈鐞嗗紓甯镐簨浠�
+            AppCenter.Start("64ac5859-2cd7-4ef8-a5da-5455e29679ec", typeof(Analytics), typeof(Crashes));
             if (Shared.Application.Activity != null)
             {
                 reStartApp(this);
@@ -34,66 +44,195 @@
             }
 
             base.OnCreate();
+            RegisterActivityLifecycleCallbacks(this);
 
             initAll();
-           
+
         }
+
+
+
         /// <summary>
         /// 鎵�鏈夊垵濮嬪寲鍏ㄩ儴鍦ㄨ繖涓柟娉曞疄鐜�
         /// </summary>
         void initAll()
         {
-           
+
             string[] permissions = new string[] { Manifest.Permission.WriteExternalStorage, Manifest.Permission.RecordAudio,
             Manifest.Permission.Camera, Manifest.Permission.ProcessOutgoingCalls, Manifest.Permission.GetAccounts};
-
+            //绂佹灞忓箷闀夸寒
+            BaseActivity.KeepScreenON = false;
+            //闅愯棌铏氭嫙鎸夐敭
             BaseActivity.IsHideVirualButtons = true;
+            //瀹炵幇瀹夊崜杩斿洖鎸夐敭
+            BaseActivity.BackKeyAction = () =>
+            {
+                try
+                {
+                    var result = MainPage.LoadEvent_BackAction();
+                    switch (result)
+                    {
+                        case 0:
+                            break;
+                        case 1:
+                        case 2:
+                            BaseActivity.VerifyDateTime = DateTime.MaxValue;
+                            break;
+                        default:
+                            BaseActivity.VerifyDateTime = DateTime.MaxValue;
+                            break;
+                    }
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log(ex.Message);
+                    BaseActivity.VerifyDateTime = DateTime.MaxValue;
+                }
+            };
+
             init();
-            BaseActivity.OnCreateActoin += (activity, application) => {
-                    Language.CurrentLanguage = "Chinese";
+            BaseActivity.OnCreateActoin += (activity, application) =>
+            {
+                Language.CurrentLanguage = "Chinese";
                 Locale locale1 = Locale.Default;
                 var localeList = Resources.Configuration.Locale;
                 if (localeList.Language == "zh")
                 {
                     Language.CurrentLanguage = "Chinese";
                 }
+                else
+                {
+                    Language.CurrentLanguage = "English";
+                }
+                //鑾峰彇鏋佸厜鎺ㄩ�両D
+                GetJPushRegistrationID(activity);
 
-                BaseActivity.NetworkStateChanged += (int obj) => {
+                BaseActivity.NetworkStateChanged += (int internetStatus) =>
+                {
+                    //if (!IsEnterBackground)
+                    //{
+                    //    ////BusSocket.Stop();
+                    //    //new System.Threading.Thread(() =>
+                    //    //{
+                    //    //    System.Threading.Thread.Sleep(1000);
+                    //    //    //BusSocket.Start();
+                    //    //})
+                    //    //{ IsBackground = true }.Start();
+
+                    //}
+                    //else
+                    //{
+                    //    Console.WriteLine("HHH 缃戠粶鍙樺寲浣嗗浜庡悗鍙�");
+                    //}
+
+                    //缃戠粶鍙樺寲澶勭悊
+                    HDLCommon.Current.UpdateInternetStatus((int)internetStatus, MainPage.IsEnterBackground);
                 };
-
+                //寮�鍚畾浣嶆湇鍔�
+                Shared.Application.StartGPSLocationService();
             };
-            BaseActivity.RefreshUIAction += (activity) => {
+            BaseActivity.RefreshUIAction += (activity) =>
+            {
                 MainPage.Show();
                 checkSomeInfo();
             };
-            BaseActivity.OnResumeAction += (activity) => {
+            BaseActivity.OnResumeAction += (activity) =>
+            {
                 checkSomeInfo();
+
+
             };
-            BaseActivity.OnDestroyAction += (activity) => {
+            BaseActivity.OnDestroyAction += (activity) =>
+            {
                 Console.WriteLine("OnDestroyAction");
-                BusSocket.Stop();
+                //BusSocket.Stop();
+                //UserInfo.Current.unlockTime = DateTime.Now;
             };
+
+
 
             HDLUtils.SetAuthoritiesName("com.hdl.onpro.fileProvider");
 
             //Shared.Application.IsGpsEnable = true;
-
-            Shared.Application.LocationAction = (arg1, arg2) => {
-                Console.WriteLine(  "1111111111111111");
-                Shared.Application.LocationAction = null;
-
-                new HDL_ON.DAL.Server.HttpServerRequest().GetCityInfo(arg1.ToString(), arg2.ToString());
-
-                MainPage.Log($"缁忕含搴�:::{arg1}:{arg2}");
-
+            //鑾峰彇缁忕含搴� 
+            Shared.Application.LocationAction = (lon, lat) =>
+            {
+                try
+                {
+                    Shared.Application.LocationAction = null;
+                    new HDL_ON.DAL.Server.HttpServerRequest().GetCityInfo(lon.ToString(), lat.ToString());
+                    //鍏抽棴瀹氫綅鏈嶅姟
+                    Shared.Application.StopGPSLocationService();
+                }
+                catch (Exception ex)
+                {
+                    Utlis.WriteLine("GetCityInfo catch" + ex.Message);
+                }
+                MainPage.Log($"缁忕含搴�:::{lon}:{lat}");
             };
 
 
         }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="activity"></param>
+        void GetJPushRegistrationID(BaseActivity activity)
+        {
+
+            try
+            {
+
+                //淇濆瓨鑾峰彇鐨勬瀬鍏夋湇鍔″櫒涓婄殑娉ㄥ唽ID鍒版湰鍦版枃浠�
+                var tokenID = JPushInterface.GetRegistrationID(activity);
+                Console.WriteLine("RegistrationID:  " + tokenID);
+                if (!string.IsNullOrEmpty(tokenID) && OnAppConfig.Instance.PushDeviceToken != tokenID)
+                {
+                    OnAppConfig.Instance.PushDeviceToken = tokenID;
+                    OnAppConfig.Instance.PhoneName = Android.OS.Build.Manufacturer;
+                    OnAppConfig.Instance.SaveConfig();
+                }
+                int loadTokenCount = 0;
+                System.Threading.Tasks.Task.Run(() =>
+                {
+                    while (string.IsNullOrEmpty(tokenID))
+                    {
+                        System.Threading.Thread.Sleep(1000);
+                        tokenID = JPushInterface.GetRegistrationID(activity);
+                        Console.WriteLine("Sleep.tokenID + " + JPushInterface.GetRegistrationID(activity));
+                        loadTokenCount++;
+                        if (loadTokenCount > 30)
+                        {
+                            break;
+                        }
+                    }
+                    Console.WriteLine("RegistrationID:  " + tokenID);
+                    if (!string.IsNullOrEmpty(tokenID) && OnAppConfig.Instance.PushDeviceToken != tokenID)
+                    {
+                        OnAppConfig.Instance.PushDeviceToken = tokenID;
+                        OnAppConfig.Instance.PhoneName = Android.OS.Build.Manufacturer;
+                        OnAppConfig.Instance.SaveConfig();
+                    }
+                });
+
+            }
+            catch
+            {
+
+            }
+        }
+
         public static bool IsShowTip = true;
         void init()
         {
             //鎵嬫満鍚嶇О Android.OS.Build.Manufacturer;
+            //OnAppConfig.Instance.PhoneName = Android.OS.Build.Manufacturer;
+//#if DEBUG
+            //CN.Jpush.Android.Api.JPushInterface.SetDebugMode(true);
+//#endif
+            CN.Jpush.Android.Api.JPushInterface.Init(this);
+
         }
         void checkSomeInfo()
         {
@@ -150,5 +289,119 @@
             }
             return false;
         }
+
+        public void OnActivityCreated(Activity activity, Bundle savedInstanceState)
+        {
+
+        }
+
+        public void OnActivityDestroyed(Activity activity)
+        {
+            //throw new NotImplementedException ();
+        }
+
+        public void OnActivityPaused(Activity activity)
+        {
+            //throw new NotImplementedException ();
+        }
+
+        public void OnActivityResumed(Activity activity)
+        {
+            //throw new NotImplementedException ();
+        }
+
+        public void OnActivitySaveInstanceState(Activity activity, Bundle outState)
+        {
+            //throw new NotImplementedException ();
+        }
+
+        public void OnActivityStarted(Activity activity)
+        {
+            //throw new NotImplementedException ();
+
+            mCount++;
+            if (mCount == 1)
+            {
+                Console.WriteLine("HHH OnActivityStarted锛歠oreground");
+                BusSocketStart();
+                //鍚庡彴鍥炲埌鍓嶅彴
+                new HDL_ON.UI.AppUnlockPage().LoadPage();
+            }
+        }
+
+        public void OnActivityStopped(Activity activity)
+        {
+
+            mCount--;
+            if (mCount == 0)
+            {
+                Console.WriteLine("HHH OnActivityStopped锛� background");
+                BusSocketStop();
+                //杩涘叆鍚庡彴
+                UserInfo.Current.unlockTime = DateTime.Now;
+
+            }
+        }
+
+
+        public override void OnTerminate()
+        {
+            base.OnTerminate();
+            UnregisterActivityLifecycleCallbacks(this);
+        }
+
+        int mCount;
+
+        ///// <summary>
+        ///// 鏄惁杩涘叆鍚庡彴
+        ///// </summary>
+        //public bool IsEnterBackground = false;
+
+        /// <summary>
+        /// 杩涘叆鍚庡彴鐨勬椂闂�
+        /// </summary>
+        DateTime CloseTime = DateTime.Now;
+
+        /// <summary>
+        /// BusSocketStop
+        /// </summary>
+        void BusSocketStop()
+        {
+            //IsEnterBackground = true;
+            CloseTime = DateTime.Now;
+            MainPage.IsEnterBackground = true;
+            //杩涘叆鍚庡彴mqtt姝e湪杩炴帴閲嶇疆鐘舵��
+            HDL_ON.DAL.Mqtt.MqttClient.RemoteMqttIsConnecting = false;
+            HDL_ON.DriverLayer.UdpSocket._BusSocket.Stop();
+
+        }
+
+        /// <summary>
+        /// BusSocketStart
+        /// </summary>
+        void BusSocketStart()
+        {
+            //IsEnterBackground = false;
+
+            if (CloseTime.AddSeconds(10) < DateTime.Now)
+            {
+                //鍚庡彴瓒呰繃10s灏辨柇寮�MQTT閲嶈繛
+                //if (HDL_ON.DriverLayer.Control.Ins.IsRemote)
+                {
+                    HDL_ON.DAL.Mqtt.MqttClient.DisConnectRemote("closeTime", false);
+                }
+            }
+
+            MainPage.IsEnterBackground = false;
+            HDL_ON.DriverLayer.UdpSocket._BusSocket.Start();
+            HDL_ON.DriverLayer.Control.Ins.SearchLoaclGateway();
+        }
+
+        protected override void Dispose(bool disposing)
+        {
+            base.Dispose(disposing);
+        }
+
     }
+
 }

--
Gitblit v1.8.0