Exemplo n.º 1
0
        private void SetRepeatingAlarm(ICollection <string> numbers, bool isTest)
        {
            Intent       receiverIntent = new Intent(this, typeof(AlarmReceiver));
            AlarmManager alarmManager   = (AlarmManager)GetSystemService(AlarmService);

            if (isTest)
            {
                PendingIntent pendingIntent = PendingIntent.GetBroadcast(this, 0, receiverIntent, PendingIntentFlags.CancelCurrent);

                int seconds = 5;
                alarmManager.Set(AlarmType.RtcWakeup, JavaSystem.CurrentTimeMillis() + (seconds * 1000), pendingIntent);
                myTextViewOutput.Text = $"Test Alarm set in {seconds} seconds.";
            }
            else
            {
                PendingIntent pendingIntent = PendingIntent.GetBroadcast(this, 1, receiverIntent, PendingIntentFlags.CancelCurrent);

                Java.Util.Calendar calendar = Java.Util.Calendar.Instance;
                calendar.TimeInMillis = (JavaSystem.CurrentTimeMillis());
                calendar.Set(Java.Util.CalendarField.HourOfDay, 9);
                calendar.Set(Java.Util.CalendarField.Minute, 0);
                calendar.Set(Java.Util.CalendarField.Second, 0);

                alarmManager.SetRepeating(AlarmType.RtcWakeup, calendar.TimeInMillis, AlarmManager.IntervalDay, pendingIntent);
                myTextViewOutput.Text = "Repeating daily Alarm set. Begin at: " + calendar.Time.ToString();
            }
        }
 /// <summary>
 ///		Converts the <see cref="Java.Lang.Character"/> type object to <see cref="DateTime"/> type.
 /// </summary>
 /// <param name="time"><see cref="Java.Util.Calendar"/> type object</param>
 /// <returns><see cref="DateTime"/> type object equivalent to argment</returns>
 public static DateTime ConvertToDateTime(Java.Util.Calendar time) =>
 new DateTime(
     // Note : The range of Calender.Month is 0 (January) to 11 (December).
     time.Get(Java.Util.CalendarField.Year), time.Get(Java.Util.CalendarField.Month) + 1, time.Get(Java.Util.CalendarField.Date),
     time.Get(Java.Util.CalendarField.HourOfDay), time.Get(Java.Util.CalendarField.Minute), time.Get(Java.Util.CalendarField.Second),
     DateTimeKind.Local
     );
Exemplo n.º 3
0
            /// <summary>
            ///		<see cref="MyWatchFaceEngine"/>クラスの新しいインスタンスを生成します。
            /// </summary>
            /// <param name="owner"><see cref="CanvasWatchFaceService"/>クラスを継承したオブジェクトの参照</param>
            public MyWatchFaceEngine(CanvasWatchFaceService owner) : base(owner)
            {
                // CanvasWatchFaceServiceクラスを継承したオブジェクトの参照をセットします。
                this.owner = owner;
                // 時刻を更新した時の処理を構成します。
                updateTimeHandler = new Handler(
                    message =>
                {
//#if DEBUG
//						if( Log.IsLoggable( logTag, LogPriority.Info ) ) {
//							Log.Info( logTag, $"Updating timer: Message = {message.What}" );
//						}
//#endif

                    // Whatプロパティでメッセージを判別します。
                    switch (message.What)
                    {
                    case MessageUpdateTime:
                        // TODO : 時刻の更新のメッセージの時の処理を入れます。
                        // ウォッチフェイスを再描画します。
                        Invalidate();
                        // タイマーを動作させるかどうかを判別します。
                        if (ShouldTimerBeRunning)
                        {
                            /*
                             *                                          Javaでは、System.currentTimeMillisメソッドで世界協定時(ミリ秒)を取得します。
                             *                                          一方C#では、DateTime.UtcNow.Ticksプロパティで世界協定時(100ナノ秒)取得し、
                             *                                          TimeSpan.TicksPerMillisecondフィールドで割って、ミリ秒の値を求めます。
                             */
                            long timeMillseconds = DateTime.UtcNow.Ticks / TimeSpan.TicksPerMillisecond;
                            // delayMs = 更新間隔 - ( 現在時刻(ミリ秒) % 更新間隔) -> 更新間隔との差
                            long delayMilliseconds = InteractiveUpdateRateMilliseconds - (timeMillseconds % InteractiveUpdateRateMilliseconds);
                            // UpdateTimeHandlerにメッセージをセットします。
                            // SendEmptyMessageDelayedメソッドは指定した時間後にメッセージを発行します。
                            updateTimeHandler.SendEmptyMessageDelayed(MessageUpdateTime, delayMilliseconds);
                        }
                        break;
                    }
                }
                    );

                // TimeZoneReceiverのインスタンスを生成します。
                timeZoneReceiver = new ActionExecutableBroadcastReceiver(
                    intent =>
                {
                    // TODO : ブロードキャストされた Intent.ActionTimezoneChanged のIntentオブジェクトを受け取った時に実行する処理を入れます。
                    // IntentからタイムゾーンIDを取得して、Timeオブジェクトのタイムゾーンに設定し、現在時刻を取得します。
                    // intent.GetStringExtra( "time-zone" )の戻り値はタイムゾーンのIDです。
                    // Time ( Android )
                    //nowTime.Clear( intent.GetStringExtra( "time-zone" ) );
                    //nowTime.SetToNow();
                    // Calendar ( Java )
                    nowTime = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.GetTimeZone(intent.GetStringExtra("time-zone")));
                    // DateTime ( C# )
                    //nowTime = DateTime.Now;
                },
                    // Intentフィルターに「ActionTimezoneChanged」を指定します。
                    Intent.ActionTimezoneChanged
                    );
            }
