예제 #1
0
 public override void OnCreate()
 {
     base.OnCreate();
     UserDialogs.Init(() => MvxIoCProvider.Instance.Resolve <IMvxAndroidCurrentTopActivity>().Activity);
     CrossCurrentActivity.Current.Init(this);
 }
        // public const  string FilePath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/SJMC/";

        protected override async void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            base.OnCreate(savedInstanceState);

            //CrossBadge.Current.ClearBadge();

            Xamarin.Forms.Forms.SetFlags("CollectionView_Experimental");
            Xamarin.Forms.Forms.SetFlags("CarouselView_Experimental");

            var platformConfig = new PlatformConfig
            {
                BitmapDescriptorFactory = new CachingNativeBitmapDescriptorFactory()
            };

            var config = new FFImageLoading.Config.Configuration()
            {
                VerboseLogging                 = false,
                VerbosePerformanceLogging      = false,
                VerboseMemoryCacheLogging      = false,
                VerboseLoadingCancelledLogging = false,
                Logger = new CustomLogger(),
            };

            ImageService.Instance.Initialize(config);

            Rg.Plugins.Popup.Popup.Init(this, savedInstanceState);
            UserDialogs.Init(this);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            Material.Init(this, savedInstanceState);
            Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, savedInstanceState);
            Xamarin.FormsGoogleMaps.Init(this, savedInstanceState, platformConfig);
            global::Xamarin.FormsMaps.Init(this, savedInstanceState);
            Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MTU2NjkwQDMxMzcyZTMzMmUzMEMydm9JYmZXaEZlQllmK0dHbnp1azc5MXVTcVhaUlp6OXBOb2xWZm9URXM9");
            FormsVideoPlayer.Init();



            //FirebasePushNotificationManager.ProcessIntent(this, Intent);



            CrossFirebasePushNotification.Current.RegisterForPushNotifications();
            CachedImageRenderer.Init(true);
            CachedImageRenderer.InitImageViewHandler();
            //System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

            // await  new ServerCommunication().GetFromServerAsync("https://sjmc.stjosephlab-results.com/api/Auth/Login?userInfo=D1&password=D1");

            CreateNotificationChannel();

            //var intent = new Intent(this, typeof(MainActivity));
            //if (intent != null)
            //{
            //    Toast.MakeText(this, "Opening report from main", ToastLength.Short);
            //    OnNewIntent(intent);
            //}
            //else
            //{
            //    Toast.MakeText(this, "Elese Opening report from main" + intent, ToastLength.Short);
            //}
            //Xamarin.Forms.MessagingCenter.Instance.Subscribe<string, string>("Hello", "DeviceLog", (obj, args) =>
            //   {
            //       Android.Util.Log.Error("SJMC", args);
            //   });
            LoadApplication(new App());

            OnNewIntent(Intent);
        }
예제 #3
0
 public static void Init(Activity activity, bool enableFastRenderer = true)
 {
     CachedImageRenderer.Init(enableFastRenderer);
     UserDialogs.Init(activity);
 }
예제 #4
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            AppCenter.Start("013a6849-359c-489a-88db-974cce2c1722",
                            typeof(Analytics), typeof(Crashes), typeof(Distribute));

            Android.App.AlertDialog.Builder alert = new Android.App.AlertDialog.Builder(this);
            alert.SetTitle("No internet connection");
            alert.SetMessage("You need internet connection to use this app");

            alert.SetNegativeButton("OK", (senderAlert, args) => {});

            Dialog dialog = alert.Create();

            var current = Connectivity.NetworkAccess;

            switch (current)
            {
            case NetworkAccess.Unknown:
                dialog.Show();
                break;

            case NetworkAccess.None:
                dialog.Show();
                break;

            case NetworkAccess.Local:
                dialog.Show();
                break;

            case NetworkAccess.ConstrainedInternet:
                dialog.Show();
                break;

            case NetworkAccess.Internet:
                break;

            default:
                break;
            }

            #region Button definitions
            imgplanets   = FindViewById <ImageView>(Resource.Id.imageView_Planets);
            imgpeople    = FindViewById <ImageView>(Resource.Id.imageView_People);
            imgspecies   = FindViewById <ImageView>(Resource.Id.imageView_Species);
            imgstarships = FindViewById <ImageView>(Resource.Id.imageView_Starships);
            imgfilms     = FindViewById <ImageView>(Resource.Id.imageView_Films);
            imgvehicles  = FindViewById <ImageView>(Resource.Id.imageView_Vehicles);
            #endregion

            #region Click events
            imgplanets.Click   += ButtonPlanets_Click;
            imgpeople.Click    += ButtonPeople_Click;
            imgfilms.Click     += ButtonFilms_Click;
            imgspecies.Click   += ButtonSpecies_Click;
            imgstarships.Click += ButtonStarships_Click;
            imgvehicles.Click  += ButtonVehicles_Click;
            imgplanets.Click   += ButtonPlanets_Click;
            imgpeople.Click    += ButtonPeople_Click;
            #endregion

            UserDialogs.Init(this);
        }
