public override void OnReceive(Context context, Intent intent) { if (_isStarted) { //DO NOT REMOVE //Helps to avoid multiple receivers registration on same event Log.Debug("AbnormalMonitorService", $"Received {intent.Action}, but monitoring already started!"); return; } Log.Debug("AbnormalMonitorService", $"Received {intent.Action}"); DataHolder.Initialize(context); ScreenUnlockReceiver.SetUnlockReceiverStatus(context, enable: DataHolder.IsSelectedCategory(DataHolder.ScreenCategory)); PhoneCallReceiver.SetCallReceiverStatus(context, enable: DataHolder.IsSelectedCategory(DataHolder.PhoneCategory)); SmsReceiver.SetSmsReceiverStatus(context, enable: DataHolder.IsSelectedCategory(DataHolder.SmsCategory)); IntentFilter filter = new IntentFilter(); filter.AddAction(LocationManager.ModeChangedAction); context.ApplicationContext.RegisterReceiver(new LocationModeChangeReceiver(), filter); SystemModListenerService.SetSystemMonitoringStatus(context, enable: DataHolder.IsSelectedCategory(DataHolder.SystemCategory)); AlarmReceiver.RegisterReceiver(context); LocationUtils.SetLocationTrackingEnabled(DataHolder.IsSelectedCategory(DataHolder.LocationCategory)); _isStarted = true; }
public override void OnReceive(Context context, Intent intent) { var notificationManager = NotificationManager.FromContext(context); notificationManager.Cancel(intent.GetIntExtra(NotificationSender.ExtraNotificationId, 0)); var category = intent.GetStringExtra(NotificationSender.ExtraNotificationCategory); switch (category) { case DataHolder.SystemCategory: DataHolder.NormalizeSystemData( intent.GetStringExtra(SystemModListenerService.ExtraFilePath), intent.GetStringExtra(SystemModListenerService.ExtraFileEvent)); break; case DataHolder.ScreenLocksCategory: DataHolder.NormalizeScreenData(intent); break; case DataHolder.LocationCategory: DataHolder.NormalizeLocationData(intent); break; case DataHolder.PhoneCategory: DataHolder.NormalizePhoneData(intent); break; case DataHolder.SmsCategory: DataHolder.NormalizeSmsData(intent); break; case AlarmReceiver.SummaryCategory: try { AlarmReceiver.ExportSummary(intent.GetStringExtra(AlarmReceiver.ExtraSummaryText)); Toast.MakeText(context, context.GetString(Resource.String.toast_export_successful), ToastLength.Short).Show(); } catch (Exception e) { Log.Error(nameof(AlarmReceiver.ExportSummary), e.StackTrace); Log.Error(nameof(AlarmReceiver.ExportSummary), e.Message); Toast.MakeText(context, context.GetString(Resource.String.toast_export_failed), ToastLength.Short).Show(); } break; } MainActivity.Adapter?.Refresh(); }