Example #1
0
        private void ShowSortPopup(View sortAnchor)
        {
            var popup = new PopupMenu(this, sortAnchor);

            popup.MenuInflater.Inflate(Resource.Menu.idea_sort_menu, popup.Menu);
            popup.SetOnMenuItemClickListener(this);
            popup.Show();
        }
            public void OnClick(View v)
            {
                var popupMenu = new Android.Support.V7.Widget.PopupMenu(_context, v);

                popupMenu.Menu.Add(0, 0, 0, new Java.Lang.String(Mvx.Resolve <ILocalizationService>().GetLocalizableString(BasketConstants.RESX_NAME, "Basket_DeleteItem")));
                popupMenu.SetOnMenuItemClickListener(this);
                popupMenu.Show();
            }
        private void Adapter_OnMoreClicked(object sender, Alansa.Droid.Adapters.GenericViewHolder holder)
        {
            clickPos = holder.AdapterPosition;
            var anchor = holder.GetView <ImageView>("MoreVert");
            var popup  = new PopupMenu(this, anchor);

            popup.MenuInflater.Inflate(Resource.Menu.course_list_popup_menu, popup.Menu);
            popup.SetOnMenuItemClickListener(this);
            popup.Show();
        }
Example #4
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);
     }
 }
Example #5
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;
                }
            }
        }
Example #6
0
        private static void ShowPopupMenu(object sender, ListItemEventArgs args, RecyclerView rv, ContactFragment cf)
        {
            ListItemAdapter adapter = (ListItemAdapter) sender;
            adapter.SelectedItem = adapter.Items[args.Position];

            PopupMenu menu = new PopupMenu(cf.Activity, rv.FindViewHolderForAdapterPosition(args.Position).ItemView);
            menu.Menu.Add(0, 0, 0, "Remove this contact");
            menu.SetOnMenuItemClickListener(cf);
            menu.SetOnDismissListener(cf);
            menu.Show();
        }
Example #7
0
        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();
        }
        private static void ShowPopupMenu(object sender, ListItemEventArgs args, RecyclerView rv, AddContactsScherm acs)
        {
            ListItemAdapter adapter = (ListItemAdapter) sender;
            adapter.SelectedItem = adapter.Items[args.Position];

            PopupMenu menu = new PopupMenu(acs, rv.FindViewHolderForAdapterPosition(args.Position).ItemView);
            menu.Menu.Add(0, 0, 0, "Add this user");
            menu.SetOnMenuItemClickListener(acs);
            menu.SetOnDismissListener(acs);
            menu.Show();
        }