Exemplo n.º 4
0
        void OneShotClick(object sender, EventArgs e)
        {
            // When the alarm goes off, we want to broadcast an Intent to our
            // BroadcastReceiver.  Here we make an Intent with an explicit class
            // name to have our own receiver (which has been published in
            // AndroidManifest.xml) instantiated and called, and then create an
            // IntentSender to have the intent executed as a broadcast.

            int timeHour = Convert.ToInt32(timeselector.Hour);
            int timeMinutes = Convert.ToInt32(timeselector.Minute);

            long q = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

            AlarmManager am = (AlarmManager)GetSystemService(AlarmService);
            Intent oneshotIntent = new Intent(this, typeof(OneShotAlarm));
            PendingIntent source = PendingIntent.GetBroadcast(this, 0, oneshotIntent, 0);

            vibro.Vibrate(500);


            Java.Util.Calendar calendar = Java.Util.Calendar.Instance;
            calendar.Set(CalendarField.HourOfDay, timeHour);
            calendar.Set(CalendarField.Minute, timeMinutes);
            am.Set(AlarmType.RtcWakeup, calendar.TimeInMillis, source);

            // Tell the user about what we did.
            if (repeating != null)
                repeating.Cancel();
            repeating = Toast.MakeText(this, Resource.String.one_shot_scheduled, ToastLength.Long);
            repeating.Show();


        }
Exemplo n.º 5
0
        static public void AddAlarmEvent(int seconds = 60)
        {
            DateTime alarmtime = DateTime.Now.AddSeconds(seconds);

            Intent alarmIntent = new Intent(Android.App.Application.Context, typeof(AlarmReceiver));

            PendingIntent pendingIntent = PendingIntent.GetBroadcast(Android.App.Application.Context, AlarmId++, alarmIntent, PendingIntentFlags.UpdateCurrent);
            AlarmManager  alarmManager  = (AlarmManager)Android.App.Application.Context.GetSystemService(Context.AlarmService);

            Java.Util.Calendar calendar = Java.Util.Calendar.Instance;
            calendar.TimeInMillis = Java.Lang.JavaSystem.CurrentTimeMillis();
            calendar.Set(alarmtime.Year, alarmtime.Month - 1, alarmtime.Day, alarmtime.Hour, alarmtime.Minute, alarmtime.Second);

            if (Build.VERSION.SdkInt < Android.OS.BuildVersionCodes.M)
            {
                if (Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Kitkat)
                {
                    //API 19 이상 API 23미만
                    alarmManager.SetExact(AlarmType.RtcWakeup, calendar.TimeInMillis, pendingIntent);
                }
                else
                {
                    //API 19미만
                    alarmManager.Set(AlarmType.RtcWakeup, calendar.TimeInMillis, pendingIntent);
                }
            }
            else
            {
                //API 23 이상
                alarmManager.SetExactAndAllowWhileIdle(AlarmType.RtcWakeup, calendar.TimeInMillis, pendingIntent);
            }
        }
            /// <summary>
            ///		Creates a new instance of <see cref="MyWatchFaceEngine"/> class.
            /// </summary>
            /// <param name="owner">Reference to a <see cref="CanvasWatchFaceService"/> object</param>
            public MyWatchFaceEngine(CanvasWatchFaceService owner) : base(owner)
            {
                // Sets a reference to an object that inherits CanvasWatchFaceService class.
                this.owner = owner;
                // Configures processing when updating time.
                updateTimeHandler = new Handler(
                    message => {
#if DEBUG
                    if (Log.IsLoggable(logTag, LogPriority.Info))
                    {
                        Log.Info(logTag, $"Updating timer: Message = {message.What}");
                    }
#endif

                    // Determines the message ID with the What property.
                    switch (message.What)
                    {
                    case MessageUpdateTime:
                        // TODO: Writes here, the processing at the time of the time update message.
                        // Redraws the watch face.
                        Invalidate();
                        // Determinea whether to activate the timer.
                        if (ShouldTimerBeRunning)
                        {
                            /*
                             *      In Java, gets Universal Time Coordinated (milli-seconds) by System.currentTimeMillis method.
                             *      Meanwhile, in C#, gets Universal Time Coordinated (100 nano-seconds) by DateTime.UtcNow.Ticks property,
                             *      and divides by TimeSpan.TicksPerMillisecond field to calculate the value in milliseconds.
                             */
                            long timeMillseconds = DateTime.UtcNow.Ticks / TimeSpan.TicksPerMillisecond;
                            // delayMilliseconds = [Update interval] - ([Current time( milliseconds )] % [Update interval] ) -> Difference from update interval
                            long delayMilliseconds = InteractiveUpdateRateMilliseconds - (timeMillseconds % InteractiveUpdateRateMilliseconds);
                            // Sets the message in UpdateTimeHandler.
                            updateTimeHandler.SendEmptyMessageDelayed(MessageUpdateTime, delayMilliseconds);
                        }
                        break;
                    }
                }
                    );

                // Creates an instance of ActionExecutableBroadcastReceiver.
                timeZoneReceiver = new ActionExecutableBroadcastReceiver(
                    intent => {
                    // TODO: Writes here, process to be executed when receiving Intent object of broadcasted with Intent.ActionTimezoneChanged.
                    // Gets the time zone ID from the Intent, set it as the time zone of the Time object, and get the current time.
                    // Time ( Android )
                    //nowTime.Clear( intent.GetStringExtra( "time-zone" ) );
                    //nowTime.SetToNow();
                    // Calendar ( Java )
                    nowTime = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.GetTimeZone(intent.GetStringExtra("time-zone")));
                    // DateTime ( C# )
                    //nowTime = DateTime.Now;
                },
                    // Specifies "android.intent.action.TIMEZONE_CHANGED" for the Intent filter.
                    Intent.ActionTimezoneChanged
                    );
            }
