| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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) |
| | | { |
| | |
| | | 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) |