Пример #1
0
 public override void OnStateChanged(View bottomSheet, int newState)
 {
     if (newState == BottomSheetBehavior.StateExpanded)
     {
         sheet.Alpha              = 1;
         playerContainer.Alpha    = 1;
         smallPlayer.Alpha        = 0;
         smallPlayer.Visibility   = ViewStates.Gone;
         bottomSheet.TranslationY = (int)(56 * context.Resources.DisplayMetrics.Density + 0.5f);
         sheet.TranslationY       = 0;
         snackBar.TranslationY    = (int)(50 * context.Resources.DisplayMetrics.Density + 0.5f);
         movement = SheetMovement.Unknow;
     }
     else if (newState == BottomSheetBehavior.StateCollapsed)
     {
         movement = SheetMovement.Unknow;
     }
     else if (newState == BottomSheetBehavior.StateHidden)
     {
         movement = SheetMovement.Unknow;
         if (!MainActivity.instance.SkipStop)
         {
             Intent intent = new Intent(context, typeof(MusicPlayer));
             intent.SetAction("Stop");
             intent.PutExtra("saveQueue", false);
             context.StartService(intent);
         }
         MainActivity.instance.SkipStop = false;
         sheet.Alpha = 1;
         MusicPlayer.instance?.ChangeVolume(MusicPlayer.instance.volume);
     }
 }
Пример #2
0
        public override void OnSlide(View bottomSheet, float slideOffset)
        {
            smallPlayer.Visibility = ViewStates.Visible;

            if (movement == SheetMovement.Unknow)
            {
                if (slideOffset > 0)
                {
                    movement = SheetMovement.Expanding;
                }
                else if (slideOffset < 0)
                {
                    movement = SheetMovement.Hidding;
                }
            }

            if (movement == SheetMovement.Expanding && 0 <= slideOffset && slideOffset <= 1)
            {
                sheet.Alpha             = 1;
                bottomView.TranslationY = (int)((56 * context.Resources.DisplayMetrics.Density + 0.5f) * slideOffset);
                sheet.TranslationY      = -(int)((56 * context.Resources.DisplayMetrics.Density + 0.5f) * (1 - slideOffset));

                playerContainer.Alpha = Math.Max(0, (slideOffset - 0.5f) * 2.5f);
                smallPlayer.Alpha     = Math.Max(0, 1 - slideOffset * 2);
                snackBar.TranslationY = (int)((50 * context.Resources.DisplayMetrics.Density + 0.5f) * slideOffset);

                if (!Refreshed && slideOffset > .3)
                {
                    Refreshed = true;
                    Player.instance.RefreshPlayer();
                }
                else if (slideOffset < .3)
                {
                    Refreshed = false;
                }
            }
            else if (movement == SheetMovement.Hidding && -1 <= slideOffset && slideOffset < 0)
            {
                sheet.Alpha = 1 + slideOffset;
                MusicPlayer.instance?.ChangeVolume(MusicPlayer.instance.volume * (1 + slideOffset));
            }
        }