From 30b5770f56f99c1f92e933ad31cf7d2af58b033c Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 02 十二月 2020 16:31:48 +0800
Subject: [PATCH] 20201202

---
 HDL-ON_iOS/AppDelegate.cs |  241 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 205 insertions(+), 36 deletions(-)

diff --git a/HDL-ON_iOS/AppDelegate.cs b/HDL-ON_iOS/AppDelegate.cs
index b85adf9..0709827 100644
--- a/HDL-ON_iOS/AppDelegate.cs
+++ b/HDL-ON_iOS/AppDelegate.cs
@@ -7,6 +7,7 @@
 using Microsoft.AppCenter;
 using Microsoft.AppCenter.Analytics;
 using Microsoft.AppCenter.Crashes;
+using HDL_ON.UI;
 
 namespace SharedMethod
 {
@@ -22,7 +23,7 @@
         //    UserConfig.Instance.IsAppStoreVersionNewer = Harpy.Harpy.SharedInstance.TestIsAppStoreVersionNewer;
         //    UserConfig.Instance.StoreVersion = Harpy.Harpy.SharedInstance.CurrentAppStoreVersion;
         //    UserConfig.Instance.SaveUserConfig();
-        //    if (Shared.SimpleControl.MainPage.LoginUser.AccountString == @"464027401@qq.com")
+        //    if (Shared.SimpleControl. UserInfo.Current.AccountString == @"464027401@qq.com")
         //    {
         //        return $"TestIsAppStoreVersionNewer : {UserConfig.Instance.IsAppStoreVersionNewer};;  CurrentAppStoreVersion : {UserConfig.Instance.StoreVersion}";
         //    }
@@ -40,7 +41,7 @@
     // The UIApplicationDelegate for the application. This class is responsible for launching the
     // User Interface of the application, as well as listening (and optionally responding) to application events from iOS.
     [Register("AppDelegate")]
-    public class AppDelegate : BaseApplicationDelegate
+    public class AppDelegate : BaseApplicationDelegateForHdlOn// BaseApplicationDelegate
     {
         // class-level declarations
 
@@ -56,6 +57,7 @@
         //    // If not required for your application you can safely delete this method
         //    return true;
         //}
+        internal static UINavigationController rootViewController;
 
         public static void CleanApplicationIconBadgeNumber()
         {
@@ -98,15 +100,15 @@
                 string userPhoneName = UIDevice.CurrentDevice.Name;
 
                 OnAppConfig.Instance.PushDeviceToken = DeviceToken;
-                //UserConfig.Instance.phoneName = userPhoneName;
-                //UserConfig.Instance.SaveUserConfig();
+                OnAppConfig.Instance.PhoneName = userPhoneName;
+                OnAppConfig.Instance.SaveUserConfig();
             }
             if (OnAppConfig.Instance.PushDeviceToken != DeviceToken)
             {
                 string userPhoneName = UIDevice.CurrentDevice.Name;
                 OnAppConfig.Instance.PushDeviceToken = DeviceToken;
-                //UserConfig.Instance.phoneName = userPhoneName;
-                //UserConfig.Instance.SaveUserConfig();
+                OnAppConfig.Instance.PhoneName = userPhoneName;
+                OnAppConfig.Instance.SaveUserConfig();
             }
         }
 
@@ -116,6 +118,102 @@
 
             //璇诲彇鎺ㄩ�佷俊鎭�
             UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
+
+            if (userInfo == null)
+            {
+                return;
+            }
+
+            Console.WriteLine(userInfo);
+
+            if (application.ApplicationState == UIApplicationState.Active || application.ApplicationState == UIApplicationState.Background)
+            {
+                NSString key_hiddenJson = new NSString("HiddenJson");
+                if (userInfo.ContainsKey(key_hiddenJson))
+                {
+                    var hiddenJson = userInfo["HiddenJson"].ToString();
+                    if (string.IsNullOrEmpty(hiddenJson))
+                    {
+                        return;
+                    }
+
+                    if (hiddenJson.Contains("cmtID"))
+                    {
+                        /////鐩墠鏍规嵁杩欎釜鍒ゆ柇鏄惁鏄彲瑙嗗璁叉暟鎹�
+                        //VideoMethod(hiddenJson);
+                    }
+                    else
+                    {
+
+                        NSDictionary hiddenJsonDic = userInfo["HiddenJson"] as NSDictionary;
+                        if (hiddenJsonDic == null)
+                        {
+                            return;
+                        }
+                        NSString key_Offline = new NSString("Offline");
+                        if (hiddenJsonDic.ContainsKey(key_Offline))
+                        {
+                            string signOut = hiddenJsonDic["Offline"].ToString();
+
+                            if (signOut == "0")
+                            {
+                                //涓嶄笅绾�
+                            }
+                            else
+                            {
+                                //寮哄埗涓嬬嚎
+                                //CommonPage.Instance.SingOut();
+                                HDLCommon.Current.ShowAlert(Language.StringByID(StringId.LoggedOnOtherDevices));
+                            }
+                        }
+                    }
+                }
+            }
+            else
+            {
+                NSString key_hiddenJson = new NSString("HiddenJson");
+                if (userInfo.ContainsKey(key_hiddenJson))
+                {
+
+                    var hiddenJson = userInfo["HiddenJson"].ToString();
+                    if (string.IsNullOrEmpty(hiddenJson))
+                    {
+                        return;
+                    }
+
+                    if (hiddenJson.Contains("cmtID"))
+                    {
+                        /////鐩墠鏍规嵁杩欎釜鍒ゆ柇鏄惁鏄彲瑙嗗璁叉暟鎹�
+                        //VideoMethod(hiddenJson);
+                    }
+                    else
+                    {
+
+                        NSDictionary hiddenJsonDic = userInfo["HiddenJson"] as NSDictionary;
+                        if (hiddenJsonDic == null)
+                        {
+                            return;
+                        }
+                        NSString key_Offline = new NSString("Offline");
+                        if (hiddenJsonDic.ContainsKey(key_Offline))
+                        {
+                            string signOut = hiddenJsonDic["Offline"].ToString();
+
+                            if (signOut == "0")
+                            {
+                                //涓嶄笅绾�
+                            }
+                            else
+                            {
+                                //鏍囪涓嬬嚎
+                                haveToSignOut = true;
+                            }
+                        }
+                    }
+                }
+
+            }
+            completionHandler(UIBackgroundFetchResult.NewData);
         }
 
         public override void ReceivedRemoteNotification(UIApplication application, NSDictionary userInfo)
