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); } }
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)); } }