Exemplo n.º 7
0
        private long GetTimeDifferenceInMilliseconds(DateTime date)
        {
            Java.Util.Calendar calendar = Java.Util.Calendar.Instance;
            calendar.TimeInMillis = Java.Lang.JavaSystem.CurrentTimeMillis();

            calendar.Set(date.Year, date.Month - 1, date.Day, date.Hour, date.Minute, 0);

            return(calendar.TimeInMillis);
        }
Exemplo n.º 8
0
 public override bool Match(object @object)
 {
     NeoDatis.Odb.Test.VO.School.History s = (NeoDatis.Odb.Test.VO.School.History)@object;
     Java.Util.Calendar c = Java.Util.Calendar.GetInstance();
     c.Set(Java.Util.Calendar.Month, 6);
     c.Set(Java.Util.Calendar.Year, 2005);
     return(s.GetTeacher().GetName().Equals(name) && s.GetDate().Millisecond > (c.GetTime
                                                                                    ().Millisecond));
 }
            /// <summary>
            ///		Invoke when drawing a watch face.
            /// </summary>
            /// <param name="canvas"><see cref="Canvas"/> object for drawing on the watch face</param>
            /// <param name="bounds">Object storing the screen size</param>
            public override void OnDraw(Canvas canvas, Rect bounds)
            {
                // TODO: Writes here, process of acquiring the current time and drawing the watch face.
                // Gets current time.
                // Time ( Android )
                //nowTime.SetToNow();
                // Calendar ( Java )
                nowTime = Java.Util.Calendar.GetInstance(nowTime.TimeZone);
                // DateTime ( C# )
                //nowTime = DateTime.Now;

#if DEBUG
                if (Log.IsLoggable(logTag, LogPriority.Info))
                {
                    Log.Info(logTag, $"{nameof( OnDraw )}: Now time = {WatchfaceUtility.ConvertToDateTime( nowTime ):yyyy/MM/dd HH:mm:ss K}");
                }
#endif

                // Draws the background.
                // Determines whether in ambient mode.
                if (IsInAmbientMode)
                {
                    // In ambient mode, fills with black color.
                    canvas.DrawColor(Color.Black);
                }
                else
                {
                    // Otherwise, draws the background graphics.
                    canvas.DrawRect(0, 0, canvas.Width, canvas.Height, backgroundPaint);
                }

                // Calculates the center XY coordinates.
                float centerX = bounds.Width() / 2.0f;
                float centerY = bounds.Height() / 2.0f;

                // Calculates the length of the hands.
                secondHand.Length = centerX - 20;
                minuteHand.Length = centerX - 40;
                hourHand.Length   = centerX - 80;

                // Draws the hour hand.
                hourHand.SetTime(nowTime);
                canvas.DrawLine(centerX, centerY, centerX + hourHand.X, centerY + hourHand.Y, hourHand.Paint);

                // Draws the minute hand.
                minuteHand.SetTime(nowTime);
                canvas.DrawLine(centerX, centerY, centerX + minuteHand.X, centerY + minuteHand.Y, minuteHand.Paint);

                // Determines whether in ambient mode.
                if (!IsInAmbientMode)
                {
                    // In ambient mode, draws the second hand.
                    secondHand.SetTime(nowTime);
                    canvas.DrawLine(centerX, centerY, centerX + secondHand.X, centerY + secondHand.Y, secondHand.Paint);
                }
            }
Exemplo n.º 10
0
            /// <summary>
            ///		ウォッチフェイスの描画時に実行されます。
            /// </summary>
            /// <param name="canvas">ウォッチフェイスに描画するためのキャンバスオブジェクト</param>
            /// <param name="bounds">画面のサイズを格納するオブジェクト</param>
            public override void OnDraw(Canvas canvas, Rect bounds)
            {
                // TODO : 現在時刻を取得し、ウォッチフェイスを描画する処理を入れます。
                // 現在時刻にセットします。
                // Time ( Android )
                //nowTime.SetToNow();
                // Calendar ( Java )
                nowTime = Java.Util.Calendar.GetInstance(nowTime.TimeZone);
                // DateTime ( C# )
                //nowTime = DateTime.Now;

#if DEBUG
                if (Log.IsLoggable(logTag, LogPriority.Info))
                {
                    Log.Info(logTag, $"{nameof( OnDraw )}: Now time = {WatchfaceUtility.ConvertToDateTime( nowTime ):yyyy/MM/dd HH:mm:ss K}");
                }
#endif

                // 背景を描画します。
                // アンビエントモードであるかどうか判別します。
                if (IsInAmbientMode)
                {
                    // アンビエントモードの時は、黒色で塗りつぶします。
                    canvas.DrawColor(Color.Black);
                }
                else
                {
                    // そうでない時は、背景画像を描画します。
                    canvas.DrawRect(0, 0, canvas.Width, canvas.Height, backgroundPaint);
                }

                // 中心のXY座標を求めます。
                float centerX = bounds.Width() / 2.0f;
                float centerY = bounds.Height() / 2.0f;

                // 針の長さを求めます。
                secondHand.Length = centerX - 20;
                minuteHand.Length = centerX - 40;
                hourHand.Length   = centerX - 80;

                // 時針を描画します。
                hourHand.SetTime(nowTime);
                canvas.DrawLine(centerX, centerY, centerX + hourHand.X, centerY + hourHand.Y, hourHand.Paint);

                // 分針を描画します。
                minuteHand.SetTime(nowTime);
                canvas.DrawLine(centerX, centerY, centerX + minuteHand.X, centerY + minuteHand.Y, minuteHand.Paint);

                // アンビエントモードでないかどうかを判別します。
                if (!IsInAmbientMode)
                {
                    // 分針を描画します。
                    secondHand.SetTime(nowTime);
                    canvas.DrawLine(centerX, centerY, centerX + secondHand.X, centerY + secondHand.Y, secondHand.Paint);
                }
            }
        public static long GenerateNotifcationTimeStamp(DateTime startDate)
        {
            var schedule = startDate;

            Java.Util.Calendar calendar = Java.Util.Calendar.Instance;
            calendar.Set(Java.Util.CalendarField.HourOfDay, schedule.Hour);
            calendar.Set(Java.Util.CalendarField.Minute, schedule.Minute);
            calendar.Set(Java.Util.CalendarField.Second, 00);
            return(calendar.TimeInMillis);
        }
