/// <summary>
        /// 在创建前
        /// </summary>
        /// <param name="args"></param>
        /// <param name="canContinue"></param>
        public override void BeforeCreating(BeforeCreatingAspectArgs args, ref bool canContinue)
        {
            IDevice selectedDevice = OpenFx.BaseApi.SelectedDevice;
            bool    _canContinue   = false;

            if (!VersionCheck(selectedDevice, ver))
            {
                args.Context.App.RunOnUIThread(() =>
                {
                    var fmt             = args.Context.App.GetPublicResouce <string>("OpenFxLowAndroidVersionFmt");
                    var btnIgnore       = args.Context.App.GetPublicResouce <string>("OpenFxLowAndroidBtnIgnore");
                    var btnOK           = args.Context.App.GetPublicResouce <string>("OpenFxLowAndroidBtnOK");
                    var btnCancel       = args.Context.App.GetPublicResouce <string>("OpenFxLowAndroidBtnCancel");
                    var msg             = string.Format(fmt, ver);
                    ChoiceResult result = args.Context.Ux.DoChoice(msg, btnIgnore, btnOK, btnCancel);
                    switch (result)
                    {
                    case ChoiceResult.Left:
                        _canContinue = true;
                        break;

                    default:
                        _canContinue = false;
                        break;
                    }
                });
            }
            canContinue = _canContinue;
        }
        /// <summary>
        /// 从前有座山
        /// </summary>
        /// <param name="args"></param>
        /// <param name="canContinue"></param>
        public override void BeforeCreating(BeforeCreatingAspectArgs args, ref bool canContinue)
        {
            IDevice selectedDevice = OpenFx.BaseApi.SelectedDevice;

            if (!reqRoot || selectedDevice == null)
            {
                return;
            }
            if (DeviceHaveRoot(selectedDevice))
            {
                canContinue = true;
            }
            else
            {
                switch (args.Context.Ux.DoChoice("OpenFxNoRoot", "OpenFxNoRootIgnore"))
                {
                case ChoiceResult.Left:
                    canContinue = true;
                    break;

                default:
                    canContinue = false;
                    break;
                }
            }
        }
예제 #3
0
        /// <summary>
        /// 从前有座山
        /// </summary>
        /// <param name="args"></param>
        /// <param name="canContinue"></param>
        public override void BeforeCreating(BeforeCreatingAspectArgs args, ref bool canContinue)
        {
            IDevice selectedDevice = args.Context.GetService <IDeviceSelector>(ServicesNames.DEVICE_SELECTOR).GetCurrent(args.Context);

            if (!reqRoot || selectedDevice == null)
            {
                return;
            }
            if (DeviceHaveRoot(selectedDevice))
            {
                canContinue = true;
            }
            else
            {
                switch (args.Context.Ux.DoChoice("OpenFxNoRoot", "OpenFxNoRootIgnore"))
                {
                case ChoiceResult.Left:
                    canContinue = true;
                    break;

                default:
                    canContinue = false;
                    break;
                }
            }
        }
        /// <summary>
        /// 在那之前...
        /// </summary>
        /// <param name="args"></param>
        /// <param name="canContinue"></param>
        public override void BeforeCreating(BeforeCreatingAspectArgs args, ref bool canContinue)
        {
            IDevice selectDevice = OpenFx.BaseApi.SelectedDevice;

            if (!InstallApplication(selectDevice, value))
            {
                ChoiceResult choice = ChoiceResult.Deny;
                args.Context.App.RunOnUIThread(() =>
                {
                    choice = args.Context.Ux.DoChoice("OpenFxInstallAppFirst", "OpenFxInstallBtnIgnore", "OpenFxInstallBtnOk");
                });
                canContinue = (choice == ChoiceResult.Deny);
            }
        }
예제 #5
0
        /// <summary>
        /// 在那之前...
        /// </summary>
        /// <param name="args"></param>
        /// <param name="canContinue"></param>
        public override void BeforeCreating(BeforeCreatingAspectArgs args, ref bool canContinue)
        {
            IDevice selectDevice = args.Context.GetService <IDeviceSelector>(ServicesNames.DEVICE_SELECTOR).GetCurrent(args.Context);

            if (!InstallApplication(selectDevice, value))
            {
                bool ok = false;
                args.Context.App.RunOnUIThread(() =>
                {
                    ok = args.Context.Ux.DoYN("OpenFxInstallAppFirst", "OpenFxInstallBtnOk", "OpenFxInstallBtnIgnore");
                });
                canContinue = !ok;
            }
        }
