Beispiel #1
0
        /**
		 *权限要求
         *在Java方面进行Rationale的处理等
		 * @param permission
		 * @param callback
		 */
        public static IEnumerator GrantPermission(string permission, OnPermission callback)
		{
            Debug.Log(TAG + "GrantPermission:" + permission);
            if (!HasPermission(permission))
			{
				grantResult = PermissionGrantResult.PERMISSION_DENY;
				isPermissionRequesting = true;
				using (AndroidJavaClass clazz = new AndroidJavaClass(FQCN_PLUGIN))
				{
					clazz.CallStatic("grantPermission",
						AndroidUtils.GetCurrentActivity(), permission);
				}
				float timeElapsed = 0;
				while (isPermissionRequesting)
				{
					if ((PermissionTimeoutSecs > 0) && (timeElapsed > PermissionTimeoutSecs))
					{
						isPermissionRequesting = false;
						yield break;
					}
					timeElapsed += Time.deltaTime;
						yield return null;
				}
				callback(permission, grantResult);
			}
			else
			{
				callback(permission, PermissionGrantResult.PERMISSION_GRANT);
			}
	
			yield break;
		}
Beispiel #2
0
		/**
		 * パーミッション要求
		 * こっちはJava側でRationaleの処理等を行う
		 * @param permission
		 * @param callback
		 */
		public static IEnumerator GrantPermission(string permission, OnPermission callback)
		{
#if (!NDEBUG && DEBUG && ENABLE_LOG)
			Console.WriteLine($"{TAG}GrantPermission:{permission}");
#endif
			if (!HasPermission(permission))
			{
				grantResult = PermissionGrantResult.PERMISSION_DENY;
				isPermissionRequesting = true;
				using (AndroidJavaClass clazz = new AndroidJavaClass(FQCN_PLUGIN))
				{
					clazz.CallStatic("grantPermission",
						AndroidUtils.GetCurrentActivity(), permission);
				}
				float timeElapsed = 0;
				while (isPermissionRequesting)
				{
					if ((PermissionTimeoutSecs > 0) && (timeElapsed > PermissionTimeoutSecs))
					{
						isPermissionRequesting = false;
						yield break;
					}
					timeElapsed += Time.deltaTime;
						yield return null;
				}
				callback(permission, grantResult);
			}
			else
			{
				callback(permission, PermissionGrantResult.PERMISSION_GRANT);
			}
	
			yield break;
		}
Beispiel #3
0
		/**
		 * パーミッションを取得できずパーミッションダイアログを再び表示しないように設定された
		 */
		public void OnPermissionDenyAndNeverAskAgain()
		{
#if (!NDEBUG && DEBUG && ENABLE_LOG)
			Console.WriteLine($"{TAG}OnPermissionDenyAndNeverAskAgain:");
#endif
			grantResult = PermissionGrantResult.PERMISSION_DENY_AND_NEVER_ASK_AGAIN;
			isPermissionRequesting = false;
		}
Beispiel #4
0
		/**
		 * パーミッションを取得できなかった
		 */
		public void OnPermissionDeny()
		{
#if (!NDEBUG && DEBUG && ENABLE_LOG)
			Console.WriteLine($"{TAG}OnPermissionDeny:");
#endif
			grantResult = PermissionGrantResult.PERMISSION_DENY;
			isPermissionRequesting = false;
		}
    public MultiplePermissionGrantResult(string[] names, PermissionGrantResult grantResult = PermissionGrantResult.Undefined)
    {
        Check.NotNull(names, nameof(names));

        Result = new Dictionary <string, PermissionGrantResult>();

        foreach (var name in names)
        {
            Result.Add(name, grantResult);
        }
    }
        public async Task HandleEventAsync(object sender, IUserConnectedEvent @event)
        {
            UnturnedUser user = (UnturnedUser)@event.User;

            Jobs.Civil++;
            PermissionGrantResult medic = await ro_PermissionChecker.CheckPermissionAsync(user, ro_Configuration.GetSection("plugin_configuration:medic_permission").Get <string>());

            PermissionGrantResult police = await ro_PermissionChecker.CheckPermissionAsync(user, ro_Configuration.GetSection("plugin_configuration:police_permission").Get <string>());

            if (medic == PermissionGrantResult.Grant && !user.Player.Player.channel.owner.isAdmin)
            {
                Jobs.Medic++;
            }
            if (police == PermissionGrantResult.Grant && !user.Player.Player.channel.owner.isAdmin)
            {
                Jobs.Police++;
            }
        }
Beispiel #7
0
 public RegisterPermissionAttribute(string permission)
 {
     Permission   = permission;
     DefaultGrant = PermissionGrantResult.Default;
 }
Beispiel #8
0
		/**
		 * パーミッションを取得できずパーミッションダイアログを再び表示しないように設定された
		 */
		public void OnPermissionDenyAndNeverAskAgain()
		{
            Debug.Log(TAG + "OnPermissionDenyAndNeverAskAgain:");
            grantResult = PermissionGrantResult.PERMISSION_DENY_AND_NEVER_ASK_AGAIN;
			isPermissionRequesting = false;
		}
Beispiel #9
0
		/**
		 * パーミッションを取得できなかった
		 */
		public void OnPermissionDeny()
		{
            Debug.Log(TAG + "OnPermissionDeny:");
            grantResult = PermissionGrantResult.PERMISSION_DENY;
			isPermissionRequesting = false;
		}
Beispiel #10
0
		/**
		 * パーミッションを取得できた
		 */
		public void OnPermissionGrant()
		{
            Debug.Log(TAG + "OnPermissionGrant:");
            grantResult = PermissionGrantResult.PERMISSION_GRANT;
			isPermissionRequesting = false;
		}