public void SetReminder(int hour, int min, string title, string content) { _title = title; _content = content; var calendar = Calendar.GetInstance(Locale.Default); var setCalendar = Calendar.GetInstance(Locale.Default); setCalendar.Set(CalendarField.HourOfDay, hour); setCalendar.Set(CalendarField.Minute, min); setCalendar.Set(CalendarField.Second, 0); CancelReminder(); if (setCalendar.Before(calendar)) { setCalendar.Add(CalendarField.Date, 1); } var alarmReceiver = new AlarmReceiver(title, content); var componentName = new ComponentName(Application.Context, alarmReceiver.Class); var packageManager = Application.Context.PackageManager; packageManager.SetComponentEnabledSetting(componentName, ComponentEnabledState.Enabled, ComponentEnableOption.DontKillApp); var intent = new Intent(Application.Context, alarmReceiver.Class); intent.PutExtra(TitleKey, title); intent.PutExtra(MessageKey, content); var pendingIntent = PendingIntent.GetBroadcast(Application.Context, DAILY_REMINDER_REQUEST_CODE, intent, PendingIntentFlags.UpdateCurrent); var alarmManager = (AlarmManager)Application.Context.GetSystemService(Context.AlarmService); alarmManager.SetInexactRepeating(AlarmType.RtcWakeup, setCalendar.TimeInMillis, AlarmManager.IntervalDay, pendingIntent); }
private void LoadAlarm() { Android.Icu.Util.Calendar calendar = Android.Icu.Util.Calendar.GetInstance(Android.Icu.Util.TimeZone.Default); //calendar.Set(Android.Icu.Util.CalendarField.Millisecond, DateTime.UtcNow.Millisecond); calendar.Set(Android.Icu.Util.CalendarField.HourOfDay, 15); calendar.Set(Android.Icu.Util.CalendarField.Minute, 00); var ms = calendar.TimeInMillis; Intent intent = new Intent(Activity, typeof(AlarmReceiver)); PendingIntent pendingIntent = PendingIntent.GetBroadcast(Activity, 0, intent, PendingIntentFlags.UpdateCurrent | PendingIntentFlags.OneShot); SetAlarm(Activity, ms, pendingIntent); //SetAlarm (ms); }
public void CreateKeyPair() { DeleteKey(); KeyPairGenerator keyGenerator = KeyPairGenerator.GetInstance(KeyProperties.KeyAlgorithmRsa, KEYSTORE_NAME); if (Build.VERSION.SdkInt >= BuildVersionCodes.JellyBeanMr2 && Build.VERSION.SdkInt <= BuildVersionCodes.LollipopMr1) { var calendar = Calendar.GetInstance(_context.Resources.Configuration.Locale); var endDate = Calendar.GetInstance(_context.Resources.Configuration.Locale); endDate.Add(CalendarField.Year, 20); //this API is obsolete after Android M, but I am supporting Android L, so I need this #pragma warning disable 618 var builder = new KeyPairGeneratorSpec.Builder(_context) #pragma warning restore 618 .SetAlias(_keyName).SetSerialNumber(BigInteger.One) .SetSubject(new X500Principal($"CN={_keyName} CA Certificate")) .SetStartDate(calendar.Time) .SetEndDate(endDate.Time).SetKeySize(KeySize); keyGenerator.Initialize(builder.Build()); } else if (Build.VERSION.SdkInt >= BuildVersionCodes.M) { var builder = new KeyGenParameterSpec.Builder(_keyName, KeyStorePurpose.Encrypt | KeyStorePurpose.Decrypt) .SetBlockModes(KeyProperties.BlockModeEcb) .SetEncryptionPaddings(KeyProperties.EncryptionPaddingRsaPkcs1) .SetRandomizedEncryptionRequired(false).SetKeySize(KeySize); keyGenerator.Initialize(builder.Build()); } keyGenerator.GenerateKeyPair(); }
protected override void OnCreate(Bundle savedInstanceState) { SetTheme(Android.Resource.Style.ThemeDeviceDefault); base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.TripConfirmation_1); ActionBar ab = ActionBar; ab.SetDisplayHomeAsUpEnabled(true); progress = new ProgressDialog(this); progress.Indeterminate = true; progress.SetProgressStyle(ProgressDialogStyle.Spinner); progress.SetMessage("Loading..."); progress.SetCancelable(false); RunOnUiThread(() => { progress.Show(); }); iMember = JsonConvert.DeserializeObject <Member>(Intent.GetStringExtra("Member")); iTrip = JsonConvert.DeserializeObject <Trip>(Intent.GetStringExtra("Trip")); var o = iTrip.originLatLng.Split(','); var d = iTrip.destinationLatLng.Split(','); originLatLng = new LatLng(Double.Parse(o[0]), Double.Parse(o[1])); destLatLng = new LatLng(Double.Parse(d[0]), Double.Parse(d[1])); // Lower Part arrCheckedDay = new bool[7]; SetDayArrayBool(false); LinearLayout upperContainer = (LinearLayout)FindViewById(Resource.Id.upper_container); LinearLayout lowerContainer = (LinearLayout)FindViewById(Resource.Id.lower_container); LinearLayout seatLayout = (LinearLayout)FindViewById(Resource.Id.availableSeat_layout); tvOrigin = (TextView)FindViewById(Resource.Id.textview_origin); tvDestination = (TextView)FindViewById(Resource.Id.textview_dest); tvArriveTime = (TextView)FindViewById(Resource.Id.textview_arrivetime); tvDay = (TextView)FindViewById(Resource.Id.textview_day); switchFemaleOnly = (Switch)FindViewById(Resource.Id.switch_femaleonly); spinnerSeat = (Spinner)FindViewById(Resource.Id.spinner_seat); tvArriveTime.Click += ShowTimeDialog; tvDay.Click += ShowDayDialog; tvOrigin.Text = iTrip.origin; tvDestination.Text = iTrip.destination; if (iMember.gender.Equals("Male")) { switchFemaleOnly.Enabled = false; } if (iMember.type.Equals("Driver")) { // Upper Part // Set available seat string array to adapter var adapter = ArrayAdapter.CreateFromResource(this, Resource.Array.trip_available_seat, Resource.Layout.Custom_Spinner_Seat); adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); spinnerSeat.Adapter = adapter; } else { seatLayout.Visibility = ViewStates.Gone; upperContainer.LayoutParameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, 0, 5.0f); lowerContainer.LayoutParameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, 0, 5.0f); } Android.Icu.Util.Calendar mcurrentTime = Android.Icu.Util.Calendar.Instance; hour = mcurrentTime.Get(Android.Icu.Util.Calendar.HourOfDay); minute = mcurrentTime.Get(Android.Icu.Util.Calendar.Minute); MapFragment mapFragment = (MapFragment)FragmentManager.FindFragmentById(Resource.Id.googlemap); mapFragment.GetMapAsync(this); txtviewDistance = (TextView)FindViewById(Resource.Id.textview_distance); txtviewDuration = (TextView)FindViewById(Resource.Id.textview_time); txtviewCost = (TextView)FindViewById(Resource.Id.textview_cost); btnCreate = (Button)FindViewById(Resource.Id.btn_tripcon_continue); btnCreate.Click += CreateClick; }