Beispiel #1
0
        /// <summary>
        /// Starts tags detection
        /// </summary>
        public void StartListening()
        {
            if (_nfcAdapter == null)
            {
                return;
            }

            var intent        = new Intent(CurrentActivity, CurrentActivity.GetType()).AddFlags(ActivityFlags.SingleTop);
            var pendingIntent = PendingIntent.GetActivity(CurrentActivity, 0, intent, 0);

            var ndefFilter = new IntentFilter(NfcAdapter.ActionNdefDiscovered);

            ndefFilter.AddDataType("*/*");

            var tagFilter = new IntentFilter(NfcAdapter.ActionTagDiscovered);

            tagFilter.AddCategory(Intent.CategoryDefault);

            var filters = new IntentFilter[] { ndefFilter, tagFilter };

            _nfcAdapter.EnableForegroundDispatch(CurrentActivity, pendingIntent, filters, null);

            _isListening = true;
            OnTagListeningStatusChanged?.Invoke(_isListening);
        }
Beispiel #2
0
        protected Type? GetCurrentActivityViewModelType()
        {
            Type? currentActivityType = CurrentActivity?.GetType();

            var activityViewModelType = ViewModelTypeFinder.FindTypeOrNull(currentActivityType);
            return activityViewModelType;
        }
Beispiel #3
0
        protected override Intent CreateIntentForRequest(MvxViewModelRequest request)
        {
            var intent = base.CreateIntentForRequest(request);

            if (request.ViewModelType == typeof(MainViewModel) &&
                CurrentActivity.GetType() == typeof(LaunchScreenActivity))
            {
                intent.AddFlags(ActivityFlags.ClearTask | ActivityFlags.NewTask);
            }

            return(intent);
        }
        protected override Intent CreateIntentForRequest(MvxViewModelRequest request)
        {
            var intent = base.CreateIntentForRequest(request);

            if (CurrentActivity.GetType() == typeof(SplashScreen))
            {
                intent.AddFlags(ActivityFlags.NoAnimation);
            }

            if (request.ViewModelType == typeof(MainViewModel) ||
                request.ViewModelType == typeof(LoginViewModel))
            {
                intent.AddFlags(ActivityFlags.ClearTask);
            }

            return(intent);
        }