Exemplo n.º 12
0
        public override Dialog OnCreateDialog(Bundle savedInstanceState)
        {
            Java.Util.Calendar c          = Java.Util.Calendar.Instance;
            int              hour         = c.Get(Java.Util.CalendarField.HourOfDay);
            int              minute       = c.Get(Java.Util.CalendarField.Minute);
            bool             is24HourView = true;
            TimePickerDialog dialog       = new TimePickerDialog(Activity,
                                                                 this,
                                                                 hour,
                                                                 minute,
                                                                 is24HourView);

            return(dialog);
        }
Exemplo n.º 13
0
 public override Dialog OnCreateDialog(Bundle savedInstanceState)
 {
     base.OnCreateDialog(savedInstanceState);
     calendar_            = Java.Util.Calendar.Instance;
     datePicker_          = new DatePickerDialog(context_);
     datePicker_.DateSet += (sender, e) => {
         var str = e.Date.ToLocalTime().ToString("YYYY-MM-DD HH:mm:ss");
         onDataSelectChanged(e);
     };
     calendar_.Get(Java.Util.CalendarField.Year);
     calendar_.Get(Java.Util.CalendarField.Month);
     calendar_.Get(Java.Util.CalendarField.DayOfMonth);
     return(datePicker_);
 }
Exemplo n.º 14
0
        public void Remind(DateTime dateTime, int ID, Intent alarmIntent)
        {
            PendingIntent pendingIntent = PendingIntent.GetBroadcast(Forms.Context, ID, alarmIntent, PendingIntentFlags.UpdateCurrent);
            AlarmManager  alarmManager  = (AlarmManager)Forms.Context.GetSystemService(Context.AlarmService);

            Java.Util.Calendar cal = Java.Util.Calendar.Instance;
            cal.Set(Java.Util.CalendarField.Month, dateTime.Month);
            cal.Set(Java.Util.CalendarField.DayOfMonth, dateTime.Day);
            cal.Set(Java.Util.CalendarField.HourOfDay, dateTime.Hour);
            cal.Set(Java.Util.CalendarField.Minute, dateTime.Minute);
            cal.Set(Java.Util.CalendarField.Second, dateTime.Second);

            alarmManager.Set(AlarmType.RtcWakeup, cal.TimeInMillis, pendingIntent);
        }
Exemplo n.º 15
0
        public void SetAlarm(Context context, int hh, int mm)
        {
            Intent        intent = new Intent(context, this.Class);
            PendingIntent pi     = PendingIntent.GetBroadcast(context, 0, intent, 0);

            Java.Util.Calendar calendar = Java.Util.Calendar.Instance;
            calendar.Set(Java.Util.CalendarField.HourOfDay, hh);
            calendar.Set(Java.Util.CalendarField.Minute, mm);
            calendar.Set(Java.Util.CalendarField.Second, 0);

            AlarmManager am = (AlarmManager)context.GetSystemService(Context.AlarmService);

            am.SetRepeating(AlarmType.RtcWakeup, calendar.TimeInMillis, AlarmManager.IntervalDay, pi);
        }
Exemplo n.º 16
0
        private void CalendarDaySlotLoading(object sender, CalendarDaySlotLoadingEventArgs e)
        {
            var currentDateTime = FromUnixTime(e.Date.Time).ToLocalTime();

            Java.Util.Date     date = e.Date;
            Java.Util.Calendar cal  = Java.Util.Calendar.GetInstance(Java.Util.Locale.English);
            cal.Time = date;
            int day = cal.Get(Java.Util.CalendarField.DayOfMonth);

            CalendarDaySlotBase layout = new CalendarDaySlotBase(ApplicationContext);

            layout.SetGravity(GravityFlags.Center);
            layout.SetVerticalGravity(GravityFlags.Center);
            layout.Orientation = Orientation.Vertical;
            layout.SetPadding(5, 5, 5, 5);
            LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);
            layout.LayoutParameters = linearLayoutParams;

            TextView tv = new TextView(ApplicationContext);

            tv.Gravity = GravityFlags.Center;
            tv.Text    = day.ToString();

            if (currentDateTime.Date == DateTime.Now.Date)
            {
                tv.SetTextColor(Android.Graphics.Color.Red);
            }

            if (e.AdjacentDay)
            {
                tv.SetTextColor(Android.Graphics.Color.DarkGray);
            }

            layout.AddView(tv);

            if (_events != null && _events.Count != 0)
            {
                for (int i = 0; i < _events.Count; i++)
                {
                    var startDate = _events[i].StartDateTime();
                    if (startDate.Date == currentDateTime.Date)
                    {
                        tv.SetBackgroundColor(GROUP_COLOR);
                    }
                }
            }

            e.DaySlot = layout;
        }