@@ -141,14 +239,13 @@
         public override void OnResignActivation(UIApplication application)
         {
             Console.WriteLine("OnResignActivation");
-            BusSocket.Stop();
+            OnAppConfig.Instance.unlockTime = DateTime.Now;
+            //BusSocket.Stop();
         }
 
         public override void DidEnterBackground(UIApplication application)
         {
             SharedMethod.SharedMethod.IsBackground = true;
-            if (MainPage.LoginUser != null)
-                HDL_ON.Entity.DB_ResidenceData.residenceData.SaveResidenceData();
             Console.WriteLine("DidEnterBackground");
         }
 
@@ -156,7 +253,8 @@
         public override void WillEnterForeground(UIApplication application)
         {
             SharedMethod.SharedMethod.IsBackground = false;
-            BusSocket.Start(6000);
+            //BusSocket.Start();
+            new AppUnlockPage().LoadPage();
             Console.WriteLine("WillEnterForeground");
             UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
         }
@@ -170,47 +268,50 @@
         {
             Console.WriteLine("OnActivated");
             base.OnActivated(application);
+
+            if (haveToSignOut == true)
+            {
+                //寮哄埗涓嬬嚎
+                //CommonPage.Instance.SingOut();
+                HDLCommon.Current.ShowAlert(Language.StringByID(StringId.LoggedOnOtherDevices));
+            }
+
         }
 
         public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
         {
-            AppCenter.Start("e1add75a-82c6-4a5c-a902-4705b195748e",
-                               typeof(Analytics), typeof(Crashes));
+
+            //Shared.Application.FontSize = 12;
+            Shared.Application.IsUsePingFang = true;
+            Window = new UIWindow(UIScreen.MainScreen.Bounds);
+            rootViewController = new UINavigationController(new ViewController()) { NavigationBarHidden = true };
+            Window.RootViewController = rootViewController;
+            Window.MakeKeyAndVisible();
+
+            AppCenter.Start("e1add75a-82c6-4a5c-a902-4705b195748e",typeof(Analytics), typeof(Crashes));
             base.FinishedLaunching(application, launchOptions);
 
             SharedMethod.SharedMethod.sharedApp = application;
-            Shared.Application.IsGpsEnable = false;
             //NSString* nsCount = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];
             application.StatusBarStyle = UIStatusBarStyle.DarkContent;
 
-            string nsCount = NSLocale.CurrentLocale.CountryCode;
-            if (nsCount != OnAppConfig.Instance.CountryCode)
-            {
-                OnAppConfig.Instance.CountryCode = nsCount;
-                OnAppConfig.Instance.SaveUserConfig();
-            }
+            //string nsCount = NSLocale.CurrentLocale.CountryCode;
+
+            //if ( UserInfo.Current != null && nsCount !=  UserInfo.Current.areaCode.ToString())
+            //{
+            //    //int.TryParse(nsCount,out  UserInfo.Current.areaCode);
+            //    //2020-11-18
+            //     UserInfo.Current.areaCode = nsCount;
+            //    OnAppConfig.Instance.SaveUserConfig();
+            //}
+
             application.IdleTimerDisabled = true;
             application.RegisterForRemoteNotificationTypes(UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound);
 
-            Window = new UIWindow(UIScreen.MainScreen.Bounds);
-            var Root = new UINavigationController(new ViewController()) { NavigationBarHidden = true };
-            Window.RootViewController = Root;
-            Window.MakeKeyAndVisible();
             //window.AccessibilityNavigationStyle = UIAccessibilityNavigationStyle.Automatic;
             // check for a notification
-            if (launchOptions != null)
-            {
-                // check for a remote notification
-                if (launchOptions.ContainsKey(UIApplication.LaunchOptionsRemoteNotificationKey))
-                {
-
-                    NSDictionary remoteNotification = launchOptions[UIApplication.LaunchOptionsRemoteNotificationKey] as NSDictionary;
-                    if (remoteNotification != null)
-                    {
-                        //UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
-                    }
-                }
-            }
+            DealWithPushMes(launchOptions);
+          
             if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0))
             {
                 var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes(UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null);
@@ -239,6 +340,74 @@
             Console.WriteLine("FinishedLaunching");
             return true;
         }