예제 #6
0
        /// <summary>
        /// 在那之前...
        /// </summary>
        /// <param name="args"></param>
        /// <param name="canContinue"></param>
        public override void BeforeCreating(BeforeCreatingAspectArgs args, ref bool canContinue)
        {
            IDevice selectDevice = args.Context.GetService <IDeviceSelector>(ServicesNames.DEVICE_SELECTOR).GetCurrent(args.Context);

            if (!InstallApplication(selectDevice, value))
            {
                ChoiceResult choice = ChoiceResult.Deny;
                args.Context.App.RunOnUIThread(() =>
                {
                    choice = args.Context.Ux.DoChoice("OpenFxInstallAppFirst", "OpenFxInstallBtnIgnore", "OpenFxInstallBtnOk");
                });
                canContinue = (choice == ChoiceResult.Deny);
            }
        }
        /// <summary>
        /// 在创建前
        /// </summary>
        /// <param name="args"></param>
        /// <param name="canContinue"></param>
        public override void BeforeCreating(BeforeCreatingAspectArgs args, ref bool canContinue)
        {
            IDevice selectedDevice = args.Context.GetService <IDeviceSelector>(ServicesNames.DEVICE_SELECTOR).GetCurrent(args.Context);

            if (!VersionCheck(selectedDevice, ver))
            {
                canContinue = false;
                args.Context.App.RunOnUIThread(() =>
                {
                    var fmt = args.Context.App.GetPublicResouce <string>("OpenFxLowAndroidVersionFmt");
                    var msg = string.Format(fmt, ver);
                    args.Context.Ux.Warn(msg);
                });
            }
        }
예제 #8
0
 /// <summary>
 /// 构造
 /// </summary>
 public ClassExtensionBase()
 {
     var scanner = new ClassExtensionScanner(GetType());
     scanner.Scan(ClassExtensionScanner.ScanOption.BeforeCreatingAspect);
     var bcAspects = scanner.BeforeCreatingAspects;
     bool canContinue = true;
     BeforeCreatingAspectArgs bcaArgs = new BeforeCreatingAspectArgs(this, GetType());
     foreach (var aspect in bcAspects)
     {
         aspect.BeforeCreating(bcaArgs, ref canContinue);
         if (!canContinue)
         {
             throw new AspectPreventedException();
         }
     }
 }
예제 #9
0
 /// <summary>
 /// 实现
 /// </summary>
 /// <param name="args"></param>
 /// <param name="canContinue"></param>
 public override void BeforeCreating(BeforeCreatingAspectArgs args, ref bool canContinue)
 {
     if (reqAdmin && !args.Context.App.IsRunAsAdmin)
     {
         var choice = args.Context.Ux
                      .DoChoice("OpenFxNeedAdminPermission");
         if (choice == Open.ChoiceResult.Accept)
         {
             args.Context.App.RestartAppAsAdmin();
         }
         else
         {
             canContinue = false;
         }
     }
 }
예제 #10
0
        /// <summary>
        /// 从前有座山
        /// </summary>
        /// <param name="args"></param>
        /// <param name="canContinue"></param>
        public override void BeforeCreating(BeforeCreatingAspectArgs args, ref bool canContinue)
        {
            IDevice selectedDevice = args.Context.GetService <IDeviceSelector>(ServicesNames.DEVICE_SELECTOR).GetCurrent(args.Context);

            if (!reqRoot || selectedDevice == null)
            {
                return;
            }
            if (DeviceHaveRoot(selectedDevice))
            {
                canContinue = true;
            }
            else
            {
                canContinue = false;
                args.Context.App.RunOnUIThread(() =>
                {
                    args.Context.Ux.Warn("OpenFxNoRoot");
                });
            }
        }
예제 #11
0
 /// <summary>
 /// 具体实现
 /// </summary>
 /// <param name="args"></param>
 /// <param name="canContinue"></param>
 public abstract void BeforeCreating(BeforeCreatingAspectArgs args, ref bool canContinue);