diff options
author | ByteHamster <info@bytehamster.com> | 2022-08-07 11:25:51 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2022-09-18 19:12:41 +0200 |
commit | a524b810603a78afc6503d01e6aeb788ea14401a (patch) | |
tree | 9659721a6dbbfe853c50264668c0505891826fc1 /app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java | |
parent | e5d2d1b6ef6eec995e2ef7e714653567e349e59e (diff) | |
download | AntennaPod-a524b810603a78afc6503d01e6aeb788ea14401a.zip |
Expand app below system windows
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java index 6abecef57..450a99873 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -19,6 +19,9 @@ import android.widget.EditText; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBarDrawerToggle; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowCompat; +import androidx.core.view.WindowInsetsCompat; import com.google.android.material.appbar.MaterialToolbar; import androidx.core.content.ContextCompat; import androidx.drawerlayout.widget.DrawerLayout; @@ -104,6 +107,7 @@ public class MainActivity extends CastEnabledActivity { if (savedInstanceState != null) { ensureGeneratedViewIdGreaterThan(savedInstanceState.getInt(KEY_GENERATED_VIEW_ID, 0)); } + WindowCompat.setDecorFitsSystemWindows(getWindow(), false); super.onCreate(savedInstanceState); setContentView(R.layout.main); recycledViewPool.setMaxRecycledViews(R.id.view_type_episode_item, 25); @@ -144,11 +148,17 @@ public class MainActivity extends CastEnabledActivity { PreferenceUpgrader.checkUpgrades(this); View bottomSheet = findViewById(R.id.audioplayerFragment); sheetBehavior = (LockableBottomSheetBehavior) BottomSheetBehavior.from(bottomSheet); - sheetBehavior.setPeekHeight((int) getResources().getDimension(R.dimen.external_player_height)); sheetBehavior.setHideable(false); sheetBehavior.setBottomSheetCallback(bottomSheetCallback); } + @Override + public void onAttachedToWindow() { + super.onAttachedToWindow(); + int playerHeight = (int) getResources().getDimension(R.dimen.external_player_height); + sheetBehavior.setPeekHeight(playerHeight + getBottomInset()); + } + /** * View.generateViewId stores the current ID in a static variable. * When the process is killed, the variable gets reset. @@ -238,6 +248,11 @@ public class MainActivity extends CastEnabledActivity { return sheetBehavior; } + private int getBottomInset() { + WindowInsetsCompat insets = ViewCompat.getRootWindowInsets(getWindow().getDecorView()); + return insets == null ? 0 : insets.getInsets(WindowInsetsCompat.Type.systemBars()).bottom; + } + public void setPlayerVisible(boolean visible) { getBottomSheet().setLocked(!visible); if (visible) { @@ -247,7 +262,8 @@ public class MainActivity extends CastEnabledActivity { } FragmentContainerView mainView = findViewById(R.id.main_view); ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mainView.getLayoutParams(); - params.setMargins(0, 0, 0, visible ? (int) getResources().getDimension(R.dimen.external_player_height) : 0); + int externalPlayerHeight = (int) getResources().getDimension(R.dimen.external_player_height); + params.setMargins(0, 0, 0, getBottomInset() + (visible ? externalPlayerHeight : 0)); mainView.setLayoutParams(params); findViewById(R.id.audioplayerFragment).setVisibility(visible ? View.VISIBLE : View.GONE); } |