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 f12040951..8e5c9e9d2 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
@@ -2,6 +2,7 @@ package com.fongmi.android.tv.ui.dialog;
import android.app.Dialog;
import android.content.DialogInterface;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -66,4 +67,12 @@ public abstract class BaseDialog extends BottomSheetDialogFragment {
behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
behavior.setSkipCollapsed(true);
}
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && getDialog().getWindow() != null) {
+ getDialog().getWindow().setNavigationBarContrastEnforced(false);
+ }
+ }
}
diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Util.java b/app/src/main/java/com/fongmi/android/tv/utils/Util.java
index 15d244b6e..1315e61d0 100644
--- a/app/src/main/java/com/fongmi/android/tv/utils/Util.java
+++ b/app/src/main/java/com/fongmi/android/tv/utils/Util.java
@@ -15,11 +15,13 @@ import android.text.Html;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
-import android.view.WindowInsets;
-import android.view.WindowInsetsController;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
+import androidx.core.view.WindowCompat;
+import androidx.core.view.WindowInsetsCompat;
+import androidx.core.view.WindowInsetsControllerCompat;
+
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.BuildConfig;
import com.fongmi.android.tv.R;
@@ -44,13 +46,9 @@ public class Util {
}
public static void hideSystemUI(Window window) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
- window.setDecorFitsSystemWindows(false);
- window.getInsetsController().hide(WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars());
- window.getInsetsController().setSystemBarsBehavior(WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
- } else {
- window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
- }
+ WindowInsetsControllerCompat insets = WindowCompat.getInsetsController(window, window.getDecorView());
+ insets.setSystemBarsBehavior(WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
+ insets.hide(WindowInsetsCompat.Type.systemBars());
}
public static void showSystemUI(Activity activity) {
@@ -58,13 +56,7 @@ public class Util {
}
public static void showSystemUI(Window window) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
- window.setDecorFitsSystemWindows(true);
- window.getInsetsController().show(WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars());
- window.getInsetsController().setSystemBarsBehavior(WindowInsetsController.BEHAVIOR_DEFAULT);
- } else {
- window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
- }
+ WindowCompat.getInsetsController(window, window.getDecorView()).show(WindowInsetsCompat.Type.systemBars());
}
public static void showKeyboard(View view) {
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
index 0834b4fb8..696965a0f 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
@@ -8,7 +8,6 @@ import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.graphics.drawable.Drawable;
import android.net.Uri;
-import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.text.SpannableStringBuilder;
@@ -25,6 +24,9 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowCompat;
+import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.Observer;
@@ -254,11 +256,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
return mBinding.getRoot().getTag().equals("port");
}
- @Override
- protected boolean transparent() {
- return false;
- }
-
@Override
protected ViewBinding getBinding() {
return mBinding = ActivityVideoBinding.inflate(getLayoutInflater());
@@ -380,6 +377,14 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.control.action.danmaku.setVisibility(Setting.isDanmakuLoad() ? View.VISIBLE : View.GONE);
mBinding.control.action.reset.setText(ResUtil.getStringArray(R.array.select_reset)[Setting.getReset()]);
mBinding.video.addOnLayoutChangeListener((view, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> mPiP.update(this, view));
+ WindowCompat.getInsetsController(getWindow(), getWindow().getDecorView()).setAppearanceLightStatusBars(false);
+ ViewCompat.setOnApplyWindowInsetsListener(mBinding.getRoot(), (v, windowInsets) -> {
+ int top = windowInsets.getInsets(WindowInsetsCompat.Type.statusBars()).top;
+ ViewGroup.LayoutParams lp = mBinding.statusBar.getLayoutParams();
+ lp.height = top;
+ mBinding.statusBar.setLayoutParams(lp);
+ return windowInsets;
+ });
}
private void setVideoView(boolean isInPictureInPictureMode) {
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java
index 1f6696262..1d246bef6 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java
@@ -51,10 +51,6 @@ public abstract class BaseActivity extends AppCompatActivity {
return this;
}
- protected boolean transparent() {
- return true;
- }
-
protected boolean customWall() {
return true;
}
diff --git a/app/src/mobile/res/layout-sw600dp/activity_video.xml b/app/src/mobile/res/layout-sw600dp/activity_video.xml
index 64a56450d..55b8bd516 100644
--- a/app/src/mobile/res/layout-sw600dp/activity_video.xml
+++ b/app/src/mobile/res/layout-sw600dp/activity_video.xml
@@ -11,10 +11,17 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
+
+
+
+
diff --git a/app/src/mobile/res/values/styles.xml b/app/src/mobile/res/values/styles.xml
index 6742815c1..f2d40e886 100644
--- a/app/src/mobile/res/values/styles.xml
+++ b/app/src/mobile/res/values/styles.xml
@@ -39,6 +39,8 @@
- @color/primaryDark
- false
- false
+ - @color/transparent
+ - @color/transparent
- @style/ModalBottomSheetDialog