+
+        /// <summary>
+        /// 閫�鍑虹櫥褰曟爣璁�
+        /// </summary>
+        bool haveToSignOut;
+        /// <summary>
+        /// 澶勭悊閫氱煡
+        /// </summary>
+        /// <param name="launchOptions"></param>
+        void DealWithPushMes(NSDictionary launchOptions)
+        {
+            haveToSignOut = false;
+            if (launchOptions != null)
+            {
+                // check for a remote notification
+                if (launchOptions.ContainsKey(UIApplication.LaunchOptionsRemoteNotificationKey))
+                {
+                    NSDictionary userInfo = launchOptions[UIApplication.LaunchOptionsRemoteNotificationKey] as NSDictionary;
+                    if (userInfo != null)
+                    {
+                        NSString key_hiddenJson = new NSString("HiddenJson");
+                        if (userInfo.ContainsKey(key_hiddenJson))
+                        {
+                            var hiddenJson = userInfo["HiddenJson"].ToString();
+                            if (!string.IsNullOrEmpty(hiddenJson))
+                            {
+                                if (hiddenJson.Contains("cmtID"))
+                                {
+
+                                    ///鐩墠鏍规嵁杩欎釜鍒ゆ柇鏄惁鏄彲瑙嗗璁叉暟鎹�
+                                    // VideoMethod(hiddenJson);
+                                }
+                                else
+                                {
+
+                                    NSDictionary hiddenJsonDic = userInfo["HiddenJson"] as NSDictionary;
+                                    if (hiddenJsonDic != null)
+                                    {
+                                        NSString key_Offline = new NSString("Offline");
+                                        if (hiddenJsonDic.ContainsKey(key_Offline))
+                                        {
+                                            string signOut = hiddenJsonDic["Offline"].ToString();
+
+                                            if (signOut == "0")
+                                            {
+                                                //涓嶄笅绾�
+                                            }
+                                            else
+                                            {
+                                                //鏍囪涓嬬嚎
+                                                haveToSignOut = true;
+                                            }
+                                        }
+
+                                    }
+                                }
+                            }
+
+
+                        }
+
+                    }
+                }
+            }
+        }
+
+
+
     }
 }
 

--
Gitblit v1.8.0