コード例 #1
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            var view = new CategoryPickerView(this.Activity, SelectedLocation);

            //This simply opens up the favorite category fragment
            ((MainActivity)Activity).OptionItemSelected += (sender, e) =>
            {
                if (e.Item.TitleFormatted.ToString() == "Favorite")
                {
                    var transaction = Activity.SupportFragmentManager.BeginTransaction();
                    FavoriteCategoriesFragment favoriteFragment = new FavoriteCategoriesFragment();
                    favoriteFragment.SelectedLocation = SelectedLocation;

                    transaction.Replace(Resource.Id.frameLayout, favoriteFragment);
                    transaction.AddToBackStack(null);
                    transaction.Commit();
                }
            };

            //This handles favoriting and unfavoriting categories
            view.CategoryLongClick += (sender, e) =>
            {
                var menu           = new Android.Support.V7.Widget.PopupMenu(this.Activity, e.SelectedView);
                var presentAlready = MainActivity.databaseConnection.FavoriteCategoryAlreadyPresent(e.Selected.Key);

                if (presentAlready)
                {
                    menu.Inflate(Resource.Menu.UnfavoriteMenu);
                }
                else
                {
                    menu.Inflate(Resource.Menu.FavoriteMenu);
                }

                menu.Show();
                menu.MenuItemClick += async(s, ev) =>
                {
                    if (presentAlready)
                    {
                        await MainActivity.databaseConnection.DeleteFavoriteCategoryAsync(e.Selected.Key);
                    }
                    else
                    {
                        await MainActivity.databaseConnection.AddNewFavoriteCategoryAsync(e.Selected.Key, e.Selected.Value);
                    }

                    if (MainActivity.databaseConnection.StatusCode == Models.codes.ok)
                    {
                        Toast.MakeText(this.Activity, $"Successfully (un)favorited: {e.Selected.Value}", ToastLength.Short).Show();
                    }
                    else
                    {
                        Toast.MakeText(this.Activity, $"Something went wrong, we're sorry!", ToastLength.Short).Show();
                    }
                };
            };

            return(view);
        }
コード例 #2
0
        private void InitHandlers(TaskListViewHolder vh)
        {
            vh.CheckBox.Click += (s, e) =>
            {
                CheckboxClickHandler?.Invoke(this, vh.AdapterPosition);
            };

            var toolbar = vh.ItemView.FindViewById <ImageView>(Resource.Id.task_toolbar);

            toolbar.Click += (sender, args) =>
            {
                var popup = new PopupMenu(_context, toolbar);

                popup.Inflate(Resource.Menu.menu_task);
                popup.MenuItemClick += (o, eventArgs) =>
                {
                    if (eventArgs.Item.ItemId == Resource.Id.userTask_task_delete)
                    {
                        InvokeDeleteHandler(vh.AdapterPosition);
                    }
                    else if (eventArgs.Item.ItemId == Resource.Id.userTask_task_edit)
                    {
                        EditHandler?.Invoke(this, vh.AdapterPosition);
                    }
                };
                popup.Show();
            };
        }
コード例 #3
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            var view = new CategoryPickerView(this.Activity, SelectedLocation);

            //This simply opens up the favorite category fragment
            ((MainActivity)Activity).OptionItemSelected += (sender, e) =>
            {
                if (e.Item.TitleFormatted.ToString() == "Favorite")
                {
                    var transaction = Activity.SupportFragmentManager.BeginTransaction();
                    FavoriteCategoriesFragment favoriteFragment = new FavoriteCategoriesFragment();
                    favoriteFragment.SelectedLocation = SelectedLocation;

                    transaction.Replace(Resource.Id.frameLayout, favoriteFragment);
                    transaction.AddToBackStack(null);
                    transaction.Commit();
                }
            };

            //This handles favoriting and unfavoriting categories
            view.CategoryLongClick += (sender, e) =>
            {
                var menu = new Android.Support.V7.Widget.PopupMenu(this.Activity, e.SelectedView);
                var presentAlready = MainActivity.databaseConnection.FavoriteCategoryAlreadyPresent(e.Selected.Key);

                if (presentAlready)
                    menu.Inflate(Resource.Menu.UnfavoriteMenu);
                else
                    menu.Inflate(Resource.Menu.FavoriteMenu);

                menu.Show();
                menu.MenuItemClick += async (s, ev) =>
                {
                    if (presentAlready)
                        await MainActivity.databaseConnection.DeleteFavoriteCategoryAsync(e.Selected.Key);
                    else
                        await MainActivity.databaseConnection.AddNewFavoriteCategoryAsync(e.Selected.Key, e.Selected.Value);

                    if (MainActivity.databaseConnection.StatusCode == Models.codes.ok)
                        Toast.MakeText(this.Activity, $"Successfully (un)favorited: {e.Selected.Value}", ToastLength.Short).Show();
                    else
                        Toast.MakeText(this.Activity, $"Something went wrong, we're sorry!", ToastLength.Short).Show();
                };
            };

            return view;
        }
コード例 #4
0
 /// <summary>
 /// Handles the actions when an adapter item is longclicked
 /// </summary>
 /// <param name="sender">the adapter item</param>
 /// <param name="e">the event args</param>
 void Adapter_ItemLongClick(object sender, RecyclerClickEventArgs e)
 {
     selectedItem = e.Position;
     contextMenu  = new PopupMenu(this.Context, e.View);
     contextMenu.Inflate(Resource.Menu.browse_recipe_context_menus);
     contextMenu.MenuItemClick += OnContextMenuItemClick;
     contextMenu.Show();
 }