예제 #5
0
 public static void Init(Application application, bool enableFastRenderer = true)
 {
     CachedImageRenderer.Init(enableFastRenderer);
     UserDialogs.Init(application);
 }
예제 #6
0
 public static void Init(Func <Activity> topActivityFactory, bool enableFastRenderer = true)
 {
     CachedImageRenderer.Init(enableFastRenderer);
     UserDialogs.Init(topActivityFactory);
 }
예제 #7
0
 public Setup(Context applicationContext) : base(applicationContext)
 {
     UserDialogs.Init(() => Mvx.Resolve <IMvxAndroidCurrentTopActivity>().Activity);
 }
예제 #8
0
 public void Initialize()
 {
     UserDialogs.Init(this);
 }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            Current = this;

            AppDomain.CurrentDomain.UnhandledException   += CurrentDomain_UnhandledException;
            AppDomain.CurrentDomain.FirstChanceException += CurrentDomain_FirstChanceException;

            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            SetSupportActionBar((Toolbar)FindViewById(ToolbarResource));

            this.Window.AddFlags(WindowManagerFlags.Fullscreen | WindowManagerFlags.TurnScreenOn | WindowManagerFlags.HardwareAccelerated);

            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);

            Settings.CustomUserDataDirectory = Application.Context.GetExternalFilesDir(null).ToString();
            Log.Info("MP", "Settings.CustomUserDataDirectory " + Settings.CustomUserDataDirectory);

            WinForms.BundledPath = Application.Context.ApplicationInfo.NativeLibraryDir;
            Log.Info("MP", "WinForms.BundledPath " + WinForms.BundledPath);

            Test.BlueToothDevice = new BTDevice();
            Test.UsbDevices      = new USBDevices();
            Test.Radio           = new Radio();



            //ConfigFirmwareManifest.ExtraDeviceInfo

            /*
             * var intent = new global::Android.Content.Intent(Intent.ActionOpenDocumentTree);
             *
             * intent.AddFlags(ActivityFlags.GrantWriteUriPermission | ActivityFlags.GrantReadUriPermission);
             * intent.PutExtra(DocumentsContract.ExtraInitialUri, "Mission Planner");
             *
             * StartActivityForResult(intent, 1);
             */

            UserDialogs.Init(this);

            AndroidEnvironment.UnhandledExceptionRaiser += AndroidEnvironment_UnhandledExceptionRaiser;

            {
                if (ContextCompat.CheckSelfPermission(this, Manifest.Permission.AccessFineLocation) !=
                    (int)Permission.Granted ||
                    ContextCompat.CheckSelfPermission(this, Manifest.Permission.WriteExternalStorage) !=
                    (int)Permission.Granted ||
                    ContextCompat.CheckSelfPermission(this, Manifest.Permission.Bluetooth) !=
                    (int)Permission.Granted)
                {
                    ActivityCompat.RequestPermissions(this,
                                                      new String[]
                    {
                        Manifest.Permission.AccessFineLocation, Manifest.Permission.LocationHardware,
                        Manifest.Permission.WriteExternalStorage, Manifest.Permission.ReadExternalStorage,
                        Manifest.Permission.Bluetooth
                    }, 1);
                }

                while (ContextCompat.CheckSelfPermission(this, Manifest.Permission.WriteExternalStorage) !=
                       (int)Permission.Granted)
                {
                    Thread.Sleep(1000);
                    var text = "Checking Permissions - " + DateTime.Now.ToString("T");

                    DoToastMessage(text);
                }
            }

            try {
                // print some info
                var pm   = this.PackageManager;
                var name = this.PackageName;

                var pi = pm.GetPackageInfo(name, PackageInfoFlags.Activities);

                Console.WriteLine("pi.ApplicationInfo.DataDir " + pi?.ApplicationInfo?.DataDir);
                Console.WriteLine("pi.ApplicationInfo.NativeLibraryDir " + pi?.ApplicationInfo?.NativeLibraryDir);

                // api level 24 - android 7
                Console.WriteLine("pi.ApplicationInfo.DeviceProtectedDataDir " +
                                  pi?.ApplicationInfo?.DeviceProtectedDataDir);
            } catch {}

            {
                DoToastMessage("Staging Files");
                try
                {
                    // nofly dir
                    Directory.CreateDirectory(Settings.GetUserDataDirectory() + Path.DirectorySeparatorChar + "NoFly");

                    // restore assets
                    Directory.CreateDirectory(Settings.GetUserDataDirectory());

                    File.WriteAllText(Settings.GetUserDataDirectory() + Path.DirectorySeparatorChar + "airports.csv",
                                      new StreamReader(Resources.OpenRawResource(
                                                           Xamarin.Droid.Resource.Raw.airports)).ReadToEnd());

                    File.WriteAllText(
                        Settings.GetUserDataDirectory() + Path.DirectorySeparatorChar + "BurntKermit.mpsystheme",
                        new StreamReader(
                            Resources.OpenRawResource(
                                Droid.Resource.Raw.BurntKermit)).ReadToEnd());

                    File.WriteAllText(
                        Settings.GetUserDataDirectory() + Path.DirectorySeparatorChar + "ParameterMetaData.xml",
                        new StreamReader(
                            Resources.OpenRawResource(
                                Droid.Resource.Raw.ParameterMetaDataBackup)).ReadToEnd());

                    File.WriteAllText(
                        Settings.GetUserDataDirectory() + Path.DirectorySeparatorChar + "camerasBuiltin.xml",
                        new StreamReader(
                            Resources.OpenRawResource(
                                Droid.Resource.Raw.camerasBuiltin)).ReadToEnd());

                    File.WriteAllText(
                        Settings.GetUserDataDirectory() + Path.DirectorySeparatorChar + "checklistDefault.xml",
                        new StreamReader(
                            Resources.OpenRawResource(
                                Droid.Resource.Raw.checklistDefault)).ReadToEnd());

                    File.WriteAllText(
                        Settings.GetUserDataDirectory() + Path.DirectorySeparatorChar + "mavcmd.xml", new StreamReader(
                            Resources.OpenRawResource(
                                Droid.Resource.Raw.mavcmd)).ReadToEnd());

                    {
                        var pluginsdir = Settings.GetRunningDirectory() + "plugins";
                        Directory.CreateDirectory(pluginsdir);

                        string[] files = new[]
                        {
                            "example2menu", "example3fencedist", "example4herelink", "example5latencytracker",
                            "example6mapicondesc", "example7canrtcm", "example8modechange", "example9hudonoff",
                            "examplewatchbutton", "generator", "InitialParamsCalculator"
                        };

                        foreach (var file in files)
                        {
                            try
                            {
                                var id = (int)typeof(Droid.Resource.Raw)
                                         .GetField(file)
                                         .GetValue(null);

                                var filename = pluginsdir + Path.DirectorySeparatorChar + file + ".cs";

                                if (File.Exists(filename))
                                {
                                    File.Delete(filename);
                                }

                                /*
                                 * File.WriteAllText(filename
                                 *  ,
                                 *  new StreamReader(
                                 *      Resources.OpenRawResource(id)).ReadToEnd());
                                 */
                            }
                            catch
                            {
                            }
                        }
                    }

                    {
                        var graphsdir = Settings.GetRunningDirectory() + "graphs";
                        Directory.CreateDirectory(graphsdir);

                        string[] files = new[]
                        {
                            "ekf3Graphs", "ekfGraphs", "mavgraphs", "mavgraphs2", "mavgraphsMP"
                        };

                        foreach (var file in files)
                        {
                            try
                            {
                                var id = (int)typeof(Droid.Resource.Raw)
                                         .GetField(file)
                                         .GetValue(null);

                                File.WriteAllText(
                                    graphsdir + Path.DirectorySeparatorChar + file + ".xml",
                                    new StreamReader(
                                        Resources.OpenRawResource(id)).ReadToEnd());
                            }
                            catch
                            {
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    AlertDialog.Builder alert = new AlertDialog.Builder(this);
                    alert.SetTitle("Error");
                    alert.SetMessage("Failed to save to storage " + ex.ToString());

                    alert.SetNeutralButton("OK", (senderAlert, args) =>
                    {
                    });

                    Dialog dialog = alert.Create();
                    dialog.Show();
                }
            }

            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);

            {
                // clean start, see if it was an intent/usb attach
                if (savedInstanceState == null)
                {
                    DoToastMessage("Init Saved State");
                    proxyIfUsbAttached(this.Intent);
                }
            }

            GC.Collect();

            DoToastMessage("Launch App");

            LoadApplication(new App());
        }
예제 #10
0
        void ContinueInit()
        {
            var list = Application.Context.GetExternalFilesDirs(null);

            list.ForEach(a => Log.Info("MP", "External dir option: " + a.AbsolutePath));

            var list2 = Application.Context.GetExternalFilesDirs(Environment.DirectoryDownloads);

            list2.ForEach(a => Log.Info("MP", "External DirectoryDownloads option: " + a.AbsolutePath));

            var pref = this.GetSharedPreferences("pref", FileCreationMode.Private);


            Settings.CustomUserDataDirectory = Application.Context.GetExternalFilesDir(null).ToString();
            //pref.GetString("Directory", Application.Context.GetExternalFilesDir(null).ToString());
            Log.Info("MP", "Settings.CustomUserDataDirectory " + Settings.CustomUserDataDirectory);

            try {
                WinForms.Android      = true;
                WinForms.BundledPath  = Application.Context.ApplicationInfo.NativeLibraryDir;
                GStreamer.BundledPath = Application.Context.ApplicationInfo.NativeLibraryDir;
                GStreamer.Android     = true;
            } catch { }
            Log.Info("MP", "WinForms.BundledPath " + WinForms.BundledPath);

            try
            {
                var am = (ActivityManager)Application.Context.GetSystemService(Context.ActivityService);

                var devinfo = am?.DeviceConfigurationInfo;

                if (devinfo != null)
                {
                    Log.Info("MP", "opengl es version " + devinfo.GlEsVersion);
                    Log.Info("MP", "opengl es app req " + devinfo.ReqGlEsVersion);
                }
            }
            catch { }

            try
            {
                JavaSystem.LoadLibrary("gstreamer_android");

                Org.Freedesktop.Gstreamer.GStreamer.Init(this.ApplicationContext);
            }
            catch (Exception ex) { Log.Error("MP", ex.ToString()); }

            Test.BlueToothDevice = new BTDevice();
            Test.UsbDevices      = new USBDevices();
            Test.Radio           = new Radio();
            Test.GPS             = new GPS();
            Test.SystemInfo      = new SystemInfo();

            androidvideo = new AndroidVideo();
            //disable
            //androidvideo.Start();
            AndroidVideo.onNewImage += (e, o) =>
            {
                WinForms.SetHUDbg(o);
            };


            //ConfigFirmwareManifest.ExtraDeviceInfo

            /*
             * var intent = new global::Android.Content.Intent(Intent.ActionOpenDocumentTree);
             *
             * intent.AddFlags(ActivityFlags.GrantWriteUriPermission | ActivityFlags.GrantReadUriPermission);
             * intent.PutExtra(DocumentsContract.ExtraInitialUri, "Mission Planner");
             *
             * StartActivityForResult(intent, 1);
             */

            UserDialogs.Init(this);

            AndroidEnvironment.UnhandledExceptionRaiser += AndroidEnvironment_UnhandledExceptionRaiser;

            {
                if (ContextCompat.CheckSelfPermission(this, Manifest.Permission.AccessFineLocation) !=
                    (int)Permission.Granted ||
                    ContextCompat.CheckSelfPermission(this, Manifest.Permission.WriteExternalStorage) !=
                    (int)Permission.Granted ||
                    ContextCompat.CheckSelfPermission(this, Manifest.Permission.Bluetooth) !=
                    (int)Permission.Granted)
                {
                    ActivityCompat.RequestPermissions(this,
                                                      new String[]
                    {
                        Manifest.Permission.AccessFineLocation, Manifest.Permission.LocationHardware,
                        Manifest.Permission.WriteExternalStorage, Manifest.Permission.ReadExternalStorage,
                        Manifest.Permission.Bluetooth
                    }, 1);
                }

                while (ContextCompat.CheckSelfPermission(this, Manifest.Permission.WriteExternalStorage) !=
                       (int)Permission.Granted)
                {
                    Thread.Sleep(1000);
                    var text = "Checking Permissions - " + DateTime.Now.ToString("T");

                    DoToastMessage(text);
                }
            }

            try {
                // print some info
                var pm   = this.PackageManager;
                var name = this.PackageName;

                var pi = pm.GetPackageInfo(name, PackageInfoFlags.Activities);

                Console.WriteLine("pi.ApplicationInfo.DataDir " + pi?.ApplicationInfo?.DataDir);
                Console.WriteLine("pi.ApplicationInfo.NativeLibraryDir " + pi?.ApplicationInfo?.NativeLibraryDir);

                // api level 24 - android 7
                Console.WriteLine("pi.ApplicationInfo.DeviceProtectedDataDir " +
                                  pi?.ApplicationInfo?.DeviceProtectedDataDir);
            } catch {}


            {
                // clean start, see if it was an intent/usb attach
                //if (savedInstanceState == null)
                {
                    DoToastMessage("Init Saved State");
                    proxyIfUsbAttached(this.Intent);

                    Console.WriteLine(this.Intent?.Action);
                    Console.WriteLine(this.Intent?.Categories);
                    Console.WriteLine(this.Intent?.Data);
                    Console.WriteLine(this.Intent?.DataString);
                    Console.WriteLine(this.Intent?.Type);
                }
            }

            GC.Collect();

            try
            {
                Java.Lang.JavaSystem.LoadLibrary("gdal");

                Java.Lang.JavaSystem.LoadLibrary("gdalalljni");

                Java.Lang.JavaSystem.LoadLibrary("gdalwrap");
            }
            catch (System.Exception ex) { Log.Error("GDAL", ex.ToString()); }

            Task.Run(() =>
            {
                var gdaldir = Settings.GetRunningDirectory() + "gdalimages";
                Directory.CreateDirectory(gdaldir);

                MissionPlanner.Utilities.GDAL.GDALBase = new GDAL.GDAL();

                GDAL.GDAL.ScanDirectory(gdaldir);

                GMap.NET.MapProviders.GMapProviders.List.Add(GDAL.GDALProvider.Instance);
            });


            DoToastMessage("Launch App");

            LoadApplication(new App());
        }
예제 #11
0
 protected override void InitializeIoC()
 {
     base.InitializeIoC();
     UserDialogs.Init(() => Mvx.Resolve <IMvxAndroidCurrentTopActivity>().Activity);
     Mvx.RegisterSingleton <INotificationService> (new AndroidNotificationService(this.ApplicationContext));
 }
 public AcuantAndroidSDKWrapper(Android.App.Activity act)
 {
     this.mainActivity = act;
     UserDialogs.Init(act);
 }
예제 #13
0
 private void InitializePlugins()
 {
     UserDialogs.Init(this);
     global::Android.Gms.Ads.MobileAds.Initialize(ApplicationContext, AppConstants.AdmobKeyAndroid);
 }
예제 #14
0
 private void InitUserDialog()
 {
     UserDialogs.Init(this);
 }
예제 #15
0
 protected override void OnCreate(Bundle bundle)
 {
     base.OnCreate(bundle);
     UserDialogs.Init(this);
 }