wxr
2022-12-13 17a2bee074dc8d625016647b1acfe3f0a9734b18
ON.Ios/AppDelegate.cs
@@ -2,9 +2,6 @@
using AdSupport;
using com.hdl.on;
using Foundation;
using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;
using Shared;
using UIKit;
using UserNotifications;
@@ -17,11 +14,7 @@
        public static UIApplication sharedApp;
        public static void ChangeSkin ()
        {
            if (UserConfig.Instance.SkinCode == 0) {
                sharedApp.StatusBarStyle = UIStatusBarStyle.LightContent;
            } else if (UserConfig.Instance.SkinCode == 1) {
                sharedApp.StatusBarStyle = UIStatusBarStyle.Default;
            }
        }
        public static PageLayout CurPageLayout = null;
        public static bool IsBackground;
@@ -39,141 +32,25 @@
            get;
            set;
        }
        //public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations (UIApplication application, UIWindow forWindow)
        //{
        //    if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone) {
        //        return UIInterfaceOrientationMask.Portrait;
        //    } else {
        //        return UIInterfaceOrientationMask.LandscapeRight | UIInterfaceOrientationMask.Portrait;
        //    }
        //}
        //class MyUINavigationController : UINavigationController
        //{
        //    public MyUINavigationController (UIViewController viewController) : base (viewController) { }
        //    public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
        //    {
        //            if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) {
        //                UIApplication.SharedApplication.SetStatusBarOrientation (UIInterfaceOrientation.LandscapeRight, false);
        //                return UIInterfaceOrientationMask.LandscapeRight;
        //            } else {
        //                return UIInterfaceOrientationMask.Portrait;
        //            }
        //    }
        //}
        //public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations (UIApplication application, UIWindow forWindow)
        //{
        //    if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) {
        //        return UIInterfaceOrientationMask.LandscapeRight;
        //    } else {
        //        return UIInterfaceOrientationMask.LandscapeRight | UIInterfaceOrientationMask.Portrait;
        //    }
        //}
        public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
        {
            AppCenter.Start ("44cbdfbf-d33e-4e92-a795-1c4452e54d3e", typeof (Analytics), typeof (Crashes));
            Console.WriteLine ("FinishedLaunching");
            base.FinishedLaunching (application, launchOptions);
            SharedMethod.SharedMethod.sharedApp = application;
            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 ();
            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;
                    }
                }
            }
            if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) {
                var notificationSettings = UIUserNotificationSettings.GetSettingsForTypes (UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, null);
                application.RegisterUserNotificationSettings (notificationSettings);
                application.RegisterForRemoteNotifications ();
            } else {
                //==== register for remote notifications and get the device token
                // set what kind of notification types we want
                UIRemoteNotificationType notificationTypes = UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge;
                // register for remote notifications
                UIApplication.SharedApplication.RegisterForRemoteNotificationTypes (notificationTypes);
            }
            if (UIApplication.SharedApplication.ApplicationIconBadgeNumber > 0) {
                RemoteInfo.Current.ReadMsgList (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken"), true);
            }
            //if (UserConfig.Instance.SkinCode == 0) {
                application.StatusBarStyle = UIStatusBarStyle.DarkContent;
                Shared.Application.Skin = "Phone2";
            //} else if (UserConfig.Instance.SkinCode == 1) {
            //    application.StatusBarStyle = UIStatusBarStyle.Default;
            //    Shared.Application.Skin = UserConfig.Instance.CurrentSkinName;
            //}
            application.StatusBarStyle = UIStatusBarStyle.DarkContent;
            Shared.Application.Skin = "Phone2";
            SkinStyle.Current.ChangeColor ();
            return true;
        }
        public static void CleanApplicationIconBadgeNumber ()
        {
            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
        }
        public override void RegisteredForRemoteNotifications (UIApplication application, NSData deviceToken)
        {
            /// Get current device token
            var DeviceToken = deviceToken.Description;
            if (!string.IsNullOrWhiteSpace (DeviceToken)) {
                DeviceToken = DeviceToken.Trim ('<').Trim ('>').Replace (" ", "");
            }
            // Get previous device token
            var oldDeviceToken = NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken");
            // Has the token changed?
            if (string.IsNullOrEmpty (oldDeviceToken) || !oldDeviceToken.Equals (DeviceToken)) {
                //TODO: Put your own logic here to notify your server that the device token has changed/been created!
                // Save new device token
                NSUserDefaults.StandardUserDefaults.SetString (DeviceToken, "PushDeviceToken");
                string userPhoneName = UIDevice.CurrentDevice.Name;
            }
        }
        public override void DidReceiveRemoteNotification (UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
        {
            Console.WriteLine ("DidReceiveRemoteNotification:" + application.ApplicationState.ToString ());
            RemoteInfo.Current.ReadMsgList (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken"),
                                            application.ApplicationState == UIApplicationState.Active ? true : false);
            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
        }
        public override void ReceivedRemoteNotification (UIApplication application, NSDictionary userInfo)
        {
            if (application.ApplicationState == UIApplicationState.Active) {
                Console.WriteLine ("ReceivedRemoteNotification1");
            } else if (application.ApplicationState == UIApplicationState.Background) {
                Console.WriteLine ("ReceivedRemoteNotification2");
            } else if (application.ApplicationState == UIApplicationState.Inactive) {
                Console.WriteLine ("ReceivedRemoteNotification3");
            }
            //string extKey1 = "PushResType";
            //NSString extValue1 = userInfo.ValueForKey ((NSString)extKey1);
        }
        public override void OnResignActivation (UIApplication application)
        {
@@ -190,18 +67,11 @@
        public override void WillEnterForeground (UIApplication application)
        {
            SharedMethod.SharedMethod.IsBackground = false;
            Console.WriteLine ("WillEnterForeground");
            //if (UIApplication.SharedApplication.ApplicationIconBadgeNumber > 0)
            //    RemoteInfo.Current.ReadMsgList (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken"), true);
            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
            // Called as part of the transiton from background to active state.
            // Here you can undo many of the changes made on entering the background.
        }
        public override void WillTerminate (UIApplication application)
        {
            Console.WriteLine ("WillTerminate");
            // Called when the application is about to terminate. Save data, if needed. See also DidEnterBackground.
        }
        public override void OnActivated (UIApplication application)