/// <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); }
protected Type? GetCurrentActivityViewModelType() { Type? currentActivityType = CurrentActivity?.GetType(); var activityViewModelType = ViewModelTypeFinder.FindTypeOrNull(currentActivityType); return activityViewModelType; }
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); }