PlayerAndroid/app/src/main/java/code/name/monkey/retromusic/views/RoundedBottomSheetDialogFra...

81 lines
3.2 KiB
Java
Raw Normal View History

2018-07-27 13:07:33 +00:00
package code.name.monkey.retromusic.views;
import android.annotation.SuppressLint;
import android.app.Dialog;
2018-09-23 10:04:43 +00:00
import android.os.Build;
2018-07-27 13:07:33 +00:00
import android.os.Bundle;
2018-09-23 10:04:43 +00:00
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.Window;
import android.widget.FrameLayout;
2018-08-08 08:03:38 +00:00
2018-09-23 10:04:43 +00:00
import com.google.android.material.bottomsheet.BottomSheetBehavior;
2018-08-30 09:29:30 +00:00
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import androidx.annotation.NonNull;
2018-09-09 19:44:46 +00:00
import androidx.annotation.Nullable;
2018-08-08 08:03:38 +00:00
import code.name.monkey.appthemehelper.ThemeStore;
2018-09-23 10:04:43 +00:00
import code.name.monkey.appthemehelper.util.ATHUtil;
2018-08-08 08:03:38 +00:00
import code.name.monkey.appthemehelper.util.ColorUtil;
2018-07-27 13:07:33 +00:00
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.util.PreferenceUtil;
/**
* Created by yu on 2016/11/10.
*/
@SuppressLint("RestrictedApi")
public class RoundedBottomSheetDialogFragment extends BottomSheetDialogFragment {
2018-08-08 08:03:38 +00:00
@Override
public int getTheme() {
//noinspection ConstantConditions
if (PreferenceUtil.getInstance(getContext()).getGeneralTheme() == R.style.Theme_RetroMusic_Light) {
return R.style.BottomSheetDialogTheme;
} else if (PreferenceUtil.getInstance(getContext()).getGeneralTheme() == R.style.Theme_RetroMusic_Color) {
int color = ThemeStore.primaryColor(getContext());
if (ColorUtil.isColorLight(color)) {
return R.style.BottomSheetDialogTheme;
} else {
return R.style.BottomSheetDialogThemeDark;
}
} else {
return R.style.BottomSheetDialogTheme;
}
}
2018-07-30 17:24:37 +00:00
2018-09-23 10:04:43 +00:00
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
BottomSheetDialog dialog = (BottomSheetDialog) getDialog();
FrameLayout bottomSheet = (FrameLayout) dialog.findViewById(R.id.design_bottom_sheet);
BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet);
behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
//behavior.setPeekHeight(0);
}
});
}
2018-08-08 08:03:38 +00:00
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
//noinspection ConstantConditions
return new BottomSheetDialog(getContext(), getTheme());
2018-07-27 13:07:33 +00:00
}
2018-09-23 10:04:43 +00:00
@Override
public void onStart() {
super.onStart();
if (getDialog() != null && getDialog().getWindow() != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Window window = getDialog().getWindow();
window.findViewById(com.google.android.material.R.id.container).setFitsSystemWindows(false);
// dark navigation bar icons
View decorView = window.getDecorView();
if (!ATHUtil.isWindowBackgroundDark(getContext()))
decorView.setSystemUiVisibility(decorView.getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
}
}
2018-07-27 13:07:33 +00:00
}