コード例 #5
0
        void ShowRemovePopup(View view, int position)
        {
            Android.Support.V7.Widget.PopupMenu popupMenu = new Android.Support.V7.Widget.PopupMenu(_context, view);
            var menuOpts = popupMenu.Menu;

            popupMenu.Inflate(Resource.Layout.delete_photo_popup);

            popupMenu.MenuItemClick += (s1, arg1) =>
            {
                Photos.RemoveAt(position);
                this.NotifyDataSetChanged();
            };
            popupMenu.Show();
        }
コード例 #6
0
        void ShowPopup(View view)
        {
            Android.Support.V7.Widget.PopupMenu popupMenu = new Android.Support.V7.Widget.PopupMenu(_context, view);
            var menuOpts = popupMenu.Menu;

            popupMenu.Inflate(Resource.Layout.camOrGalleryMenu);

            popupMenu.MenuItemClick += (s1, arg1) =>
            {
                if (_nativeMethods.AreStorageAndCamPermissionsGranted(_context))
                {
                    if (arg1.Item.TitleFormatted.ToString() == _context.GetString(Resource.String.takePhoto))
                    {
                        try
                        {
                            if (_pictureMethods.IsThereAnAppToTakePictures(_context))
                            {
                                PictureMethods.CameraOrGalleryIndicator = Constants.camera;
                                _pictureMethods.CreateDirectoryForPictures();
                                _pictureMethods.TakeAPicture(_context);
                            }
                        }
                        catch
                        {
                            Toast.MakeText(_context, TranslationHelper.GetString("failedToOpenTheCamera", _ci), ToastLength.Long).Show();
                        }
                    }
                    if (arg1.Item.TitleFormatted.ToString() == _context.GetString(Resource.String.uploadFromGallery))
                    {
                        PictureMethods.CameraOrGalleryIndicator = "gallery";
                        var imageIntent = new Intent();
                        imageIntent.SetType("image/*");
                        //imageIntent.SetType("file/*");
                        imageIntent.SetAction(Intent.ActionGetContent);
                        _context.StartActivityForResult(
                            Intent.CreateChooser(imageIntent, "Select photo"), 0);
                    }
                }
                else
                {
                    _nativeMethods.CheckStoragePermissions(_context);
                }
            };
            popupMenu.Show();
        }
コード例 #7
0
 public MainRecViewHolder(View itemView, Action <string> listener, Action <string> longListener, bool menu) : base(itemView)
 {
     TxtView        = ItemView.FindViewById <TextView>(Resource.Id.main_rec_txtview);
     TxtView.Click += (obj, sender) => listener(TxtView.Text);
     if (menu)
     {
         TxtView.LongClick += (obj, sened) =>
         {
             PopupMenu popupMenu = new PopupMenu(ItemView.Context, itemView);
             popupMenu.Inflate(Resource.Menu.popup_menu);
             popupMenu.MenuItemClick += (s1, arg1) =>
             {
                 longListener(TxtView.Text);
             };
             popupMenu.Show();
         };
     }
 }
コード例 #8
0
        private void MainActivity_Click(object sender, System.EventArgs e)
        {
            Android.Support.V7.Widget.PopupMenu popupMenu = new Android.Support.V7.Widget.PopupMenu(this, FindViewById <Button>(Resource.Id.contextMenuBn));

            popupMenu.Inflate(Resource.Menu.home);

            popupMenu.MenuItemClick += (s1, arg1) =>
            {
                if (arg1.Item.TitleFormatted.ToString() == "Change Destination")
                {
                    StartActivity(new Intent(this, typeof(ChangeDestination)));
                }
                if (arg1.Item.TitleFormatted.ToString() == "Filter")
                {
                    StartActivity(new Intent(this, typeof(FilterActivity)));
                }
                if (arg1.Item.TitleFormatted.ToString() == "Search")
                {
                    Toast.MakeText(this, "Search", ToastLength.Short).Show();
                    StartActivity(new Intent(this, typeof(FilterActivity)));
                }
                if (arg1.Item.TitleFormatted.ToString() == "Add Experience (for pals)")
                {
                    RecyclerViewSample.Activities.MapForChooseTourCoordsActivity.chosenLatOfExp = null;
                    RecyclerViewSample.Activities.MapForChooseTourCoordsActivity.chosenLngOfExp = null;
                    if (isLogined == false)
                    {
                        loginOrRegFragment.Show(fragmentManager, "fragmentManager");
                    }
                    else
                    {
                        StartActivity(new Intent(this, typeof(RecyclerViewSampl.AddNewTourActivity)));
                    }
                }
            };
            try
            {
                popupMenu.Show();
            }
            catch
            {
            }
        }
コード例 #9
0
        void LayerButton_Click(object sender, EventArgs e)
        {
            var button = sender as ImageButton;
            var popup  = new Android.Support.V7.Widget.PopupMenu(this, button);

            popup.Inflate(Resource.Menu.layers);
            var menu = popup.Menu;
            var item = menu.GetItem(0);

            item.SetChecked(settings.PokemonEnabled);
            item = menu.GetItem(1);
            item.SetChecked(settings.GymsEnabled);
            item = menu.GetItem(2);
            item.SetChecked(settings.RaidsEnabled);
            item = menu.GetItem(3);
            item.SetChecked(settings.NinetyOnlyEnabled);
            popup.MenuItemClick += Popup_MenuItemClick;
            popup.Show();
        }
