/// <summary> /// Fragments the arguments to intent. /// </summary> /// <returns>The arguments to intent.</returns> /// <param name="arguments">Arguments.</param> public static Intent FragmentArgumentsToIntent(Bundle arguments) { Intent intent = new Intent(); if (arguments == null) { return intent; } var data = arguments.GetParcelable("_uri") as Uri; if (data != null) { intent.SetData(data); } intent.PutExtras(arguments); intent.RemoveExtra("_uri"); return intent; }
protected override void OnCreate(Bundle bundle) { base.OnCreate (bundle); SetContentView (Resource.Layout.score); score = Intent.GetIntExtra ("SCORE", 0); tvScore = FindViewById<TextView> (Resource.Id.scoreTxt); tvScore.Text = ScoreText (); DisplayHighscores (); Button btnAgain = FindViewById<Button> (Resource.Id.btnAgain); btnAgain.Click += delegate { Intent i = new Intent (this, typeof (QuizActivity)); i.RemoveExtra ("SCORE"); StartActivity (i); Finish (); }; Button btnQuit = FindViewById<Button> (Resource.Id.btnQuit); btnQuit.Click += delegate { Finish(); }; }
private bool GetIocFromOtpIntent(Bundle savedInstanceState, Intent i) { //create called after detecting an OTP via NFC //this means the Activity was not on the back stack before, i.e. no database has been selected _ioConnection = null; //see if we can get a database from recent: if (App.Kp2a.FileDbHelper.HasRecentFiles()) { ICursor filesCursor = App.Kp2a.FileDbHelper.FetchAllFiles(); StartManagingCursor(filesCursor); filesCursor.MoveToFirst(); IOConnectionInfo ioc = App.Kp2a.FileDbHelper.CursorToIoc(filesCursor); if (App.Kp2a.GetFileStorage(ioc).RequiresSetup(ioc) == false) { IFileStorage fileStorage = App.Kp2a.GetFileStorage(ioc); if (!fileStorage.RequiresCredentials(ioc)) { //ok, we can use this file _ioConnection = ioc; } } } if (_ioConnection == null) { //We need to go to FileSelectActivity first. //For security reasons: discard the OTP (otherwise the user might not select a database now and forget //about the OTP, but it would still be stored in the Intents and later be passed to PasswordActivity again. Toast.MakeText(this, GetString(Resource.String.otp_discarded_because_no_db), ToastLength.Long).Show(); GoToFileSelectActivity(); return false; } //assume user wants to use OTP (for static password, they need to open KP2A first and select the key provider type, then see OnNewIntent) _keyFileOrProvider = KeyProviderIdOtp; if (savedInstanceState == null) //only when not re-creating { //remember the OTP for later use _pendingOtps.Add(i.GetStringExtra(Intents.OtpExtraKey)); i.RemoveExtra(Intents.OtpExtraKey); } return true; }
protected override void OnHandleIntent(Android.Content.Intent intent) { string mode = intent.GetStringExtra("mode"); string alarmAdi = intent.GetStringExtra("alarmAdi"); TimeSpan alarmSaati = TimeSpan.Parse(intent.GetStringExtra("alarmSaati")); int alarmInterval = int.Parse(intent.GetStringExtra("interval")); int alarmVolume = int.Parse(intent.GetStringExtra("volume")); int alarmPresses = int.Parse(intent.GetStringExtra("presses")); int alarmShakes = int.Parse(intent.GetStringExtra("shakes")); string week = intent.GetStringExtra("week"); intent.RemoveExtra("alarmAdi"); intent.RemoveExtra("alarmSaati"); intent.RemoveExtra("interval"); intent.RemoveExtra("volume"); intent.RemoveExtra("presses"); intent.RemoveExtra("shakes"); intent.RemoveExtra("mode"); intent.RemoveExtra("week"); int today = (int)DateTime.Today.DayOfWeek; List <int> alarmDays = new List <int>(); // sunday - 0, monday - 1 ... saturday - 6 if (week.Contains("pzr")) { alarmDays.Add((int)DayOfWeek.Sunday); } if (week.Contains("pzt")) { alarmDays.Add((int)DayOfWeek.Monday); } if (week.Contains("sal")) { alarmDays.Add((int)DayOfWeek.Tuesday); } if (week.Contains("crs")) { alarmDays.Add((int)DayOfWeek.Wednesday); } if (week.Contains("prs")) { alarmDays.Add((int)DayOfWeek.Thursday); } if (week.Contains("cum")) { alarmDays.Add((int)DayOfWeek.Friday); } if (week.Contains("cmt")) { alarmDays.Add((int)DayOfWeek.Saturday); } List <long> millis = new List <long>(); if (alarmDays.Count == 0) { long millisecondsToWait = Convert.ToInt64(alarmSaati.TotalMilliseconds - DateTime.Now.TimeOfDay.TotalMilliseconds); if (millisecondsToWait <= 0) { millisecondsToWait += 24 * 3600 * 1000; } millis.Add(millisecondsToWait); } else { for (int i = 0; i < alarmDays.Count; i++) { int diff = alarmDays[i] - today; long millisecondsToWait = Convert.ToInt64(alarmSaati.TotalMilliseconds - DateTime.Now.TimeOfDay.TotalMilliseconds); millisecondsToWait += diff * 24 * 3600 * 1000; // add days diff if (millisecondsToWait < 0) { millisecondsToWait += 7 * 24 * 3600 * 1000; } millis.Add(millisecondsToWait); } } if (mode.Equals("first")) { long millisecondsToWait = millis.Min(time => time); //int index = millis.FindIndex((item) => (item == millisecondsToWait)); DateTime alarmDay = DateTime.Now + TimeSpan.FromMilliseconds(millisecondsToWait); DayOfWeek dow = alarmDay.DayOfWeek; string day = ""; switch (dow) { case DayOfWeek.Monday: day = "pzt"; break; case DayOfWeek.Tuesday: day = "sal"; break; case DayOfWeek.Wednesday: day = "crs"; break; case DayOfWeek.Thursday: day = "prs"; break; case DayOfWeek.Friday: day = "cum"; break; case DayOfWeek.Saturday: day = "cmt"; break; case DayOfWeek.Sunday: day = "pzr"; break; } var reminderIntent = new Intent(Forms.Context, typeof(ReminderReceiver)); //takvim denetimi reminderIntent.PutExtra("title", alarmAdi); reminderIntent.PutExtra("message", "boþ: " + alarmSaati.ToString(@"hh\:mm") + ", " + day); reminderIntent.PutExtra("alarmSaati", alarmSaati.ToString()); // unique id string _id = alarmAdi + alarmSaati.ToString(@"hh\:mm"); int _alarmId = _id.GetHashCode(); var reminderPending = PendingIntent.GetBroadcast(Forms.Context, _alarmId, reminderIntent, PendingIntentFlags.UpdateCurrent); // var alarmManager = (AlarmManager)Forms.Context.GetSystemService(Context.AlarmService); _alarmManager.Set(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime(), reminderPending); var alarmIntent = new Intent(Forms.Context, typeof(AlarmReceiver)); alarmIntent.PutExtra("alarmSaati", alarmSaati.ToString()); alarmIntent.PutExtra("alarmAdi", alarmAdi); alarmIntent.PutExtra("interval", alarmInterval.ToString()); alarmIntent.PutExtra("volume", alarmVolume.ToString()); alarmIntent.PutExtra("presses", alarmPresses.ToString()); alarmIntent.PutExtra("shakes", alarmShakes.ToString()); var alarmPending = PendingIntent.GetBroadcast(Forms.Context, _alarmId, alarmIntent, PendingIntentFlags.UpdateCurrent); _alarmManager.Set(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime() + millisecondsToWait, alarmPending); } else { alarmSaati = DateTime.Now.TimeOfDay.Add(TimeSpan.FromMilliseconds(alarmInterval * 60 * 1000)); var reminderIntent = new Intent(Forms.Context, typeof(ReminderReceiver)); reminderIntent.PutExtra("title", alarmAdi + "()"); reminderIntent.PutExtra("message", "boþ: " + alarmSaati.ToString(@"hh\:mm")); reminderIntent.PutExtra("alarmSaati", alarmSaati.ToString()); string _id = alarmAdi;// + alarmTime.ToString(@"hh\:mm"); int _alarmId = _id.GetHashCode(); var reminderPending = PendingIntent.GetBroadcast(Forms.Context, _alarmId, reminderIntent, PendingIntentFlags.UpdateCurrent); var alarmManager = (AlarmManager)Forms.Context.GetSystemService(Context.AlarmService); _alarmManager.Set(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime(), reminderPending); var alarmIntent = new Intent(Forms.Context, typeof(AlarmReceiver)); alarmIntent.PutExtra("alarmSaati", alarmSaati.ToString()); alarmIntent.PutExtra("alarmAdi", alarmAdi); alarmIntent.PutExtra("interval", alarmInterval.ToString()); alarmIntent.PutExtra("volume", alarmVolume.ToString()); alarmIntent.PutExtra("presses", alarmPresses.ToString()); alarmIntent.PutExtra("shakes", alarmShakes.ToString()); long millisecondsToWait = alarmInterval * 60 * 1000; var alarmPending = PendingIntent.GetBroadcast(Forms.Context, _alarmId, alarmIntent, PendingIntentFlags.UpdateCurrent); _alarmManager.Set(AlarmType.ElapsedRealtimeWakeup, SystemClock.ElapsedRealtime() + millisecondsToWait, alarmPending); } }