Exemplo n.º 17
0
            /// <summary>
            ///		ウォッチフェイスの表示・非表示が切り替わった時に実行します。
            /// </summary>
            /// <param name="visible">ウォッチフェイスの表示・非表示</param>
            public override void OnVisibilityChanged(bool visible)
            {
                // ベースクラスのOnVisibilityChangedメソッドを実行します。
                base.OnVisibilityChanged(visible);

#if DEBUG
                if (Log.IsLoggable(logTag, LogPriority.Info))
                {
                    Log.Info(logTag, $"{nameof( OnVisibilityChanged )}: Visible = {visible}");
                }
#endif

                // ウォッチフェイスの表示・非表示を判別します。
                if (visible)
                {
                    if (timeZoneReceiver == null)
                    {
                        timeZoneReceiver = new ActionExecutableBroadcastReceiver(
                            intent => {
                            // Time ( Android )
                            //nowTime.Clear( intent.GetStringExtra( "time-zone" ) );
                            //nowTime.SetToNow();
                            // Calendar ( Java )
                            nowTime = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.GetTimeZone(intent.GetStringExtra("time-zone")));
                            // DateTime ( C# )
                            //nowTime = DateTime.Now;
                        },
                            Intent.ActionTimezoneChanged
                            );
                    }
                    // タイムゾーン用のレシーバーを登録します。
                    timeZoneReceiver.IsRegistered = true;
                    // ウォッチフェイスが非表示の時にタイムゾーンが変化した場合のために、タイムゾーンを更新します。
                    // Time ( Android )
                    //nowTime.Clear( Java.Util.TimeZone.Default.ID );
                    //nowTime.SetToNow();
                    // Calendar ( Java )
                    nowTime = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.Default);
                    // DateTime ( C# )
                    //nowTime = DateTime.Now;
                }
                else
                {
                    // タイムゾーン用のレシーバーを登録解除します。
                    timeZoneReceiver.IsRegistered = false;
                }
                // タイマーの動作を更新します。
                UpdateTimer();
            }
            /// <summary>
            ///		Invoked when the watch face is switched between display / non-display.
            /// </summary>
            /// <param name="visible">Display / non-display of watch face</param>
            public override void OnVisibilityChanged(bool visible)
            {
                base.OnVisibilityChanged(visible);

#if DEBUG
                if (Log.IsLoggable(logTag, LogPriority.Info))
                {
                    Log.Info(logTag, $"{nameof( OnVisibilityChanged )}: Visible = {visible}");
                }
#endif

                // Determines whether the watch face is displayed or not.
                if (visible)
                {
                    if (timeZoneReceiver == null)
                    {
                        timeZoneReceiver = new ActionExecutableBroadcastReceiver(
                            intent => {
                            // Time ( Android )
                            //nowTime.Clear( intent.GetStringExtra( "time-zone" ) );
                            //nowTime.SetToNow();
                            // Calendar ( Java )
                            nowTime = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.GetTimeZone(intent.GetStringExtra("time-zone")));
                            // DateTime ( C# )
                            //nowTime = DateTime.Now;
                        },
                            Intent.ActionTimezoneChanged
                            );
                    }
                    // Register the BroadcastReciever for the time zone.
                    timeZoneReceiver.IsRegistered = true;
                    // Updates time in case the time zone changes when the watch face is hidden.
                    // Time ( Android )
                    //nowTime.Clear( Java.Util.TimeZone.Default.ID );
                    //nowTime.SetToNow();
                    // Calendar ( Java )
                    nowTime = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.Default);
                    // DateTime ( C# )
                    //nowTime = DateTime.Now;
                }
                else
                {
                    // Unregister the BroadcastReciever for the time zone.
                    timeZoneReceiver.IsRegistered = false;
                }

                UpdateTimer();
            }
Exemplo n.º 19
0
        public static DateTime DateTimeFromJava(Java.Util.Calendar d)
        {
            return(new DateTime(
                       d.Get(Java.Util.CalendarField.Year),
                       d.Get(Java.Util.CalendarField.Month) + 1,
                       d.Get(Java.Util.CalendarField.DayOfMonth),
                       d.Get(Java.Util.CalendarField.HourOfDay),
                       d.Get(Java.Util.CalendarField.Minute),
                       d.Get(Java.Util.CalendarField.Second),
                       d.Get(Java.Util.CalendarField.Millisecond),
                       DateTimeKind.Utc));

            var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

            return(epoch.AddMilliseconds(d.Time.Time));
        }
Exemplo n.º 20
0
 private HorizontalCalendarClass BuildHorizontalCalendarClass(Java.Util.Calendar start, Java.Util.Calendar end, Java.Util.Calendar @default)
 {
     return(new HorizontalCalendarClass.Builder(this, Resource.Id.calendarView)
            .Range(start, end)
            .DatesNumberOnScreen(5)
            .Configure()
            .FormatTopText("MMM")
            .FormatMiddleText("dd")
            .FormatBottomText("EEE")
            .ShowTopText(true)
            .ShowBottomText(true)
            .TextColor(Color.LightGray, Color.White)
            .ColorTextMiddle(Color.LightGray, Color.ParseColor("#FF4081"))
            .End()
            .DefaultSelectedDate(@default)
            .Build());
 }
