summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorasdoi <36813904+asdoi@users.noreply.github.com>2020-08-09 09:36:11 +0000
committerGitHub <noreply@github.com>2020-08-09 11:36:11 +0200
commit5a4cb23877c4d7a33b578ab8b726774586c7c851 (patch)
treed98cf279723bfa1e4f7447700557a07f4a1fc58b
parent23792f4067fe547cee32cb47d24108e7c2881321 (diff)
downloadAntennaPod-5a4cb23877c4d7a33b578ab8b726774586c7c851.zip
Dynamical navigation drawer size
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java22
-rw-r--r--app/src/main/res/layout/main.xml2
-rw-r--r--app/src/main/res/values/integers.xml1
-rw-r--r--core/src/main/res/values/dimens.xml2
4 files changed, 25 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 04d31d096..f772cb084 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
@@ -5,10 +5,13 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
+import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
+import android.util.DisplayMetrics;
import android.util.Log;
+import android.util.TypedValue;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
@@ -96,6 +99,7 @@ public class MainActivity extends CastEnabledActivity {
drawerLayout = findViewById(R.id.drawer_layout);
navDrawer = findViewById(R.id.navDrawerFragment);
+ setNavDrawerSize();
final FragmentManager fm = getSupportFragmentManager();
fm.addOnBackStackChangedListener(() -> {
@@ -323,6 +327,24 @@ public class MainActivity extends CastEnabledActivity {
if (drawerToggle != null) { // Tablet layout does not have a drawer
drawerToggle.onConfigurationChanged(newConfig);
}
+ setNavDrawerSize();
+ }
+
+ private void setNavDrawerSize() {
+ if (drawerToggle == null) { // Tablet layout does not have a drawer
+ return;
+ }
+ float screenPercent = getResources().getInteger(R.integer.nav_drawer_screen_size_percent) * 0.01f;
+ int width = (int) (getScreenWidth() * screenPercent);
+ int maxWidth = (int) getResources().getDimension(R.dimen.nav_drawer_max_screen_size);
+
+ navDrawer.getLayoutParams().width = Math.min(width, maxWidth);
+ }
+
+ private int getScreenWidth() {
+ DisplayMetrics displayMetrics = new DisplayMetrics();
+ getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
+ return displayMetrics.widthPixels;
}
@Override
diff --git a/app/src/main/res/layout/main.xml b/app/src/main/res/layout/main.xml
index effa87684..48195a176 100644
--- a/app/src/main/res/layout/main.xml
+++ b/app/src/main/res/layout/main.xml
@@ -37,8 +37,6 @@
android:id="@+id/navDrawerFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_marginEnd="24dp"
- android:layout_marginRight="24dp"
android:layout_gravity="start"
android:orientation="vertical" />
diff --git a/app/src/main/res/values/integers.xml b/app/src/main/res/values/integers.xml
index 5b45a8b1e..a7a7ead7b 100644
--- a/app/src/main/res/values/integers.xml
+++ b/app/src/main/res/values/integers.xml
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="subscriptions_default_num_of_columns">3</integer>
+ <integer name="nav_drawer_screen_size_percent">80</integer>
</resources> \ No newline at end of file
diff --git a/core/src/main/res/values/dimens.xml b/core/src/main/res/values/dimens.xml
index 41a24f6fa..4702a5302 100644
--- a/core/src/main/res/values/dimens.xml
+++ b/core/src/main/res/values/dimens.xml
@@ -38,4 +38,6 @@
<dimen name="media_router_controller_playback_control_start_padding">24dp</dimen>
<dimen name="media_router_controller_bottom_margin">8dp</dimen>
+ <dimen name="nav_drawer_max_screen_size">480dp</dimen>
+
</resources>