diff --git a/app/build.gradle b/app/build.gradle index 664f22582..0243f2eb0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,7 +14,7 @@ android { //noinspection ExpiredTargetSdkVersion targetSdk 28 versionCode 258 - versionName "0904" + versionName "0905" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] diff --git a/app/src/main/java/com/fongmi/android/tv/ui/dialog/BaseDialog.java b/app/src/main/java/com/fongmi/android/tv/ui/dialog/BaseDialog.java index 01fc5e4bf..f12040951 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/dialog/BaseDialog.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/dialog/BaseDialog.java @@ -13,6 +13,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.viewbinding.ViewBinding; +import com.fongmi.android.tv.R; +import com.fongmi.android.tv.utils.ResUtil; import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.bottomsheet.BottomSheetDialog; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; @@ -39,6 +41,15 @@ public abstract class BaseDialog extends BottomSheetDialogFragment { protected void initEvent() { } + protected boolean transparent() { + return false; + } + + protected void setDimAmount(float amount) { + getDialog().getWindow().setDimAmount(amount); + getDialog().getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); + } + @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { @@ -50,6 +61,7 @@ public abstract class BaseDialog extends BottomSheetDialogFragment { private void setBehavior(BottomSheetDialog dialog) { FrameLayout bottomSheet = dialog.findViewById(com.google.android.material.R.id.design_bottom_sheet); + if (transparent()) bottomSheet.setBackgroundColor(ResUtil.getColor(R.color.transparent)); BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet); behavior.setState(BottomSheetBehavior.STATE_EXPANDED); behavior.setSkipCollapsed(true); diff --git a/app/src/main/java/com/fongmi/android/tv/ui/dialog/SubtitleDialog.java b/app/src/main/java/com/fongmi/android/tv/ui/dialog/SubtitleDialog.java index 3528e4772..0cc1ccf8d 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/dialog/SubtitleDialog.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/dialog/SubtitleDialog.java @@ -3,6 +3,7 @@ package com.fongmi.android.tv.ui.dialog; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -14,6 +15,7 @@ import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.Setting; import com.fongmi.android.tv.databinding.DialogSubtitleBinding; import com.fongmi.android.tv.utils.ResUtil; +import com.github.bassaer.library.MDColor; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; public final class SubtitleDialog extends BaseDialog { @@ -41,11 +43,22 @@ public final class SubtitleDialog extends BaseDialog { show(activity.getSupportFragmentManager(), null); } + @Override + protected boolean transparent() { + return full; + } + @Override protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) { return binding = DialogSubtitleBinding.inflate(inflater, container, false); } + @Override + protected void initView() { + int count = binding.getRoot().getChildCount(); + if (full) for (int i = 0; i < count; i++) ((ImageView) binding.getRoot().getChildAt(i)).getDrawable().setTint(MDColor.WHITE); + } + @Override protected void initEvent() { binding.up.setOnClickListener(this::onUp); @@ -85,6 +98,7 @@ public final class SubtitleDialog extends BaseDialog { @Override public void onResume() { super.onResume(); + if (full) setDimAmount(0.5f); getDialog().getWindow().setLayout(ResUtil.dp2px(216), -1); } } \ No newline at end of file diff --git a/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java index a1a510904..a4de1f2bd 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java @@ -16,6 +16,7 @@ import android.view.animation.AnimationUtils; import androidx.annotation.AnimRes; import androidx.annotation.ArrayRes; +import androidx.annotation.ColorRes; import androidx.annotation.DrawableRes; import androidx.annotation.StringRes; import androidx.core.content.ContextCompat; @@ -112,6 +113,10 @@ public class ResUtil { return ContextCompat.getDrawable(App.get(), resId); } + public static int getColor(@ColorRes int resId) { + return ContextCompat.getColor(App.get(), resId); + } + public static Animation getAnim(@AnimRes int resId) { return AnimationUtils.loadAnimation(App.get(), resId); } diff --git a/app/src/mobile/res/layout/dialog_subtitle.xml b/app/src/mobile/res/layout/dialog_subtitle.xml index 5265dacc7..cf27d4be2 100644 --- a/app/src/mobile/res/layout/dialog_subtitle.xml +++ b/app/src/mobile/res/layout/dialog_subtitle.xml @@ -3,6 +3,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" + android:gravity="center" android:padding="8dp">