Exemplo n.º 21
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            try
            {
                if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
                {
                    Xamarin.Essentials.Platform.Init(this, savedInstanceState);
                    RequestPermissions(Permission, requestID);
                }
            }
            catch { }

            // KẾT NỐI GIỮA TẦNG SPECIFIC VỚI PLC ĐỂ GỌI SPECIFIC Ở PLC
            ContactsAdapterManager.Current        = new ContactsAdapter(this, Application);
            ContactService_AndroidManager.Current = new ContactService_Android(this, Application);
            ToastManager.Current = new ToastDependency(this);
            base.OnCreate(savedInstanceState);
            Rg.Plugins.Popup.Popup.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);



            LoadApplication(new App());

            // LẤY PERMISSION KHI KHỞI ĐỘNG APPS

            long repeatEveryday = (60 * 1000) * 60 * 24; // => run at 2:00 AM every day

            Intent intentAlarm = new Intent(this, typeof(MyReceiver));

            // create the object
            AlarmManager alarmManager = (AlarmManager)GetSystemService(Context.AlarmService);

            // define hours to starts => after 6 PM
            Java.Util.Calendar calendarStart = Java.Util.Calendar.GetInstance(Java.Util.TimeZone.Default);
            calendarStart.Set(Java.Util.CalendarField.HourOfDay, 02);
            calendarStart.Set(Java.Util.CalendarField.Minute, 00);
            calendarStart.Set(Java.Util.CalendarField.Second, 00);

            //
            alarmManager.SetInexactRepeating(AlarmType.RtcWakeup, calendarStart.TimeInMillis, repeatEveryday, PendingIntent.GetBroadcast(this, 1, intentAlarm, PendingIntentFlags.UpdateCurrent));
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.Remedio);

            Button btnSalvar = FindViewById <Button>(Resource.Id.remedio_btn_salvar);

            btnSalvar.Click += delegate
            {
                Java.Util.Calendar calendar = Java.Util.Calendar.GetInstance(Java.Util.Locale.Default);
                string             data     = calendar.Time.Day + "/" + calendar.Time.Month + "/" + calendar.Time.Year + " " + calendar.Time.Hours + ":" + calendar.Time.Minutes;
                Remedio            remedio  = new Remedio(0, data);

                DataBase db = new DataBase();
                db.CriarDatabase("remedio");
                AlertDialog.Builder alert = new AlertDialog.Builder(this);

                if (db.AddRegistro(remedio))
                {
                    alert.SetTitle("Sucessful Registered!1");
                    alert.SetPositiveButton("Yes", (senderAlert, args) =>
                    {
                        StartActivity(typeof(RemediosTomadosActivity));
                        Finish();
                    });
                    RunOnUiThread(() =>
                    {
                        alert.Show();
                    });
                }
                else
                {
                    alert.SetTitle("Problem!!1");
                    alert.SetPositiveButton("Yes", (senderAlert, args) =>
                    {
                    });
                    RunOnUiThread(() =>
                    {
                        alert.Show();
                    });
                }
            };
        }
        public void SetAlarm(int hour, int minute, string title, string message)
        {
            Intent myintent = new Intent(Android.App.Application.Context, typeof(AlarmReceiver));

            myintent.PutExtra("message", message);
            myintent.PutExtra("title", title);
            PendingIntent pendingintent = PendingIntent.GetBroadcast(Android.App.Application.Context, 0, myintent, PendingIntentFlags.UpdateCurrent);

            Java.Util.Date     date = new Java.Util.Date();
            Java.Util.Calendar cal  = Java.Util.Calendar.Instance;
            cal.TimeInMillis = Java.Lang.JavaSystem.CurrentTimeMillis();
            cal.Set(Java.Util.CalendarField.HourOfDay, hour);
            cal.Set(Java.Util.CalendarField.Minute, minute);
            cal.Set(Java.Util.CalendarField.Second, 0);

            AlarmManager alarmManager = Android.App.Application.Context.GetSystemService(Android.Content.Context.AlarmService) as AlarmManager;

            alarmManager.Set(AlarmType.RtcWakeup, cal.TimeInMillis, pendingintent);
        }
Exemplo n.º 24
0
        public void Remind(string title, string message, DateTime dateTime, string type)
        {
            Intent alarmIntent = new Intent(Forms.Context, typeof(AlarmReceiver));

            alarmIntent.PutExtra("message", message);
            alarmIntent.PutExtra("title", title);

            PendingIntent pendingIntent = PendingIntent.GetBroadcast(Forms.Context, ++counter, alarmIntent, PendingIntentFlags.UpdateCurrent);
            AlarmManager  alarmManager  = (AlarmManager)Forms.Context.GetSystemService(Context.AlarmService);

            var millis     = Convert.ToInt64((DateTime.Now - DateTime.Today.Date).TotalMilliseconds);
            var sampleTime = ManilaTime; //ManilaDay.AddHours(16).AddMinutes(50);

            var triggerOpen  = Convert.ToInt64((MarketOpen - ManilaDay.Date).TotalMilliseconds);
            var triggerClose = Convert.ToInt64((MarketClose - ManilaDay).TotalMilliseconds);

            var intervalDay = AlarmManager.IntervalDay;

            Java.Util.Calendar calendar = Java.Util.Calendar.Instance;

            if (type == "Open")
            {
                calendar.Set(
                    Java.Util.CalendarField.HourOfDay, MarketOpen.Hour);
                calendar.Set(
                    Java.Util.CalendarField.Minute, MarketOpen.Minute);
                alarmManager.SetInexactRepeating(
                    AlarmType.RtcWakeup, calendar.TimeInMillis, intervalDay, pendingIntent);
            }
            else if (type == "Close")
            {
                calendar.Set(
                    Java.Util.CalendarField.HourOfDay, MarketClose.Hour);
                calendar.Set(
                    Java.Util.CalendarField.Minute, MarketClose.Minute);
                alarmManager.SetInexactRepeating(
                    AlarmType.RtcWakeup, calendar.TimeInMillis, intervalDay, pendingIntent);
            }
        }