コード例 #10
0
 public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position)
 {
     if (position == ItemCount - 1 && !PlaylistTracks.instance.fullyLoadded)
     {
         int pad = MainActivity.instance.DpToPx(30);
         ((RecyclerView.LayoutParams)viewHolder.ItemView.LayoutParameters).TopMargin    = pad;
         ((RecyclerView.LayoutParams)viewHolder.ItemView.LayoutParameters).BottomMargin = pad;
     }
     else if (position == 0 && !PlaylistTracks.instance.useHeader)
     {
         View header = viewHolder.ItemView;
         header.FindViewById <TextView>(Resource.Id.headerNumber).Text = tracks.Count + " " + (tracks.Count < 2 ? MainActivity.instance.GetString(Resource.String.element) : MainActivity.instance.GetString(Resource.String.elements));
         if (!header.FindViewById <ImageButton>(Resource.Id.headerPlay).HasOnClickListeners)
         {
             header.FindViewById <ImageButton>(Resource.Id.headerPlay).Click    += (sender, e0) => { SongManager.PlayInOrder(tracks); };
             header.FindViewById <ImageButton>(Resource.Id.headerShuffle).Click += (sender, e0) =>
             {
                 SongManager.Shuffle(tracks);
             };
             header.FindViewById <ImageButton>(Resource.Id.headerMore).Click += (sender, e0) =>
             {
                 Android.Support.V7.Widget.PopupMenu menu = new Android.Support.V7.Widget.PopupMenu(MainActivity.instance, header.FindViewById <ImageButton>(Resource.Id.headerMore));
                 menu.Inflate(Resource.Menu.playlist_smallheader_more);
                 menu.SetOnMenuItemClickListener(PlaylistTracks.instance);
                 menu.Show();
             };
         }
     }
     else if (BaseCount == 0)
     {
         ((TextView)viewHolder.ItemView).Text = MainActivity.instance.GetString(Resource.String.playlist_empty);
     }
     else if (tracks != null)
     {
         OnBindViewHolder(viewHolder, tracks[position - ItemBefore]);
     }
     else
     {
         base.OnBindViewHolder(viewHolder, position);
     }
 }
コード例 #11
0
        //public async Task<bool> checkStoragePermissions()
        //{
        //    PermissionStatus permissionStatus = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);

        //    if (permissionStatus != PermissionStatus.Granted)
        //    {
        //        var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Location });
        //        permissionStatus = results[Permission.Location];
        //        request_runtime_permissions();
        //        return false;
        //    }
        //    else
        //    {
        //        //Toast.MakeText(this, TranslationHelper.GetString("permissionsNeeded", ci), ToastLength.Long).Show();
        //        return true;
        //    }
        //}

        //private const int REQUEST_PERMISSION_CODE = 1000;
        //public void request_runtime_permissions()
        //{
        //    if (Build.VERSION.SdkInt >= Build.VERSION_CODES.M)
        //        if (
        //                     _context.CheckSelfPermission(Manifest.Permission.Camera) != Android.Content.PM.Permission.Granted
        //                  || _context.CheckSelfPermission(Manifest.Permission.ReadExternalStorage) != Android.Content.PM.Permission.Granted
        //                  || _context.CheckSelfPermission(Manifest.Permission.WriteExternalStorage) != Android.Content.PM.Permission.Granted)
        //        {
        //            ActivityCompat.RequestPermissions(_context, new String[]
        //            {
        //                        Manifest.Permission.Camera,
        //                        Manifest.Permission.ReadExternalStorage,
        //                        Manifest.Permission.WriteExternalStorage,
        //            }, REQUEST_PERMISSION_CODE);
        //        }
        //        else
        //        {
        //            ActivityCompat.RequestPermissions(_context, new String[]
        //            {
        //                        Manifest.Permission.Camera,
        //                        Manifest.Permission.ReadExternalStorage,
        //                        Manifest.Permission.WriteExternalStorage,
        //            }, REQUEST_PERMISSION_CODE);
        //        }
        //}

        void ShowAlternativePopup(View view, int position)
        {
            Android.Support.V7.Widget.PopupMenu popupMenu = new Android.Support.V7.Widget.PopupMenu(_context, view);
            var menuOpts = popupMenu.Menu;

            popupMenu.Inflate(Resource.Layout.photo_option);

            popupMenu.MenuItemClick += async(s1, arg1) =>
            {
                //if (_nativeMethods.AreStorageAndCamPermissionsGranted(_context))
                //{
                if (arg1.Item.TitleFormatted.ToString() == _context.GetString(Resource.String.edit))
                {
                    _personalImageViewHolder.ActivityIndicator.Visibility = ViewStates.Visible;
                    _personalImageViewHolder.ImageIv.Visibility           = ViewStates.Gone;

                    var uri = await _nativeMethods.ExportBitmapAsJpegAndGetUri(Photos[position]);

                    _personalImageViewHolder.ActivityIndicator.Visibility = ViewStates.Gone;
                    _personalImageViewHolder.ImageIv.Visibility           = ViewStates.Visible;
                    try
                    {
                        _personalDataActivity.StartCropActivity(uri, _context, position);
                    }
                    catch (Exception ex)
                    {
                    }
                }
                if (arg1.Item.TitleFormatted.ToString() == _context.GetString(Resource.String.removePhoto))
                {
                    Photos.RemoveAt(position);
                    this.NotifyDataSetChanged();
                }
                //}
                //else
                //_nativeMethods.CheckStoragePermissions(_context);
            };
            popupMenu.Show();
        }
