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); }
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(); }; }
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; }
/// <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(); }
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(); }
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(); }
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(); }; } }
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 { } }
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(); }
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); } }
//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(); }
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(); }
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 { } }
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(); * }*/ } }
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; } } }
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(); }