Use edge to edge

pull/594/head
jhengazuki 3 months ago
parent c34129aa14
commit b07d0eb092
  1. 3
      app/src/mobile/AndroidManifest.xml
  2. 10
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  3. 1
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/HistoryAdapter.java
  4. 15
      app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java
  5. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/dialog/EpisodeListDialog.java
  6. 1
      app/src/mobile/res/values-v27/styles.xml
  7. 9
      app/src/mobile/res/values-v35/styles.xml
  8. 17
      app/src/mobile/res/values/styles.xml

@ -112,8 +112,7 @@
android:launchMode="singleTop"
android:resizeableActivity="true"
android:screenOrientation="fullUser"
android:supportsPictureInPicture="true"
android:theme="@style/Theme.Video" />
android:supportsPictureInPicture="true" />
<receiver
android:name=".receiver.ShortcutReceiver"

@ -24,6 +24,9 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.Observer;
@ -379,6 +382,13 @@ 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));
ViewCompat.setOnApplyWindowInsetsListener(mBinding.video, (v, insets) -> {
Insets sysBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
lp.topMargin = sysBars.top;
v.setLayoutParams(lp);
return insets;
});
}
private void setVideoView(boolean isInPictureInPictureMode) {

@ -47,6 +47,7 @@ public class HistoryAdapter extends BaseDiffAdapter<History, HistoryAdapter.View
@Override
public void clear() {
super.clear();
setDelete(false);
History.delete(VodConfig.getCid());
}

@ -9,13 +9,12 @@ import android.os.Bundle;
import android.view.DisplayCutout;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.window.OnBackInvokedCallback;
import android.window.OnBackInvokedDispatcher;
import androidx.activity.EdgeToEdge;
import androidx.activity.OnBackPressedCallback;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.view.WindowCompat;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.ui.custom.CustomWallView;
@ -34,7 +33,7 @@ public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (transparent()) setTransparent();
enableEdgeToEdge();
setContentView(getBinding().getRoot());
EventBus.getDefault().register(this);
initView(savedInstanceState);
@ -108,12 +107,12 @@ public abstract class BaseActivity extends AppCompatActivity {
}
}
private void setTransparent() {
getWindow().setStatusBarColor(Color.TRANSPARENT);
private void enableEdgeToEdge() {
EdgeToEdge.enable(this);
getWindow().setNavigationBarColor(Color.TRANSPARENT);
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
getWindow().setNavigationBarContrastEnforced(false);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)

@ -14,7 +14,6 @@ import com.fongmi.android.tv.model.SiteViewModel;
import com.fongmi.android.tv.ui.adapter.EpisodeAdapter;
import com.fongmi.android.tv.ui.base.ViewType;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Util;
import com.google.android.material.sidesheet.SideSheetDialog;
import java.util.List;
@ -52,7 +51,6 @@ public class EpisodeListDialog implements EpisodeAdapter.OnClickListener {
dialog.setContentView(binding.getRoot());
dialog.getBehavior().setDraggable(false);
dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
Util.hideSystemUI(dialog.getWindow());
dialog.getWindow().setDimAmount(0);
dialog.show();
setWidth();

@ -1,7 +1,6 @@
<resources>
<style name="Theme.App" parent="Theme.Base">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style>

@ -1,9 +0,0 @@
<resources>
<style name="Theme.App" parent="Theme.Base">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style>
</resources>

@ -1,9 +1,11 @@
<resources>
<style name="Theme.Base" parent="Theme.Material3.DayNight.NoActionBar">
<item name="colorAccent">@color/accent</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="colorAccent">@color/accent</item>
<item name="android:statusBarColor">@color/transparent</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:navigationBarColor">@color/transparent</item>
<item name="bottomSheetDialogTheme">@style/BottomSheetDialog</item>
</style>
@ -15,14 +17,7 @@
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_launcher_foreground</item>
</style>
<style name="Theme.App" parent="Theme.Base">
<item name="android:windowTranslucentStatus">true</item>
</style>
<style name="Theme.Video" parent="Theme.App">
<item name="android:statusBarColor">@color/black</item>
<item name="android:windowTranslucentStatus">false</item>
</style>
<style name="Theme.App" parent="Theme.Base" />
<style name="Control" />
@ -40,11 +35,11 @@
</style>
<style name="BottomSheetDialog" parent="Theme.Material3.DayNight.BottomSheetDialog">
<item name="colorAccent">@color/accent</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="colorAccent">@color/accent</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowIsFloating">false</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="bottomSheetStyle">@style/ModalBottomSheetDialog</item>
</style>

Loading…
Cancel
Save