Exemplo n.º 25
0
        public static void CheckAlarm(Context context)
        {
            var savedSettings     = Application.Context.GetSharedPreferences("SavedSettings", FileCreationMode.Private);
            var savedSettingsEdit = savedSettings.Edit();
            int hour   = savedSettings.GetInt("hour", 20);
            int minute = savedSettings.GetInt("minute", 30);

            bool alarmUp = (PendingIntent.GetBroadcast(context, 0,
                                                       new Intent(context, typeof(AlarmNotificationReceiver)),
                                                       PendingIntentFlags.NoCreate) != null);
            bool alarmNeedsUpdate = savedSettings.GetBoolean("alarmNeedsUpdate", false);

            AlarmManager  manager = (AlarmManager)context.ApplicationContext.GetSystemService(Context.AlarmService);
            Intent        myIntent;
            PendingIntent pendingIntent;

            myIntent      = new Intent(context, typeof(AlarmNotificationReceiver));
            pendingIntent = PendingIntent.GetBroadcast(context, 0, myIntent, 0);
            if (!alarmUp)
            {
                Java.Util.Calendar calendar = Java.Util.Calendar.Instance;
                calendar.Set(Java.Util.CalendarField.HourOfDay, hour);
                calendar.Set(Java.Util.CalendarField.Minute, minute);
                manager.SetRepeating(AlarmType.RtcWakeup, calendar.TimeInMillis, AlarmManager.IntervalDay, pendingIntent);
            }
            if (alarmNeedsUpdate)
            {
                manager.Cancel(pendingIntent);
                myIntent      = new Intent(context, typeof(AlarmNotificationReceiver));
                pendingIntent = PendingIntent.GetBroadcast(context, 0, myIntent, 0);
                Java.Util.Calendar calendar = Java.Util.Calendar.Instance;
                calendar.Set(Java.Util.CalendarField.HourOfDay, hour);
                calendar.Set(Java.Util.CalendarField.Minute, minute);
                manager.SetRepeating(AlarmType.RtcWakeup, calendar.TimeInMillis, AlarmManager.IntervalDay, pendingIntent);
                savedSettingsEdit.PutBoolean("alarmNeedsUpdate", false);
                savedSettingsEdit.Commit();
            }
        }
            /// <summary>
            ///		Invoke when drawing a watch face.
            /// </summary>
            /// <param name="canvas"><see cref="Canvas"/> object for drawing on the watch face</param>
            /// <param name="bounds">Object storing the screen size</param>
            public override void OnDraw(Canvas canvas, Rect bounds)
            {
                // TODO: Writes here, process of acquiring the current time and drawing the watch face.
                // Gets current time.
                // Time ( Android )
                //nowTime.SetToNow();
                // Calendar ( Java )
                nowTime = Java.Util.Calendar.GetInstance(nowTime.TimeZone);
                // DateTime ( C# )
                //nowTime = DateTime.Now;

#if DEBUG
                if (Log.IsLoggable(logTag, LogPriority.Info))
                {
                    Log.Info(logTag, $"{nameof( OnDraw )}: Now time = {WatchfaceUtility.ConvertToDateTime( nowTime ):yyyy/MM/dd HH:mm:ss K}");
                }
#endif

                // Draws the background.
                // Determines whether in ambient mode.
                if (IsInAmbientMode)
                {
                    // In ambient mode, fills with black color.
                    canvas.DrawColor(Color.Black);
                }
                else
                {
                    // Otherwise, draws the background graphics.
                    canvas.DrawRect(0, 0, canvas.Width, canvas.Height, backgroundPaint);
                }

                // Draws the text of the current time.
                canvas.DrawText(
                    WatchfaceUtility.ConvertToDateTime(nowTime).ToString(isAmbient ? "HH:mm" : "HH:mm:ss"),
                    digitalTimeText.XOffset, digitalTimeText.YOffset, digitalTimeText.Paint
                    );
            }
Exemplo n.º 27
0
        public void CreaNotifica(Posizione posizione, DateTime dateTime)
        {
            if (!channelInitialized)
            {
                CreateNotificationChannel();
            }

            Intent intent = new Intent(AndroidApp.Context, typeof(NotificationReceiver));

            intent.PutExtra(TitleKey, CostantiDominio.TITOLO_NOTIFICA);
            intent.PutExtra(MessageKey, CostantiDominio.MESSAGGIO_NOTIFICA);
            intent.PutExtra(IdNotifica, posizione.Id);

            PendingIntent pendingIntent = PendingIntent.GetBroadcast(AndroidApp.Context, pendingIntentId, intent, PendingIntentFlags.OneShot);

            Java.Util.Calendar calendar = Java.Util.Calendar.Instance;
            calendar.Set(Java.Util.CalendarField.HourOfDay, dateTime.Hour);
            calendar.Set(Java.Util.CalendarField.Minute, dateTime.Minute);
            calendar.Set(Java.Util.CalendarField.Second, 0);

            AlarmManager alarmManager = AndroidApp.Context.GetSystemService(Context.AlarmService) as AlarmManager;

            alarmManager.Set(AlarmType.RtcWakeup, calendar.TimeInMillis, pendingIntent);
        }
            /// <summary>
            ///		ウォッチフェイスの描画時に実行されます。
            /// </summary>
            /// <param name="canvas">ウォッチフェイスに描画するためのキャンバスオブジェクト</param>
            /// <param name="bounds">画面のサイズを格納するオブジェクト</param>
            public override void OnDraw(Canvas canvas, Rect bounds)
            {
                // TODO : 現在時刻を取得し、ウォッチフェイスを描画する処理を入れます。
                // 現在時刻にセットします。
                // Time ( Android )
                //nowTime.SetToNow();
                // Calendar ( Java )
                nowTime = Java.Util.Calendar.GetInstance(nowTime.TimeZone);
                // DateTime ( C# )
                //nowTime = DateTime.Now;

#if DEBUG
                if (Log.IsLoggable(logTag, LogPriority.Info))
                {
                    Log.Info(logTag, $"{nameof( OnDraw )}: Now time = {WatchfaceUtility.ConvertToDateTime( nowTime ):yyyy/MM/dd HH:mm:ss K}");
                }
#endif

                // 背景を描画します。
                // アンビエントモードであるかどうか判別します。
                if (IsInAmbientMode)
                {
                    // アンビエントモードの時は、黒色で塗りつぶします。
                    canvas.DrawColor(Color.Black);
                }
                else
                {
                    // そうでない時は、背景画像を描画します。
                    canvas.DrawRect(0, 0, canvas.Width, canvas.Height, backgroundPaint);
                }

                canvas.DrawText(
                    WatchfaceUtility.ConvertToDateTime(nowTime).ToString(isAmbient ? "HH:mm" : "HH:mm:ss"),
                    digitalTimeText.XOffset, digitalTimeText.YOffset, digitalTimeText.Paint
                    );
            }
