summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2022-08-07 11:25:51 +0200
committerByteHamster <info@bytehamster.com>2022-09-18 19:12:41 +0200
commita524b810603a78afc6503d01e6aeb788ea14401a (patch)
tree9659721a6dbbfe853c50264668c0505891826fc1 /app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
parente5d2d1b6ef6eec995e2ef7e714653567e349e59e (diff)
downloadAntennaPod-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.java20
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);
}