コード例 #12
0
ファイル: MainActivity.cs プロジェクト: niklasjk/ShoppingList
        void OnItemLongClick(object sender, int position)
        {
            var selected = listItems[position];

            Android.Support.V7.Widget.PopupMenu menu = new Android.Support.V7.Widget.PopupMenu(this, mRecyclerView.FindViewHolderForAdapterPosition(position).ItemView);

            currentItem = selected;

            var currentIndex = position;

            menu.Inflate(Resource.Menu.PopupMenu);


            var toastText = Resources.GetText(Resource.String.onDeletion);

            menu.MenuItemClick += (s1, arg1) =>
            {
                switch (arg1.Item.TitleFormatted.ToString())
                {
                case "Delete item":

                    listItems.Remove(selected);
                    mAdapter.NotifyDataSetChanged();

                    if (shareActionProvider != null)
                    {
                        shareActionProvider.SetShareIntent(CreateShareIntent());
                    }
                    Toast.MakeText(this, selected.title + toastText, ToastLength.Short).Show();

                    break;

                case "Poista ostos":

                    listItems.Remove(selected);
                    mAdapter.NotifyDataSetChanged();

                    if (shareActionProvider != null)
                    {
                        shareActionProvider.SetShareIntent(CreateShareIntent());
                    }
                    Toast.MakeText(this, selected.title + toastText, ToastLength.Short).Show();

                    break;

                case "Modify item":

                    Android.Support.V7.App.AlertDialog.Builder builder = new Android.Support.V7.App.AlertDialog.Builder(this);
                    LayoutInflater inflater   = this.LayoutInflater;
                    View           dialogView = inflater.Inflate(Resource.Layout.editItemDialog, null);
                    builder.SetView(dialogView);
                    var titleText  = Resources.GetText(Resource.String.modifyItem);
                    var cancelText = Resources.GetText(Resource.String.cancelText);

                    EditText edt = (EditText)dialogView.FindViewById(Resource.Id.edit1);
                    edt.Text = currentItem.title;

                    builder.SetTitle(titleText + " " + currentItem.title);
                    builder.SetPositiveButton("Ok", (senderAlert, args) =>
                    {
                        listItems[currentIndex].title = edt.Text;
                        mAdapter.NotifyDataSetChanged();
                    });

                    builder.SetNegativeButton(cancelText, (senderAlert, args) =>
                    {
                    });

                    Dialog dialog = builder.Create();
                    dialog.Show();
                    break;

                case "Muokkaa ostosta":

                    Android.Support.V7.App.AlertDialog.Builder builderSuomi = new Android.Support.V7.App.AlertDialog.Builder(this);
                    LayoutInflater inflaterSuomi   = this.LayoutInflater;
                    View           dialogViewSuomi = inflaterSuomi.Inflate(Resource.Layout.editItemDialog, null);
                    builderSuomi.SetView(dialogViewSuomi);
                    var titleTextSuomi  = Resources.GetText(Resource.String.modifyItem);
                    var cancelTextSuomi = Resources.GetText(Resource.String.cancelText);

                    EditText edtSuomi = (EditText)dialogViewSuomi.FindViewById(Resource.Id.edit1);
                    edtSuomi.Text = currentItem.title;

                    builderSuomi.SetTitle(titleTextSuomi + " " + currentItem.title);
                    builderSuomi.SetPositiveButton("Ok", (senderAlert, args) =>
                    {
                        listItems[currentIndex].title = edtSuomi.Text;
                        mAdapter.NotifyDataSetChanged();
                    });

                    builderSuomi.SetNegativeButton(cancelTextSuomi, (senderAlert, args) =>
                    {
                    });

                    Dialog dialogSuomi = builderSuomi.Create();
                    dialogSuomi.Show();
                    break;

                case "Take photo":
                    if (ActivityCompat.CheckSelfPermission(this, Manifest.Permission.Camera) != (int)Permission.Granted ||
                        ActivityCompat.CheckSelfPermission(this, Manifest.Permission.WriteExternalStorage) != (int)Permission.Granted)
                    {
                        // Camera permission has not been granted
                        RequestPhotoPermissions();
                    }
                    else
                    {
                        Intent intent = new Intent(MediaStore.ActionImageCapture);

                        App._file = new File(App._dir, String.Format("myPhoto_{0}.jpg", Guid.NewGuid()));

                        intent.PutExtra(MediaStore.ExtraOutput, Uri.FromFile(App._file));

                        StartActivityForResult(intent, requestImageCapture);
                    }
                    break;

                case "Ota valokuva":
                    if (ActivityCompat.CheckSelfPermission(this, Manifest.Permission.Camera) != (int)Permission.Granted ||
                        ActivityCompat.CheckSelfPermission(this, Manifest.Permission.WriteExternalStorage) != (int)Permission.Granted)
                    {
                        // Camera permission has not been granted
                        RequestPhotoPermissions();
                    }
                    else
                    {
                        Intent intentSecond = new Intent(MediaStore.ActionImageCapture);

                        App._file = new File(App._dir, String.Format("myPhoto_{0}.jpg", Guid.NewGuid()));

                        intentSecond.PutExtra(MediaStore.ExtraOutput, Uri.FromFile(App._file));

                        StartActivityForResult(intentSecond, requestImageCapture);
                    }
                    break;

                case "Get image from gallery":
                    var galleryIntent = new Intent(Intent.ActionOpenDocument);
                    galleryIntent.AddCategory(Intent.CategoryOpenable);
                    galleryIntent.SetType("image/*");
                    StartActivityForResult(galleryIntent, pickImageId);
                    break;

                case "Hae kuva kuvagalleriasta":
                    var galleryIntentSecond = new Intent(Intent.ActionOpenDocument);
                    galleryIntentSecond.AddCategory(Intent.CategoryOpenable);
                    galleryIntentSecond.SetType("image/*");
                    StartActivityForResult(galleryIntentSecond, pickImageId);
                    break;

                case "Cancel":
                    break;

                case "Peruuta":
                    break;
                }
            };

            // Android 4 now has the DismissEvent
            menu.DismissEvent += (s2, arg2) =>
            {
                System.Console.WriteLine("menu dismissed");
            };
            menu.Show();
        }
