Example #1
0
        /// <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;
        }
Example #2
0
        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();
            };
        }
Example #3
0
        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;
        }
Example #4
0
        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);
            }
        }