Merge pull request #9812 from TeamNewPipe/revert-8894-WindowCompat
Revert "Use WindowCompat."
This commit is contained in:
commit
02906e8132
|
@ -26,6 +26,7 @@ import android.graphics.Color;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
|
@ -53,9 +54,6 @@ import androidx.appcompat.content.res.AppCompatResources;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.core.view.WindowCompat;
|
|
||||||
import androidx.core.view.WindowInsetsCompat;
|
|
||||||
import androidx.core.view.WindowInsetsControllerCompat;
|
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
|
|
||||||
import com.google.android.exoplayer2.PlaybackException;
|
import com.google.android.exoplayer2.PlaybackException;
|
||||||
|
@ -1928,17 +1926,15 @@ public final class VideoDetailFragment
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final var window = activity.getWindow();
|
// Prevent jumping of the player on devices with cutout
|
||||||
final var windowInsetsController = WindowCompat.getInsetsController(window,
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
window.getDecorView());
|
activity.getWindow().getAttributes().layoutInDisplayCutoutMode =
|
||||||
|
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT;
|
||||||
WindowCompat.setDecorFitsSystemWindows(window, true);
|
}
|
||||||
windowInsetsController.setSystemBarsBehavior(WindowInsetsControllerCompat
|
activity.getWindow().getDecorView().setSystemUiVisibility(0);
|
||||||
.BEHAVIOR_SHOW_BARS_BY_TOUCH);
|
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||||
windowInsetsController.show(WindowInsetsCompat.Type.systemBars());
|
activity.getWindow().setStatusBarColor(ThemeHelper.resolveColorFromAttr(
|
||||||
|
requireContext(), android.R.attr.colorPrimary));
|
||||||
window.setStatusBarColor(ThemeHelper.resolveColorFromAttr(requireContext(),
|
|
||||||
android.R.attr.colorPrimary));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void hideSystemUi() {
|
private void hideSystemUi() {
|
||||||
|
@ -1950,19 +1946,30 @@ public final class VideoDetailFragment
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final var window = activity.getWindow();
|
// Prevent jumping of the player on devices with cutout
|
||||||
final var windowInsetsController = WindowCompat.getInsetsController(window,
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
window.getDecorView());
|
activity.getWindow().getAttributes().layoutInDisplayCutoutMode =
|
||||||
|
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
|
||||||
WindowCompat.setDecorFitsSystemWindows(window, false);
|
|
||||||
windowInsetsController.setSystemBarsBehavior(WindowInsetsControllerCompat
|
|
||||||
.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
|
|
||||||
windowInsetsController.hide(WindowInsetsCompat.Type.systemBars());
|
|
||||||
|
|
||||||
if (DeviceUtils.isInMultiWindow(activity) || isFullscreen()) {
|
|
||||||
window.setStatusBarColor(Color.TRANSPARENT);
|
|
||||||
window.setNavigationBarColor(Color.TRANSPARENT);
|
|
||||||
}
|
}
|
||||||
|
int visibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||||
|
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||||
|
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||||
|
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
||||||
|
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
|
||||||
|
|
||||||
|
// In multiWindow mode status bar is not transparent for devices with cutout
|
||||||
|
// if I include this flag. So without it is better in this case
|
||||||
|
final boolean isInMultiWindow = DeviceUtils.isInMultiWindow(activity);
|
||||||
|
if (!isInMultiWindow) {
|
||||||
|
visibility |= View.SYSTEM_UI_FLAG_FULLSCREEN;
|
||||||
|
}
|
||||||
|
activity.getWindow().getDecorView().setSystemUiVisibility(visibility);
|
||||||
|
|
||||||
|
if (isInMultiWindow || isFullscreen()) {
|
||||||
|
activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
|
||||||
|
activity.getWindow().setNavigationBarColor(Color.TRANSPARENT);
|
||||||
|
}
|
||||||
|
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Listener implementation
|
// Listener implementation
|
||||||
|
|
|
@ -32,6 +32,7 @@ import android.view.KeyEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.ViewParent;
|
import android.view.ViewParent;
|
||||||
|
import android.view.WindowManager;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
|
@ -39,8 +40,6 @@ import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.content.res.AppCompatResources;
|
import androidx.appcompat.content.res.AppCompatResources;
|
||||||
import androidx.core.view.WindowCompat;
|
|
||||||
import androidx.core.view.WindowInsetsCompat;
|
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
@ -453,9 +452,11 @@ public final class MainPlayerUi extends VideoPlayerUi implements View.OnLayoutCh
|
||||||
getParentActivity().map(Activity::getWindow).ifPresent(window -> {
|
getParentActivity().map(Activity::getWindow).ifPresent(window -> {
|
||||||
window.setStatusBarColor(Color.TRANSPARENT);
|
window.setStatusBarColor(Color.TRANSPARENT);
|
||||||
window.setNavigationBarColor(Color.TRANSPARENT);
|
window.setNavigationBarColor(Color.TRANSPARENT);
|
||||||
WindowCompat.setDecorFitsSystemWindows(window, false);
|
final int visibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||||
WindowCompat.getInsetsController(window, window.getDecorView())
|
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||||
.show(WindowInsetsCompat.Type.systemBars());
|
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
|
||||||
|
window.getDecorView().setSystemUiVisibility(visibility);
|
||||||
|
window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue