/// <summary>
        /// Display a popup to pick up a mode
        /// </summary>
        private void DisplayModeSelection()
        {
            Dialog modeDialog  = null;
            var    modeBuilder = new Android.Support.V7.App.AlertDialog.Builder(this, Resource.Style.Theme_AppCompat_Light_Dialog);
            var    inflater    = (LayoutInflater)this.GetSystemService(LayoutInflaterService);
            var    view        = inflater.Inflate(Resource.Drawable.PopupModeDefinitionChoice, null);

            // Close button
            modeBuilder.SetNegativeButton(Resource.String.detailSeekios_deletePopupButtonClose, (senderAlert, args) =>
            {
                modeDialog.Dismiss();
            });

            // Select Tracking mode
            ModeTracking        = view.FindViewById <LinearLayout>(Resource.Id.modeDefinition_tracking);
            ModeTracking.Click += (s, arg) =>
            {
                modeDialog.Dismiss();
                SelectMode(3);
            };

            // Select Don't Move mode
            ModeDontMove        = view.FindViewById <LinearLayout>(Resource.Id.modeDefinition_dontMove);
            ModeDontMove.Click += (s, arg) =>
            {
                modeDialog.Dismiss();
                SelectMode(4);
            };

            // Select Zone mode
            ModeZone        = view.FindViewById <LinearLayout>(Resource.Id.modeDefinition_zone);
            ModeZone.Click += (s, arg) =>
            {
                modeDialog.Dismiss();
                SelectMode(5);
            };

            // Select no mode
            DeleteModeLayout = view.FindViewById <LinearLayout>(Resource.Id.modeDefinition_deleteModeLayout);
            var mode = App.CurrentUserEnvironment.LsMode.Where(el => el.Seekios_idseekios == _seekiosSelected.Idseekios).FirstOrDefault();

            if (mode == null)
            {
                DeleteModeLayout.Visibility = ViewStates.Gone;
            }
            // One mode is activated, so we have the choice to delete it
            else
            {
                DeleteTextView          = view.FindViewById <TextView>(Resource.Id.modeDefinition_deleteText);
                DeleteTextView.Text     = string.Format(Resources.GetString(Resource.String.modeDefinition_delete), GetModeName(mode.ModeDefinition_idmodeDefinition));
                DeleteModeLayout.Click += async(s, arg) =>
                {
                    modeDialog.Dismiss();
                    App.Locator.ModeSelection.SeekiosUpdated = _seekiosSelected;
                    if (await App.Locator.ModeSelection.DeleteMode(mode))
                    {
                        _seekiosSelected.HasGetLastInstruction = false;
                        SetDataToView();
                    }
                };

                var typeValue = new TypedValue();
                Theme.ResolveAttribute(Resource.Attribute.layoutBackgroundSecondly, typeValue, true);
                var backgroundSecondaryColor = Resources.GetColor(typeValue.ResourceId);
                Theme.ResolveAttribute(Resource.Attribute.colorFirst, typeValue, true);
                var textPrimaryColor = Resources.GetColor(typeValue.ResourceId);

                if (mode.ModeDefinition_idmodeDefinition == (int)ModeDefinitionEnum.ModeTracking)
                {
                    ModeTracking.SetBackgroundColor(backgroundSecondaryColor);
                    view.FindViewById <TextView>(Resource.Id.modeDefinition_trackingTitle).SetTextColor(textPrimaryColor);
                    view.FindViewById <SvgImageView>(Resource.Id.modeDefinition_trackingImg).SetSvg(this, Resource.Drawable.ModeTracking, "62da73");
                }
                else if (mode.ModeDefinition_idmodeDefinition == (int)ModeDefinitionEnum.ModeDontMove)
                {
                    ModeDontMove.SetBackgroundColor(backgroundSecondaryColor);
                    view.FindViewById <TextView>(Resource.Id.modeDefinition_dontMoveTitle).SetTextColor(textPrimaryColor);
                    view.FindViewById <SvgImageView>(Resource.Id.modeDefinition_dontMoveImg).SetSvg(this, Resource.Drawable.ModeDontMove, "62da73");
                }
                else if (mode.ModeDefinition_idmodeDefinition == (int)ModeDefinitionEnum.ModeZone)
                {
                    ModeZone.SetBackgroundColor(backgroundSecondaryColor);
                    view.FindViewById <TextView>(Resource.Id.modeDefinition_zoneTitle).SetTextColor(textPrimaryColor);
                    view.FindViewById <SvgImageView>(Resource.Id.modeDefinition_zoneImg).SetSvg(this, Resource.Drawable.ModeZone, "62da73");
                }
            }

            modeBuilder.SetView(view);
            modeDialog = modeBuilder.Create();
            modeDialog.Show();
        }