コード例 #13
0
        public static void ShowPopup(Context context, string indicator, string blacklist, View view, string chatId)
        {
            Android.Support.V7.Widget.PopupMenu popup_menu = new Android.Support.V7.Widget.PopupMenu(context, view);
            var menuOpts = popup_menu.Menu;

            if (indicator == "dialog_popup_menu")
            {
                popup_menu.Inflate(Resource.Layout.dialog_popup_menu);
                if (blacklist == "to_blacklist")
                {
                    menuOpts.GetItem(2).SetTitle(Resource.String.restore_conversation);
                }
            }
            else if (indicator == "dialog_with_user_popup_menu")
            {
                popup_menu.Inflate(Resource.Layout.dialog_with_user_popup_menu);
                if (blacklist == "to_blacklist")
                {
                    menuOpts.GetItem(1).SetTitle(Resource.String.restore_conversation);
                }
            }
            else if (indicator == "dialog_popup_menu_on")
            {
                popup_menu.Inflate(Resource.Layout.dialog_popup_menu_on);
                if (blacklist == "to_blacklist")
                {
                    menuOpts.GetItem(2).SetTitle(Resource.String.restore_conversation);
                }
            }
            else if (indicator == "dialog_with_user_popup_menu_on")
            {
                popup_menu.Inflate(Resource.Layout.dialog_with_user_popup_menu_on);
                if (blacklist == "to_blacklist")
                {
                    menuOpts.GetItem(1).SetTitle(Resource.String.restore_conversation);
                }
            }
            popup_menu.MenuItemClick += (s1, arg1) =>
            {
                if (arg1.Item.TitleFormatted.ToString() == context.GetString(Resource.String.feedback_text))
                {
                    context.StartActivity(typeof(FeedbackChooseCategoryActivity));
                }
                if (arg1.Item.TitleFormatted.ToString() == context.GetString(Resource.String.clear_chat_history))
                {
                    title_acceptTV.Text      = context.GetString(Resource.String.clear_chat_history) + "?";
                    popup_menu_value         = context.GetString(Resource.String.clear_chat_history);
                    tint_acceptLL.Visibility = ViewStates.Visible;
                }
                if (arg1.Item.TitleFormatted.ToString() == context.GetString(Resource.String.blacklist))
                {
                    if (blacklist == "to_blacklist")
                    {
                        title_acceptTV.Text = context.GetString(Resource.String.remove_from_blacklist) + "?";
                    }
                    else
                    {
                        title_acceptTV.Text = context.GetString(Resource.String.move_to_blacklist) + "?";
                    }
                    popup_menu_value         = context.GetString(Resource.String.blacklist);
                    tint_acceptLL.Visibility = ViewStates.Visible;
                }
                if (arg1.Item.TitleFormatted.ToString() == context.GetString(Resource.String.restore_conversation))
                {
                    title_acceptTV.Text      = context.GetString(Resource.String.remove_from_blacklist) + "?";
                    popup_menu_value         = context.GetString(Resource.String.blacklist);
                    tint_acceptLL.Visibility = ViewStates.Visible;
                }
                if (arg1.Item.TitleFormatted.ToString() == context.GetString(Resource.String.turn_off_notifications))
                {
                    title_acceptTV.Text      = context.GetString(Resource.String.turn_off_notifications) + "?";
                    popup_menu_value         = context.GetString(Resource.String.turn_off_notifications);
                    tint_acceptLL.Visibility = ViewStates.Visible;
                }
                if (arg1.Item.TitleFormatted.ToString() == context.GetString(Resource.String.turn_on_notifications))
                {
                    title_acceptTV.Text      = context.GetString(Resource.String.turn_on_notifications) + "?";
                    popup_menu_value         = context.GetString(Resource.String.turn_on_notifications);
                    tint_acceptLL.Visibility = ViewStates.Visible;
                }
                yes_acceptTV.Click += async(s, e) =>
                {
                    if (popup_menu_value == context.GetString(Resource.String.clear_chat_history))
                    {
                        activityIndicatorAccept.Visibility = ViewStates.Visible;
                        var clear_his = await dialogMethods.ClearHistory(userMethods.GetUsersAuthToken(), chatId);

                        activityIndicatorAccept.Visibility = ViewStates.Gone;
                        tint_acceptLL.Visibility           = ViewStates.Gone;
                        var intent = new Intent(context, typeof(ChatListActivity));
                        intent.SetFlags(ActivityFlags.NewTask);
                        context.StartActivity(intent);
                        activity.Finish();
                    }
                    if (popup_menu_value == context.GetString(Resource.String.blacklist))
                    {
                        if (blacklist == "to_blacklist")
                        {
                            var end_conv = await dialogMethods.CloseChat(userMethods.GetUsersAuthToken(), chatId, false);

                            blacklist = "";
                        }
                        else
                        {
                            var end_conv = await dialogMethods.CloseChat(userMethods.GetUsersAuthToken(), chatId, true);

                            blacklist = "to_blacklist";
                        }

                        activityIndicatorAccept.Visibility = ViewStates.Visible;
                        activityIndicatorAccept.Visibility = ViewStates.Gone;
                        tint_acceptLL.Visibility           = ViewStates.Gone;
                        var intent = new Intent(context, typeof(ChatListActivity));
                        intent.SetFlags(ActivityFlags.NewTask);
                        context.StartActivity(intent);
                        activity.Finish();
                    }
                    if (popup_menu_value == context.GetString(Resource.String.turn_off_notifications))
                    {
                        activityIndicatorAccept.Visibility = ViewStates.Visible;
                        var turn_off_notifs = await dialogMethods.ToggleNotifications(userMethods.GetUsersAuthToken(), chatId, 0);

                        activityIndicatorAccept.Visibility = ViewStates.Gone;
                        tint_acceptLL.Visibility           = ViewStates.Gone;
                        var intent = new Intent(context, typeof(ChatListActivity));
                        intent.SetFlags(ActivityFlags.NewTask);
                        context.StartActivity(intent);
                        activity.Finish();
                    }
                    if (popup_menu_value == context.GetString(Resource.String.turn_on_notifications))
                    {
                        activityIndicatorAccept.Visibility = ViewStates.Visible;
                        var turn_on_notifs = await dialogMethods.ToggleNotifications(userMethods.GetUsersAuthToken(), chatId, 1);

                        activityIndicatorAccept.Visibility = ViewStates.Gone;
                        tint_acceptLL.Visibility           = ViewStates.Gone;
                        var intent = new Intent(context, typeof(ChatListActivity));
                        intent.SetFlags(ActivityFlags.NewTask);
                        context.StartActivity(intent);
                        activity.Finish();
                    }
                };
            };
            try
            { popup_menu.Show(); }
            catch { }
        }
