/// <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; } } }
/// <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); } }
/// <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; } }
/// <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); }); } }
/// <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(); } } }
/// <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; } } }
/// <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"); }); } }
/// <summary> /// 具体实现 /// </summary> /// <param name="args"></param> /// <param name="canContinue"></param> public abstract void BeforeCreating(BeforeCreatingAspectArgs args, ref bool canContinue);