diff --git a/app/build.gradle b/app/build.gradle index 421e7d3b9..19e8f75ef 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,7 +15,7 @@ android { applicationId "InfinityLoop1309.NewPipeEnhanced" minSdk 21 //noinspection ExpiredTargetSdkVersion - targetSdk 33 + targetSdk 37 versionCode 1100 versionName "5.1.1" multiDexEnabled true diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java index d0caeb87d..bf966e5ff 100644 --- a/app/src/main/java/org/schabi/newpipe/App.java +++ b/app/src/main/java/org/schabi/newpipe/App.java @@ -104,6 +104,7 @@ public void onChanged(Integer connectionState) { // Initialize settings first because others inits can use its values NewPipeSettings.initSettings(this); + StatusBarHelper.init(this); // Initialize Android Auto component state based on preference DeviceUtils.updateAndroidAutoComponentState(this); diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index 7c6102c8c..375aa3e25 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -152,6 +152,9 @@ protected void onCreate(final Bundle savedInstanceState) { toolbarLayoutBinding = mainBinding.toolbarLayout; setContentView(mainBinding.getRoot()); + WindowInsetsHelper.applyStatusBarInsets(this, toolbarLayoutBinding.toolbar, + mainBinding.fragmentHolder); + if (getSupportFragmentManager().getBackStackEntryCount() == 0) { initFragments(); } diff --git a/app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt b/app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt index ff3469dcd..4abab8570 100644 --- a/app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt +++ b/app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt @@ -17,6 +17,7 @@ import org.schabi.newpipe.databinding.ActivityAboutBinding import org.schabi.newpipe.databinding.FragmentAboutBinding import org.schabi.newpipe.util.Localization import org.schabi.newpipe.util.ThemeHelper +import org.schabi.newpipe.util.WindowInsetsHelper import org.schabi.newpipe.util.external_communication.ShareUtils class AboutActivity : AppCompatActivity() { @@ -30,6 +31,8 @@ class AboutActivity : AppCompatActivity() { val aboutBinding = ActivityAboutBinding.inflate(layoutInflater) setContentView(aboutBinding.root) setSupportActionBar(aboutBinding.aboutToolbar) + + WindowInsetsHelper.applyStatusBarInsets(this, aboutBinding.aboutToolbar) supportActionBar?.setDisplayHomeAsUpEnabled(true) // Create the adapter that will return a fragment for each of the three diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java b/app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java index 37eefed96..61bc32061 100644 --- a/app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java +++ b/app/src/main/java/org/schabi/newpipe/download/DownloadActivity.java @@ -5,6 +5,7 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; +import android.view.ViewGroup; import android.view.ViewTreeObserver; import androidx.appcompat.app.ActionBar; @@ -15,6 +16,7 @@ import org.schabi.newpipe.databinding.ActivityDownloaderBinding; import org.schabi.newpipe.util.DeviceUtils; import org.schabi.newpipe.util.ThemeHelper; +import org.schabi.newpipe.util.WindowInsetsHelper; import org.schabi.newpipe.views.FocusOverlayView; import us.shandian.giga.service.DownloadManagerService; @@ -44,6 +46,8 @@ protected void onCreate(final Bundle savedInstanceState) { setSupportActionBar(downloaderBinding.toolbarLayout.toolbar); + WindowInsetsHelper.applyStatusBarInsets(this, downloaderBinding.toolbarLayout.toolbar); + final ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); diff --git a/app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java b/app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java index 8497da9e0..db1e21769 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java +++ b/app/src/main/java/org/schabi/newpipe/error/ErrorActivity.java @@ -13,6 +13,7 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; +import android.view.ViewGroup; import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; @@ -27,6 +28,7 @@ import org.schabi.newpipe.util.ErrorMatcher; import org.schabi.newpipe.util.Localization; import org.schabi.newpipe.util.ThemeHelper; +import org.schabi.newpipe.util.WindowInsetsHelper; import org.schabi.newpipe.util.external_communication.ShareUtils; import org.schabi.newpipe.util.utils; @@ -103,6 +105,10 @@ protected void onCreate(final Bundle savedInstanceState) { setSupportActionBar(activityErrorBinding.toolbarLayout.toolbar); + WindowInsetsHelper.applyStatusBarInsets(this, + activityErrorBinding.toolbarLayout.toolbar, + activityErrorBinding.scrollView); + final ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); diff --git a/app/src/main/java/org/schabi/newpipe/error/ReCaptchaActivity.java b/app/src/main/java/org/schabi/newpipe/error/ReCaptchaActivity.java index bee9e6395..753bcfdb5 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ReCaptchaActivity.java +++ b/app/src/main/java/org/schabi/newpipe/error/ReCaptchaActivity.java @@ -8,6 +8,7 @@ import android.util.Log; import android.view.Menu; import android.view.MenuItem; +import android.view.ViewGroup; import android.webkit.CookieManager; import android.webkit.WebSettings; import android.webkit.WebView; @@ -25,6 +26,7 @@ import org.schabi.newpipe.MainActivity; import org.schabi.newpipe.R; import org.schabi.newpipe.util.ThemeHelper; +import org.schabi.newpipe.util.WindowInsetsHelper; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; @@ -77,6 +79,9 @@ protected void onCreate(final Bundle savedInstanceState) { setContentView(recaptchaBinding.getRoot()); setSupportActionBar(recaptchaBinding.toolbar); + WindowInsetsHelper.applyStatusBarInsets(this, recaptchaBinding.toolbar, + recaptchaBinding.reCaptchaWebView); + final String url = sanitizeRecaptchaUrl(getIntent().getStringExtra(RECAPTCHA_URL_EXTRA)); // set return to Cancel by default setResult(RESULT_CANCELED); diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index 63835ed6e..91e003134 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -42,6 +42,8 @@ import androidx.appcompat.widget.Toolbar; import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.core.content.ContextCompat; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.preference.PreferenceManager; @@ -222,6 +224,7 @@ private void onSharedPreferencesChanged(final SharedPreferences sharedPreference private List sortedVideoStreams; private int selectedVideoStreamIndex = -1; + private int statusBarInset; private BottomSheetBehavior bottomSheetBehavior; private BroadcastReceiver broadcastReceiver; @@ -805,6 +808,18 @@ protected void initListeners() { }); setupBottomPlayer(); + final View bottomSheetLayout = activity.findViewById(R.id.fragment_player_holder); + ViewCompat.setOnApplyWindowInsetsListener(bottomSheetLayout, (v, insets) -> { + final int statusBarHeight = insets.getInsets( + WindowInsetsCompat.Type.statusBars()).top; + statusBarInset = insets.getInsetsIgnoringVisibility( + WindowInsetsCompat.Type.statusBars()).top; + v.setPadding(v.getPaddingLeft(), statusBarHeight, + v.getPaddingRight(), v.getPaddingBottom()); + updateBottomSheetPeekHeight(); + return insets; + }); + ViewCompat.requestApplyInsets(bottomSheetLayout); if (!playerHolder.isBound()) { setHeightThumbnail(); } else { @@ -2265,6 +2280,8 @@ public void onFullscreenStateChanged(final boolean fullscreen) { scrollToTop(); addVideoPlayerView(); + final View bottomSheetLayout = requireActivity().findViewById(R.id.fragment_player_holder); + ViewCompat.requestApplyInsets(bottomSheetLayout); } @Override @@ -2587,6 +2604,13 @@ private void manageSpaceAtTheBottom(final boolean showMore) { newBottomPadding); } + private void updateBottomSheetPeekHeight() { + final int peekHeight = getResources().getDimensionPixelSize(R.dimen.mini_player_height) + + statusBarInset; + bottomSheetBehavior.setPeekHeight(bottomSheetState == BottomSheetBehavior.STATE_HIDDEN + ? 0 : peekHeight); + } + private void setupBottomPlayer() { final CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) binding.appBarLayout.getLayoutParams(); @@ -2595,10 +2619,9 @@ private void setupBottomPlayer() { final FrameLayout bottomSheetLayout = activity.findViewById(R.id.fragment_player_holder); bottomSheetBehavior = BottomSheetBehavior.from(bottomSheetLayout); bottomSheetBehavior.setState(bottomSheetState); - final int peekHeight = getResources().getDimensionPixelSize(R.dimen.mini_player_height); if (bottomSheetState != BottomSheetBehavior.STATE_HIDDEN) { manageSpaceAtTheBottom(false); - bottomSheetBehavior.setPeekHeight(peekHeight); + updateBottomSheetPeekHeight(); if (bottomSheetState == BottomSheetBehavior.STATE_COLLAPSED) { binding.overlayLayout.setAlpha(MAX_OVERLAY_ALPHA); } else if (bottomSheetState == BottomSheetBehavior.STATE_EXPANDED) { @@ -2626,7 +2649,7 @@ public void onStateChanged(@NonNull final View bottomSheet, final int newState) moveFocusToMainFragment(false); manageSpaceAtTheBottom(false); - bottomSheetBehavior.setPeekHeight(peekHeight); + updateBottomSheetPeekHeight(); // Disable click because overlay buttons located on top of buttons // from the player setOverlayElementsClickable(false); @@ -2652,7 +2675,7 @@ && isPlayerAvailable() moveFocusToMainFragment(true); manageSpaceAtTheBottom(false); - bottomSheetBehavior.setPeekHeight(peekHeight); + updateBottomSheetPeekHeight(); // Re-enable clicks setOverlayElementsClickable(true); diff --git a/app/src/main/java/org/schabi/newpipe/player/PlayQueueActivity.java b/app/src/main/java/org/schabi/newpipe/player/PlayQueueActivity.java index b9fba40c6..be48d2598 100644 --- a/app/src/main/java/org/schabi/newpipe/player/PlayQueueActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/PlayQueueActivity.java @@ -9,6 +9,7 @@ import android.os.IBinder; import android.provider.Settings; import android.util.Log; +import android.util.TypedValue; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -17,7 +18,11 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; import androidx.recyclerview.widget.ItemTouchHelper; + +import com.google.android.material.appbar.AppBarLayout; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -76,6 +81,37 @@ protected void onCreate(final Bundle savedInstanceState) { setContentView(queueControlBinding.getRoot()); setSupportActionBar(queueControlBinding.toolbar); + + queueControlBinding.appbar.setStatusBarForeground(null); + getWindow().setStatusBarColor(android.graphics.Color.TRANSPARENT); + + WindowInsetsHelper.applyStatusBarInsets(this, queueControlBinding.toolbar); + + ViewCompat.setOnApplyWindowInsetsListener(queueControlBinding.getRoot(), (v, insets) -> { + final int navBarHeight = insets.getInsets( + WindowInsetsCompat.Type.navigationBars()).bottom; + final int twelveDp = (int) (12 * getResources() + .getDisplayMetrics().density + 0.5f); + + if (queueControlBinding.playbackControls != null) { + final ViewGroup.MarginLayoutParams controlsParams = + (ViewGroup.MarginLayoutParams) queueControlBinding + .playbackControls.getLayoutParams(); + controlsParams.bottomMargin = twelveDp + navBarHeight; + queueControlBinding.playbackControls.setLayoutParams(controlsParams); + } + + if (queueControlBinding.playbackControlsBottom != null) { + queueControlBinding.playbackControlsBottom.setPadding( + queueControlBinding.playbackControlsBottom.getPaddingLeft(), + queueControlBinding.playbackControlsBottom.getPaddingTop(), + queueControlBinding.playbackControlsBottom.getPaddingRight(), + navBarHeight); + } + + return insets; + }); + if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(R.string.title_activity_play_queue); diff --git a/app/src/main/java/org/schabi/newpipe/player/Player.java b/app/src/main/java/org/schabi/newpipe/player/Player.java index 23e803fee..b57208406 100644 --- a/app/src/main/java/org/schabi/newpipe/player/Player.java +++ b/app/src/main/java/org/schabi/newpipe/player/Player.java @@ -492,6 +492,7 @@ public void setupFromView(@NonNull final PlayerBinding playerBinding) { private void initViews(@NonNull final PlayerBinding playerBinding) { binding = playerBinding; + binding.playbackControlRoot.setFitsSystemWindows(isFullscreen); setupSubtitleView(); binding.resizeTextView @@ -4638,6 +4639,7 @@ public void toggleFullscreen() { } isFullscreen = !isFullscreen; + binding.playbackControlRoot.setFitsSystemWindows(isFullscreen); if (!isFullscreen) { // Apply window insets because Android will not do it when orientation changes // from landscape to portrait (open vertical video to reproduce) diff --git a/app/src/main/java/org/schabi/newpipe/settings/BaseFilterListActivity.java b/app/src/main/java/org/schabi/newpipe/settings/BaseFilterListActivity.java index 5c1b3749b..5b08f6d58 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/BaseFilterListActivity.java +++ b/app/src/main/java/org/schabi/newpipe/settings/BaseFilterListActivity.java @@ -12,6 +12,7 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.SearchView; +import androidx.appcompat.widget.Toolbar; import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -23,6 +24,7 @@ import org.schabi.newpipe.R; import org.schabi.newpipe.util.ServiceHelper; import org.schabi.newpipe.util.ThemeHelper; +import org.schabi.newpipe.util.WindowInsetsHelper; import java.util.ArrayList; import java.util.HashSet; @@ -47,7 +49,10 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_filter_list); - setSupportActionBar(findViewById(R.id.toolbar)); + final Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + WindowInsetsHelper.applyStatusBarInsets(this, toolbar); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(getActivityTitle()); diff --git a/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java b/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java index 3ff93d79c..65f72b66f 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java @@ -9,6 +9,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.view.ViewGroup; import android.widget.EditText; import androidx.annotation.IdRes; @@ -34,6 +35,7 @@ import org.schabi.newpipe.settings.preferencesearch.PreferenceSearchResultListener; import org.schabi.newpipe.settings.preferencesearch.PreferenceSearcher; import org.schabi.newpipe.util.DeviceUtils; +import org.schabi.newpipe.util.WindowInsetsHelper; import org.schabi.newpipe.util.KeyboardUtil; import org.schabi.newpipe.util.ReleaseVersionUtil; import org.schabi.newpipe.util.ThemeHelper; @@ -101,6 +103,10 @@ protected void onCreate(final Bundle savedInstanceBundle) { setSupportActionBar(settingsLayoutBinding.settingsToolbarLayout.toolbar); + WindowInsetsHelper.applyStatusBarInsets(this, + settingsLayoutBinding.settingsToolbarLayout.toolbar, + settingsLayoutBinding.settingsFragmentHolder); + if (restored) { // Restore state if (this.wasSearchActive) { diff --git a/app/src/main/java/org/schabi/newpipe/util/StatusBarHelper.java b/app/src/main/java/org/schabi/newpipe/util/StatusBarHelper.java new file mode 100644 index 000000000..bafdf56e0 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/util/StatusBarHelper.java @@ -0,0 +1,43 @@ +package org.schabi.newpipe.util; + +import android.content.Context; +import android.content.res.Configuration; +import android.content.res.Resources; + +import androidx.annotation.NonNull; + +public final class StatusBarHelper { + private static int portraitHeight; + private static int landscapeHeight; + + private StatusBarHelper() { + } + + public static void init(@NonNull final Context context) { + final Resources resources = context.getResources(); + portraitHeight = getInternalDimensionPixelSize(resources, "status_bar_height_portrait"); + landscapeHeight = getInternalDimensionPixelSize(resources, "status_bar_height_landscape"); + + final int fallbackHeight = getInternalDimensionPixelSize(resources, "status_bar_height"); + if (portraitHeight == 0) { + portraitHeight = fallbackHeight; + } + if (landscapeHeight == 0) { + landscapeHeight = fallbackHeight; + } + } + + public static int get(@NonNull final Context context) { + return context.getResources().getConfiguration().orientation + == Configuration.ORIENTATION_LANDSCAPE ? landscapeHeight : portraitHeight; + } + + private static int getInternalDimensionPixelSize(@NonNull final Resources resources, + @NonNull final String name) { + final int resourceId = resources.getIdentifier(name, "dimen", "android"); + if (resourceId == 0) { + return 0; + } + return resources.getDimensionPixelSize(resourceId); + } +} diff --git a/app/src/main/java/org/schabi/newpipe/util/WindowInsetsHelper.java b/app/src/main/java/org/schabi/newpipe/util/WindowInsetsHelper.java new file mode 100644 index 000000000..18f656b0b --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/util/WindowInsetsHelper.java @@ -0,0 +1,86 @@ +package org.schabi.newpipe.util; + +import android.util.TypedValue; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +public final class WindowInsetsHelper { + + private WindowInsetsHelper() { + } + + public static void applyStatusBarInsets(@NonNull final AppCompatActivity activity, + @NonNull final Toolbar toolbar) { + final int initialLeft = toolbar.getPaddingLeft(); + final int initialTop = toolbar.getPaddingTop(); + final int initialRight = toolbar.getPaddingRight(); + final int initialBottom = toolbar.getPaddingBottom(); + final int actionBarSize = getActionBarSize(activity); + + ViewCompat.setOnApplyWindowInsetsListener(toolbar, (view, insets) -> { + final Insets statusBars = insets.getInsets(WindowInsetsCompat.Type.statusBars()); + view.setPadding(initialLeft, initialTop + statusBars.top, initialRight, initialBottom); + + final ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); + layoutParams.height = actionBarSize + initialTop + statusBars.top + initialBottom; + view.setLayoutParams(layoutParams); + + return insets; + }); + } + + public static void applyStatusBarInsets(@NonNull final AppCompatActivity activity, + @NonNull final Toolbar toolbar, + @NonNull final View content) { + final ViewGroup.MarginLayoutParams layoutParams = + (ViewGroup.MarginLayoutParams) content.getLayoutParams(); + final int initialTopMargin = layoutParams.topMargin; + + applyStatusBarInsets(activity, toolbar, insets -> { + layoutParams.topMargin = initialTopMargin + insets.top; + content.setLayoutParams(layoutParams); + }); + } + + public static void applyStatusBarInsets(@NonNull final AppCompatActivity activity, + @NonNull final Toolbar toolbar, + @NonNull final InsetsConsumer insetsConsumer) { + final int initialLeft = toolbar.getPaddingLeft(); + final int initialTop = toolbar.getPaddingTop(); + final int initialRight = toolbar.getPaddingRight(); + final int initialBottom = toolbar.getPaddingBottom(); + final int actionBarSize = getActionBarSize(activity); + + ViewCompat.setOnApplyWindowInsetsListener(toolbar, (view, insets) -> { + final Insets statusBars = insets.getInsets(WindowInsetsCompat.Type.statusBars()); + view.setPadding(initialLeft, initialTop + statusBars.top, initialRight, initialBottom); + + final ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); + layoutParams.height = actionBarSize + initialTop + statusBars.top + initialBottom; + view.setLayoutParams(layoutParams); + + insetsConsumer.accept(statusBars); + return insets; + }); + } + + private static int getActionBarSize(@NonNull final AppCompatActivity activity) { + final TypedValue typedValue = new TypedValue(); + if (activity.getTheme().resolveAttribute(android.R.attr.actionBarSize, typedValue, true)) { + return TypedValue.complexToDimensionPixelSize( + typedValue.data, activity.getResources().getDisplayMetrics()); + } + return 0; + } + + public interface InsetsConsumer { + void accept(@NonNull Insets insets); + } +} diff --git a/app/src/main/java/org/schabi/newpipe/views/FocusAwareCoordinator.java b/app/src/main/java/org/schabi/newpipe/views/FocusAwareCoordinator.java index 798d08c72..fbca13287 100644 --- a/app/src/main/java/org/schabi/newpipe/views/FocusAwareCoordinator.java +++ b/app/src/main/java/org/schabi/newpipe/views/FocusAwareCoordinator.java @@ -101,7 +101,9 @@ public WindowInsets dispatchApplyWindowInsets(final WindowInsets insets) { protected boolean fitSystemWindows(final Rect insets) { final ViewGroup controls = findViewById(R.id.playbackControlRoot); if (controls != null) { - controls.setPadding(insets.left, insets.top, insets.right, insets.bottom); + controls.setPadding(insets.left, + controls.getFitsSystemWindows() ? insets.top : 0, + insets.right, insets.bottom); } return super.fitSystemWindows(insets); } diff --git a/app/src/main/res/layout-land/activity_player_queue_control.xml b/app/src/main/res/layout-land/activity_player_queue_control.xml index a055ad7ac..6a211f63f 100644 --- a/app/src/main/res/layout-land/activity_player_queue_control.xml +++ b/app/src/main/res/layout-land/activity_player_queue_control.xml @@ -5,7 +5,6 @@ android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" - android:fitsSystemWindows="true" tools:context="org.schabi.newpipe.player.PlayQueueActivity">