pull/594/head
jhengazuki 3 months ago
parent f78fff236f
commit f143a27d28
  1. 9
      app/src/main/java/com/fongmi/android/tv/ui/dialog/BaseDialog.java
  2. 24
      app/src/main/java/com/fongmi/android/tv/utils/Util.java
  3. 17
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  4. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java
  5. 9
      app/src/mobile/res/layout-sw600dp/activity_video.xml
  6. 7
      app/src/mobile/res/layout/activity_video.xml
  7. 2
      app/src/mobile/res/values/styles.xml

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

@ -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) {

@ -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) {

@ -51,10 +51,6 @@ public abstract class BaseActivity extends AppCompatActivity {
return this;
}
protected boolean transparent() {
return true;
}
protected boolean customWall() {
return true;
}

@ -11,10 +11,17 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:id="@+id/statusBar"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@color/black" />
<FrameLayout
android:id="@+id/video"
android:layout_width="400dp"
android:layout_height="225dp"
android:layout_below="@+id/statusBar"
android:layout_margin="16dp"
android:background="@color/black"
android:clickable="true"
@ -52,7 +59,7 @@
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_alignTop="@+id/video"
android:layout_marginEnd="16dp"
android:layout_toEndOf="@+id/video"
android:maxLines="2"

@ -6,10 +6,17 @@
android:layout_height="match_parent"
android:tag="port">
<View
android:id="@+id/statusBar"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@color/black" />
<FrameLayout
android:id="@+id/video"
android:layout_width="match_parent"
android:layout_height="220dp"
android:layout_below="@+id/statusBar"
android:background="@color/black"
android:clickable="true"
android:focusable="true">

@ -39,6 +39,8 @@
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="android:windowIsFloating">false</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:statusBarColor">@color/transparent</item>
<item name="android:navigationBarColor">@color/transparent</item>
<item name="bottomSheetStyle">@style/ModalBottomSheetDialog</item>
</style>

Loading…
Cancel
Save