Exemplo n.º 29
0
        public void SetAlarm(int hour, int minute, string title, string message, int mode)
        {
            Intent myintent;

            if (mode == 1)
            {
                myintent = new Intent(Android.App.Application.Context, typeof(NotificationAlarmReceiver));
            }
            else
            {
                myintent = new Intent(Android.App.Application.Context, typeof(AlarmReceiver));
            }

            myintent.PutExtra("message", message);
            myintent.PutExtra("title", title);
            int _id = DateTime.Now.Millisecond;

            TimeSpan ts     = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc));
            long     millis = (long)ts.TotalMilliseconds;
            int      i      = (int)millis;

            PendingIntent pendingintent = PendingIntent.GetBroadcast(Android.App.Application.Context, i, myintent, PendingIntentFlags.OneShot);

            Java.Util.Date     date = new Java.Util.Date();
            Java.Util.Calendar cal  = Java.Util.Calendar.Instance;
            cal.TimeInMillis = Java.Lang.JavaSystem.CurrentTimeMillis();
            cal.Set(Java.Util.CalendarField.HourOfDay, hour);
            cal.Set(Java.Util.CalendarField.Minute, minute);
            cal.Set(Java.Util.CalendarField.Second, 0);

            AlarmManager alarmManager = Android.App.Application.Context.GetSystemService(Android.Content.Context.AlarmService) as AlarmManager;

            alarmManager.Set(AlarmType.RtcWakeup, cal.TimeInMillis, pendingintent);

            Toast.MakeText(Android.App.Application.Context, "Alarm Created!", ToastLength.Long).Show();
        }
Exemplo n.º 30
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.NuevoCaballo);
            new ShareInside().CopyDocuments("RazasGender.sqlite", "RazasGender.db");
            var txtHorseName = FindViewById <EditText>(Resource.Id.txtHorseName);

            Foto        = FindViewById <Refractored.Controls.CircleImageView>(Resource.Id.btnFoto);
            Foto.Click += delegate {
                var intent = new Intent(MediaStore.ActionImageCapture);
                intent.PutExtra(MediaStore.ExtraOutput, RutaArchivo);
                StartActivityForResult(intent, 1, savedInstanceState);
            };
            var txtBirthDay = FindViewById <TextView>(Resource.Id.txtBirthDay);

            txtBirthDay.Click += delegate {
                Java.Util.Calendar calendar = Java.Util.Calendar.Instance;
                int year         = calendar.Get(Java.Util.CalendarField.Year);
                int month        = calendar.Get(Java.Util.CalendarField.Month);
                int day_of_month = calendar.Get(Java.Util.CalendarField.DayOfMonth);
                DatePickerDialog dialog;

                dialog = new DatePickerDialog(this, Resource.Style.ThemeOverlay_AppCompat_Dialog_Alert,
                                              onDateSetListener, year, month, day_of_month);
                dialog.Show();
            };
            onDateSetListener = new PickerDate(txtBirthDay);
            var txtGender = FindViewById <TextView>(Resource.Id.txtGender);

            txtGender.Click += delegate {
                Dialog alertar = new Dialog(this, Resource.Style.Theme_Dialog_Translucent);
                alertar.RequestWindowFeature(1);
                alertar.SetCancelable(true);
                alertar.SetContentView(Resource.Layout.DialogoGender);
                List <string> consulta = new List <string>()
                {
                    GetText(Resource.String.Filly), GetText(Resource.String.Gelding), GetText(Resource.String.Mare), GetText(Resource.String.Stallion)
                };
                textListView         = alertar.FindViewById <ListView>(Resource.Id.Listagender);
                textListView.Adapter = new AdaptadorGender(this, consulta, alertar, txtGender);
                alertar.Show();
            };
            var txtBreed = FindViewById <TextView>(Resource.Id.txtBreed);

            txtBreed.Click += delegate {
                Dialog alertar = new Dialog(this, Resource.Style.Theme_Dialog_Translucent);
                alertar.RequestWindowFeature(1);
                alertar.SetCancelable(true);
                alertar.SetContentView(Resource.Layout.DialogoRazas);
                var con      = new SQLiteConnection(System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "RazasGender.sqlite"));
                var consulta = con.Query <Modelos.Razas>("select * from Razas", new Modelos.Razas().id_raza);
                textListView         = alertar.FindViewById <ListView>(Resource.Id.ListaRazas);
                textListView.Adapter = new AdaptadorRazas(this, consulta, alertar, txtBreed);
                buscar              = alertar.FindViewById <EditText>(Resource.Id.buscar);
                buscar.TextChanged += (object sender, TextChangedEventArgs e) =>
                {
                    var consulta2 = con.Query <Modelos.Razas>("select * from Razas where  raza like  '" + buscar.Text + "%'", new Modelos.Razas().id_raza);
                    textListView.Adapter = new AdaptadorRazas(this, consulta2, alertar, txtBreed);
                };
                alertar.Show();
            };
            var txtHeigth = FindViewById <EditText>(Resource.Id.txtHeigthHorse);
            var txtWeigth = FindViewById <EditText>(Resource.Id.txtWeigthHorse);
            var txtOat    = FindViewById <EditText>(Resource.Id.txtOatHorse);
            var btnAtras  = FindViewById <ImageView>(Resource.Id.btnAtras);

            btnAtras.Click += delegate {
            };
            var btnGuardar = FindViewById <ImageView>(Resource.Id.btnGuardar);

            btnGuardar.Click += delegate {
                //if ( == "")
                //{

                //}
            };
        }