コード例 #14
0
        public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
        {
            View          itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.activity_gpx, parent, false);
            GPXViewHolder vh       = new GPXViewHolder(itemView, OnClick);

            vh.img_more.Click += (o, e) =>
            {
                Android.Support.V7.Widget.PopupMenu popup = new Android.Support.V7.Widget.PopupMenu(parent.Context, vh.img_more);
                popup.Inflate(Resource.Menu.menu_gpx);

                popup.MenuItemClick += async(s, args) =>
                {
                    switch (args.Item.ItemId)
                    {
                    case Resource.Id.gpx_menu_followroute:
                        Log.Information($"Follow route '{vh.Name.Text}'");

                        //Get the route
                        var      route    = RouteDatabase.GetRouteAsync(vh.Id).Result;
                        GpxClass gpx      = GpxClass.FromXml(route.GPX);
                        string   mapRoute = Import.GPXtoRoute(gpx.Routes[0]).Item1;

                        //Add GPX to Map
                        Import.AddRouteToMap(mapRoute);

                        //Center on imported route
                        var   bounds = gpx.GetBounds();
                        Point p      = Utils.Misc.CalculateCenter((double)bounds.maxlat, (double)bounds.minlon, (double)bounds.minlat, (double)bounds.maxlon);
                        var   sphericalMercatorCoordinate = SphericalMercator.FromLonLat(p.X, p.Y);
                        Fragment_map.mapControl.Navigator.CenterOn(sphericalMercatorCoordinate);

                        //Zoom
                        Fragment_map.mapControl.Navigator.ZoomTo(PrefsActivity.MaxZoom);

                        //Switch to map
                        MainActivity.SwitchFragment("Fragment_map", (FragmentActivity)parent.Context);

                        //Start recording
                        RecordTrack.StartTrackTimer();
                        NavigationView nav      = MainActivity.mContext.FindViewById <NavigationView>(Resource.Id.nav_view);
                        var            item_nav = nav.Menu.FindItem(Resource.Id.nav_recordtrack);
                        item_nav.SetTitle("Stop Recording");

                        break;

                    case Resource.Id.gpx_menu_showonmap:
                        Log.Information($"Show route on map '{vh.Name.Text}'");

                        //Get the route
                        var      route_1    = RouteDatabase.GetRouteAsync(vh.Id).Result;
                        GpxClass gpx_1      = GpxClass.FromXml(route_1.GPX);
                        string   mapRoute_1 = Import.GPXtoRoute(gpx_1.Routes[0]).Item1;

                        //Add GPX to Map
                        Import.AddRouteToMap(mapRoute_1);

                        //Center on imported route
                        var   bounds_1 = gpx_1.GetBounds();
                        Point p_1      = Utils.Misc.CalculateCenter((double)bounds_1.maxlat, (double)bounds_1.minlon, (double)bounds_1.minlat, (double)bounds_1.maxlon);
                        var   sphericalMercatorCoordinate_1 = SphericalMercator.FromLonLat(p_1.X, p_1.Y);
                        Fragment_map.mapControl.Navigator.CenterOn(sphericalMercatorCoordinate_1);

                        //Zoom
                        Fragment_map.mapControl.Navigator.ZoomTo(PrefsActivity.MaxZoom);

                        //Switch to map
                        MainActivity.SwitchFragment("Fragment_map", (FragmentActivity)parent.Context);

                        break;

                    case Resource.Id.gpx_menu_deleteroute:
                        Log.Information($"Delete route '{vh.Name.Text}'");

                        Show_Dialog msg1 = new Show_Dialog(MainActivity.mContext);
                        if (await msg1.ShowDialog($"Delete", $"Delete '{vh.Name.Text}' ?", Android.Resource.Attribute.DialogIcon, true, Show_Dialog.MessageResult.YES, Show_Dialog.MessageResult.NO) == Show_Dialog.MessageResult.YES)
                        {
                            _ = Data.RouteDatabase.DeleteRouteAsync(vh.Id);
                            mGpxData.RemoveAt(vh.AdapterPosition);
                            NotifyDataSetChanged();
                        }

                        break;

                    case Resource.Id.gpx_menu_reverseroute:
                        Log.Information($"Reverse route '{vh.Name.Text}'");

                        //Get the route
                        var      route_to_reverse = RouteDatabase.GetRouteAsync(vh.Id).Result;
                        GpxClass gpx_to_reverse   = GpxClass.FromXml(route_to_reverse.GPX);
                        gpx_to_reverse.Routes[0].rtept.Reverse();

                        //Reverse and save as new entry
                        route_to_reverse.Name        += " - reversed";
                        route_to_reverse.Description += " - reversed";
                        route_to_reverse.Id           = 0;
                        route_to_reverse.GPX          = gpx_to_reverse.ToXml();
                        RouteDatabase.SaveRouteAsync(route_to_reverse).Wait();

                        //Update RecycleView with new entry
                        int i = Fragment_gpx.mAdapter.mGpxData.Add(route_to_reverse);
                        Fragment_gpx.mAdapter.NotifyItemInserted(i);

                        break;

                    case Resource.Id.gpx_menu_exportgpx:
                        Log.Information($"Export route '{vh.Name.Text}'");

                        //Get the route
                        var      route_to_export = RouteDatabase.GetRouteAsync(vh.Id).Result;
                        GpxClass gpx_to_export   = GpxClass.FromXml(route_to_export.GPX);

                        /**/    //Ask user for name and folder
                        string gpxPath = Path.Combine(MainActivity.rootPath, "Exported -" + DateTime.Now.ToString("yyyy-MM-dd HH-mm") + ".gpx");
                        gpx_to_export.ToFile(gpxPath);

                        break;

                    case Resource.Id.gpx_menu_saveofflinemap:
                        Log.Information($"Download and save offline map '{vh.Name.Text}'");
                        Toast.MakeText(parent.Context, "save offline map " + vh.AdapterPosition.ToString(), ToastLength.Short).Show();
                        break;
                    }
                };

                popup.Show();
            };

            return(vh);
        }

        private void OnClick(int obj)
        {
            ItemClick?.Invoke(this, obj);
        }

        /*public static void MAdapter_ItemClick(object sender, int e)
         * {
         *  int gpxNum = e + 1;
         *  Toast.MakeText(MainActivity.mContext, "This is route/track number " + gpxNum, ToastLength.Short).Show();
         * }*/
    }
}
コード例 #15
0
        public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position)
        {
            if (position == 0)
            {
                QueueHeader holder = (QueueHeader)viewHolder;
                if (!holder.Shuffle.HasOnClickListeners)
                {
                    holder.Shuffle.Click += (sender, e) =>
                    {
                        Intent intent = new Intent(MainActivity.instance, typeof(MusicPlayer));
                        intent.SetAction("RandomizeQueue");
                        MainActivity.instance.StartService(intent);
                    };
                }

                if (MusicPlayer.repeat)
                {
                    holder.Repeat.SetColorFilter(Color.Argb(255, 21, 183, 237), PorterDuff.Mode.Multiply);
                }
                else
                {
                    holder.Repeat.ClearColorFilter();
                }

                if (!holder.Repeat.HasOnClickListeners)
                {
                    holder.Repeat.Click += (sender, e) => { MusicPlayer.Repeat(); }
                }
                ;

                if (!holder.More.HasOnClickListeners)
                {
                    holder.More.Click += (sender, e) =>
                    {
                        PopupMenu menu = new PopupMenu(MainActivity.instance, holder.More);
                        menu.Inflate(Resource.Menu.queue_more);
                        menu.SetOnMenuItemClickListener(Queue.instance);
                        menu.Show();
                    };
                }
                return;
            }

            if (position + 1 == ItemCount)
            {
                QueueFooter holder = (QueueFooter)viewHolder;
                holder.SwitchButton.Checked = MusicPlayer.useAutoPlay;

                if ((MusicPlayer.CurrentID() == ItemCount - 2 || MusicPlayer.CurrentID() == ItemCount - 3) && MusicPlayer.useAutoPlay)
                {
                    holder.Autoplay.Visibility = ViewStates.Visible;

                    if (!holder.ItemView.HasOnClickListeners)
                    {
                        holder.ItemView.Click += (sender, eventArg) =>
                        {
                            Intent intent = new Intent(MainActivity.instance, typeof(MusicPlayer));
                            intent.SetAction("Next");
                            MainActivity.instance.StartService(intent);
                        }
                    }
                    ;

                    if (MusicPlayer.autoPlay.Count > 0)
                    {
                        holder.RightIcon.Visibility = ViewStates.Visible;

                        Song ap = MusicPlayer.autoPlay[0];
                        holder.NextTitle.Text = ap.Title;

                        holder.NextTitle.SetTextColor(Color.White);
                        holder.NextTitle.SetBackgroundResource(Android.Resource.Color.Transparent);
                        if (ap.IsYt)
                        {
                            Picasso.With(MainActivity.instance).Load(ap.Album).Placeholder(Resource.Drawable.noAlbum).Transform(new RemoveBlackBorder(true)).Into(holder.NextAlbum);
                        }
                        else
                        {
                            var songCover       = Android.Net.Uri.Parse("content://media/external/audio/albumart");
                            var nextAlbumArtUri = ContentUris.WithAppendedId(songCover, ap.AlbumArt);

                            Picasso.With(MainActivity.instance).Load(nextAlbumArtUri).Placeholder(Resource.Drawable.noAlbum).Resize(400, 400).CenterCrop().Into(holder.NextAlbum);
                        }
                    }
                    else
                    {
                        int    count = new Random().Next(6, 15);
                        string title = "a";
                        while (count > 0)
                        {
                            title += "a";
                            count--;
                        }

                        holder.NextTitle.Text = title;
                        holder.NextTitle.SetTextColor(Color.Transparent);
                        holder.NextTitle.SetBackgroundResource(Resource.Color.background_material_dark);
                        holder.NextAlbum.SetImageResource(Resource.Color.background_material_dark);
                        holder.RightIcon.Visibility = ViewStates.Gone;
                    }
                }
                else
                {
                    holder.Autoplay.Visibility = ViewStates.Gone;
                }

                if (!holder.SwitchButton.HasOnClickListeners)
                {
                    holder.SwitchButton.Click += (sender, e) =>
                    {
                        MusicPlayer.useAutoPlay = !MusicPlayer.useAutoPlay;
                        NotifyItemChanged(ItemCount - 1, "UseAutoplay");

                        if (MusicPlayer.useAutoPlay)
                        {
                            MusicPlayer.Repeat(false);
                            if (MusicPlayer.autoPlay?.Count == 0)
                            {
                                MusicPlayer.instance.GenerateAutoPlay(false);
                            }
                        }
                        else
                        {
                            MusicPlayer.autoPlay.Clear();
                        }
                    };
                }
            }
            else
            {
                position--;
                SongHolder holder = (SongHolder)viewHolder;

                holder.reorder.SetColorFilter(Color.White);
                holder.Title.SetTextColor(Color.White);
                holder.youtubeIcon.SetColorFilter(Color.White);
                holder.reorder.Visibility = ViewStates.Visible;
                holder.more.Visibility    = ViewStates.Gone;
                holder.RightButtons.SetBackgroundResource(Resource.Drawable.darkLinear);
                int dp = MainActivity.instance.DpToPx(5);
                ((RelativeLayout.LayoutParams)holder.RightButtons.LayoutParameters).RightMargin = dp;
                holder.TextLayout.SetPadding(dp, 0, dp, 0);
                if (position == MusicPlayer.CurrentID())
                {
                    holder.status.Visibility = ViewStates.Visible;
                    holder.status.SetTextColor(MusicPlayer.isRunning ? Color.Argb(255, 244, 81, 30) : Color.Argb(255, 66, 165, 245));

                    string          status     = MusicPlayer.isRunning ? Queue.instance.GetString(Resource.String.playing) : Queue.instance.GetString(Resource.String.paused);
                    SpannableString statusText = new SpannableString(status);
                    statusText.SetSpan(new BackgroundColorSpan(Color.ParseColor("#8C000000")), 0, status.Length, SpanTypes.InclusiveInclusive);
                    holder.status.TextFormatted = statusText;
                }
                else
                {
                    holder.status.Visibility = ViewStates.Gone;
                }


                Song song = MusicPlayer.queue.Count <= position ? null : MusicPlayer.queue[position];
                if (song == null)
                {
                    if (holder.Title.Text.Length == 0)
                    {
                        holder.Title.Text = "aizquruhgqognbq";
                    }
                    if (holder.Artist.Text.Length == 0)
                    {
                        holder.Artist.Text = "ZJKGNZgzn";
                    }

                    holder.Title.SetTextColor(Color.Transparent);
                    holder.Title.SetBackgroundResource(Resource.Color.background_material_dark);
                    holder.Artist.SetTextColor(Color.Transparent);
                    holder.Artist.SetBackgroundResource(Resource.Color.background_material_dark);
                    holder.AlbumArt.SetImageResource(Resource.Color.background_material_dark);

                    MusicPlayer.RemotePlayer.MediaQueue.GetItemAtIndex(position);
                    return;
                }
                else
                {
                    holder.Title.SetBackgroundResource(0);
                    holder.Artist.SetBackgroundResource(0);
                }

                SpannableString titleText = new SpannableString(song.Title);
                titleText.SetSpan(new BackgroundColorSpan(Color.ParseColor("#8C000000")), 0, song.Title.Length, SpanTypes.InclusiveInclusive);
                holder.Title.TextFormatted = titleText;
                holder.Title.SetMaxLines(2);

                holder.Artist.Visibility = ViewStates.Gone;

                if (song.AlbumArt == -1 || song.IsYt)
                {
                    if (song.Album != null)
                    {
                        Picasso.With(Application.Context).Load(song.Album).Placeholder(Resource.Color.background_material_dark).Transform(new RemoveBlackBorder(true)).Into(holder.AlbumArt);
                    }
                    else
                    {
                        Picasso.With(Application.Context).Load(Resource.Color.background_material_dark).Transform(new RemoveBlackBorder(true)).Into(holder.AlbumArt);
                    }
                }
                else
                {
                    var songCover       = Android.Net.Uri.Parse("content://media/external/audio/albumart");
                    var songAlbumArtUri = ContentUris.WithAppendedId(songCover, song.AlbumArt);

                    Picasso.With(Application.Context).Load(songAlbumArtUri).Placeholder(Resource.Color.background_material_dark).Resize(400, 400).CenterCrop().Into(holder.AlbumArt);
                }

                if (song.IsLiveStream)
                {
                    holder.Live.Visibility = ViewStates.Visible;
                }
                else
                {
                    holder.Live.Visibility = ViewStates.Gone;
                }


                if (!holder.reorder.HasOnClickListeners)
                {
                    holder.reorder.Touch += (sender, e) =>
                    {
                        Queue.instance.itemTouchHelper.StartDrag(viewHolder);
                        MainActivity.instance.contentRefresh.Enabled = false;
                    };
                }

                if (song.IsParsed != true && song.IsYt)
                {
                    holder.youtubeIcon.SetImageResource(Resource.Drawable.needProcessing);
                    holder.youtubeIcon.Visibility = ViewStates.Visible;
                }
                else if (song.IsParsed == true && song.IsYt)
                {
                    holder.youtubeIcon.SetImageResource(Resource.Drawable.PublicIcon);
                    holder.youtubeIcon.Visibility = ViewStates.Visible;
                }
                else
                {
                    holder.youtubeIcon.Visibility = ViewStates.Gone;
                }
            }
        }
コード例 #16
0
ファイル: Groepscherm.cs プロジェクト: SansSkill/Introproject
        private void ShowPopupMenu(int itemPosition)
        {
            _participantsAdapter.SelectedItem = _participantsAdapter.Items[itemPosition];

            PopupMenu menu = new PopupMenu(this, _participantsRecyclerView.FindViewHolderForAdapterPosition(itemPosition).ItemView);
            menu.SetOnMenuItemClickListener(this);
            menu.SetOnDismissListener(this);
            menu.Inflate(Resource.Menu.ParticipantsPopup);
            menu.Show();
        }