示例#2
0
        /// <summary>
        /// Popup des modes disponibles pour un Seekios
        /// </summary>
        private void DisplayModeSelection()
        {
            Dialog listSeekiosDialog  = null;
            var    listSeekiosBuilder = new Android.Support.V7.App.AlertDialog.Builder(this, Resource.Style.Theme_AppCompat_Light_Dialog);
            var    inflater           = (LayoutInflater)this.GetSystemService(LayoutInflaterService);
            var    view = inflater.Inflate(Resource.Drawable.PopupModeDefinitionChoice, null);

            //Cancel button
            listSeekiosBuilder.SetNegativeButton(Resource.String.detailSeekios_deletePopupButtonCancel, (senderAlert, args) =>
            {
                listSeekiosDialog.Dismiss();
            });

            DeleteModeLayout = view.FindViewById <LinearLayout>(Resource.Id.modeDefinition_deleteModeLayout);

            /// <summary>Désactivation du mode</summary>
            var mode = App.CurrentUserEnvironment.LsMode.Where(el => el.Seekios_idseekios == _seekiosSelected.Idseekios).FirstOrDefault();


            /// <summary>Sélection du mode tracking</summary>
            ModeTracking        = view.FindViewById <LinearLayout>(Resource.Id.modeDefinition_tracking);
            ModeTracking.Click += (s, arg) =>
            {
                listSeekiosDialog.Dismiss();
                SelectMode(3);
            };

            /// <summary>Sélection du mode don't move</summary>
            ModeDontMove        = view.FindViewById <LinearLayout>(Resource.Id.modeDefinition_dontMove);
            ModeDontMove.Click += (s, arg) =>
            {
                listSeekiosDialog.Dismiss();
                SelectMode(4);
            };

            /// <summary>Sélection du mode zone</summary>
            ModeZone        = view.FindViewById <LinearLayout>(Resource.Id.modeDefinition_zone);
            ModeZone.Click += (s, arg) =>
            {
                listSeekiosDialog.Dismiss();
                SelectMode(5);
            };

            // aucun mode
            if (mode == null)
            {
                DeleteModeLayout.Visibility = ViewStates.Gone;
            }
            // un mode est activé alors on donne la possibilité de le désactiver
            else
            {
                DeleteTextView      = view.FindViewById <TextView>(Resource.Id.modeDefinition_deleteText);
                DeleteTextView.Text = string.Format(Resources.GetString(Resource.String.modeDefinition_delete), GetModeName(mode.ModeDefinition_idmodeDefinition));

                DeleteModeLayout.Click += (s, arg) =>
                {
                    RunOnUiThread(async() =>
                    {
                        LoadingLayout.Visibility = ViewStates.Visible;
                        App.Locator.ModeDefinition.SeekiosUpdated = _seekiosSelected;
                        listSeekiosDialog.Dismiss();
                        if (await App.Locator.ModeDefinition.DeleteMode(mode))
                        {
                            _seekiosSelected.HasGetLastInstruction = false;
                            if (App.Locator.BaseMap.LsSeekiosAlertState.Contains(_seekiosSelected.Idseekios))
                            {
                                App.Locator.BaseMap.LsSeekiosAlertState.Remove(_seekiosSelected.Idseekios);
                            }
                            UpdateUI();
                        }
                        LoadingLayout.Visibility = ViewStates.Invisible;
                    });
                };

                var typeValue = new TypedValue();
                Theme.ResolveAttribute(Resource.Attribute.layoutBackgroundSecondly, typeValue, true);
                var backgroundSecondaryColor = Resources.GetColor(typeValue.ResourceId);
                Theme.ResolveAttribute(Resource.Attribute.colorFirst, typeValue, true);
                var textPrimaryColor = Resources.GetColor(typeValue.ResourceId);
                switch (mode.ModeDefinition_idmodeDefinition)
                {
                case 3:
                    if (mode.ModeDefinition_idmodeDefinition == (int)ModeDefinitionEnum.ModeTracking)
                    {
                        ModeTracking.SetBackgroundColor(backgroundSecondaryColor);
                        view.FindViewById <TextView>(Resource.Id.modeDefinition_trackingTitle).SetTextColor(textPrimaryColor);
                        view.FindViewById <XamSvg.SvgImageView>(Resource.Id.modeDefinition_trackingImg).SetSvg(this, Resource.Drawable.ModeTracking, "62da73");
                    }
                    break;

                case 4:
                    if (mode.ModeDefinition_idmodeDefinition == (int)ModeDefinitionEnum.ModeDontMove)
                    {
                        ModeDontMove.SetBackgroundColor(backgroundSecondaryColor);
                        view.FindViewById <TextView>(Resource.Id.modeDefinition_dontMoveTitle).SetTextColor(textPrimaryColor);
                        view.FindViewById <XamSvg.SvgImageView>(Resource.Id.modeDefinition_dontMoveImg).SetSvg(this, Resource.Drawable.ModeDontMove, "62da73");
                    }
                    break;

                case 5:
                    if (mode.ModeDefinition_idmodeDefinition == (int)ModeDefinitionEnum.ModeZone)
                    {
                        ModeZone.SetBackgroundColor(backgroundSecondaryColor);
                        view.FindViewById <TextView>(Resource.Id.modeDefinition_zoneTitle).SetTextColor(textPrimaryColor);
                        view.FindViewById <XamSvg.SvgImageView>(Resource.Id.modeDefinition_zoneImg).SetSvg(this, Resource.Drawable.ModeZone, "62da73");
                    }
                    break;

                //case 6:
                //    ModeInTime.SetBackgroundColor(backgroundSecondaryColor);
                //    view.FindViewById<TextView>(Resource.Id.modeDefinition_inTimeTitle).SetTextColor(textPrimaryColor);
                //    view.FindViewById<XamSvg.SvgImageView>(Resource.Id.modeDefinition_inTimeImg).SetSvg(this, Resource.Drawable.ModeInTime, "62da73");
                //    break;
                //case 7:
                //    ModeFollowMe.SetBackgroundColor(backgroundSecondaryColor);
                //    view.FindViewById<TextView>(Resource.Id.modeDefinition_followMeTitle).SetTextColor(textPrimaryColor);
                //    view.FindViewById<XamSvg.SvgImageView>(Resource.Id.modeDefinition_followMeImg).SetSvg(this, Resource.Drawable.ModeFollowMe, "62da73");
                //    break;
                //case 8: break;
                //case 9:
                //    ModeDailyTrack.SetBackgroundColor(backgroundSecondaryColor);
                //    view.FindViewById<TextView>(Resource.Id.modeDefinition_dailyTrackTitle).SetTextColor(textPrimaryColor);
                //    view.FindViewById<XamSvg.SvgImageView>(Resource.Id.modeDefinition_dailyTrackImg).SetSvg(this, Resource.Drawable.ModeDailyTrack, "62da73");
                //    break;
                //case 11:
                //    ModeRoad.SetBackgroundColor(backgroundSecondaryColor);
                //    view.FindViewById<TextView>(Resource.Id.modeDefinition_roadTitle).SetTextColor(textPrimaryColor);
                //    view.FindViewById<XamSvg.SvgImageView>(Resource.Id.modeDefinition_roadImg).SetSvg(this, Resource.Drawable.ModeRoad, "62da73");
                //    break;
                default:
                    break;
                }
            }

            listSeekiosBuilder.SetView(view);
            listSeekiosDialog = listSeekiosBuilder.Create();
            listSeekiosDialog.Show();
        }