diff --git a/app/src/main/java/com/cappielloantonio/tempo/navigation/NavigationController.java b/app/src/main/java/com/cappielloantonio/tempo/navigation/NavigationController.java index a6437dca..c190cc9e 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/navigation/NavigationController.java +++ b/app/src/main/java/com/cappielloantonio/tempo/navigation/NavigationController.java @@ -3,13 +3,9 @@ package com.cappielloantonio.tempo.navigation; import android.view.View; import androidx.annotation.NonNull; -import androidx.annotation.OptIn; import androidx.appcompat.app.AppCompatActivity; -import androidx.media3.common.util.UnstableApi; import androidx.navigation.NavController; -import com.cappielloantonio.tempo.navigation.NavigationHelper; - import com.google.android.material.bottomsheet.BottomSheetBehavior; public class NavigationController { @@ -34,6 +30,10 @@ public class NavigationController { helper.setNavigationDrawerLock(visibility); } + public boolean isNavigationDrawerLocked() { + return helper.isNavigationDrawerLocked(); + } + public void toggleDrawerLockOnOrientation(AppCompatActivity activity) { helper.toggleNavigationDrawerLockOnOrientationChange(activity); } diff --git a/app/src/main/java/com/cappielloantonio/tempo/navigation/NavigationHelper.java b/app/src/main/java/com/cappielloantonio/tempo/navigation/NavigationHelper.java index b5916f73..fe47f82a 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/navigation/NavigationHelper.java +++ b/app/src/main/java/com/cappielloantonio/tempo/navigation/NavigationHelper.java @@ -1,6 +1,5 @@ package com.cappielloantonio.tempo.navigation; -import android.content.Context; import android.content.res.Configuration; import android.view.View; import android.view.Window; @@ -20,7 +19,6 @@ import androidx.navigation.fragment.NavHostFragment; import androidx.navigation.ui.NavigationUI; import com.cappielloantonio.tempo.R; -import com.cappielloantonio.tempo.ui.activity.MainActivity; import com.cappielloantonio.tempo.util.Preferences; import com.google.android.material.bottomnavigation.BottomNavigationView; import com.google.android.material.bottomsheet.BottomSheetBehavior; @@ -28,8 +26,6 @@ import com.google.android.material.navigation.NavigationView; import org.jetbrains.annotations.Contract; -import java.util.Objects; - public class NavigationHelper { /* UI components */ private BottomNavigationView bottomNavigationView; @@ -105,6 +101,10 @@ public class NavigationHelper { drawerLayout.setDrawerLockMode(mode); } + public boolean isNavigationDrawerLocked() { + return drawerLayout.getDrawerLockMode(navigationView) != DrawerLayout.LOCK_MODE_UNLOCKED; + } + @OptIn(markerClass = UnstableApi.class) public void toggleNavigationDrawerLockOnOrientationChange( AppCompatActivity activity) { diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/activity/MainActivity.java b/app/src/main/java/com/cappielloantonio/tempo/ui/activity/MainActivity.java index 313621bf..4c77303f 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/activity/MainActivity.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/activity/MainActivity.java @@ -4,22 +4,16 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; -import android.content.IntentFilter; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.os.Bundle; -import android.os.Handler; import android.text.TextUtils; -import android.view.Gravity; import android.view.View; import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.core.splashscreen.SplashScreen; -import androidx.core.view.WindowCompat; -import androidx.core.view.WindowInsetsCompat; -import androidx.core.view.WindowInsetsControllerCompat; import androidx.drawerlayout.widget.DrawerLayout; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.ViewModelProvider; @@ -319,6 +313,10 @@ public class MainActivity extends BaseActivity { navigationController.setDrawerLock(locked); } + public boolean isNavigationDrawerLocked() { + return navigationController.isNavigationDrawerLocked(); + } + public void toggleNavigationDrawerLockOnOrientationChange() { navigationController.toggleDrawerLockOnOrientation(this); } diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java index c1399d75..63752861 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java @@ -2,71 +2,19 @@ package com.cappielloantonio.tempo.ui.fragment; import static com.google.android.material.internal.ViewUtils.hideKeyboard; -import android.app.Activity; -import android.content.Context; -import android.content.ComponentName; -import android.content.Intent; -import android.content.ServiceConnection; -import android.media.audiofx.AudioEffect; -import android.net.Uri; import android.os.Bundle; -import android.os.IBinder; -import android.text.InputFilter; -import android.text.InputType; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.WindowManager; -import android.widget.Toast; -import androidx.activity.result.ActivityResultLauncher; -import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.annotation.OptIn; -import androidx.appcompat.app.AppCompatActivity; -import androidx.appcompat.app.AppCompatDelegate; -import androidx.appcompat.widget.Toolbar; -import androidx.core.os.LocaleListCompat; -import androidx.core.view.ViewCompat; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentTransaction; -import androidx.lifecycle.ViewModelProvider; -import androidx.media3.common.util.UnstableApi; -import androidx.navigation.NavController; -import androidx.navigation.NavOptions; -import androidx.navigation.fragment.NavHostFragment; -import androidx.preference.EditTextPreference; -import androidx.preference.ListPreference; -import androidx.preference.Preference; -import androidx.preference.PreferenceCategory; -import androidx.preference.PreferenceFragmentCompat; -import androidx.preference.SwitchPreference; -import com.cappielloantonio.tempo.BuildConfig; import com.cappielloantonio.tempo.R; -import com.cappielloantonio.tempo.databinding.FragmentAlbumCatalogueBinding; import com.cappielloantonio.tempo.databinding.FragmentSettingsBinding; -import com.cappielloantonio.tempo.helper.ThemeHelper; -import com.cappielloantonio.tempo.interfaces.DialogClickCallback; -import com.cappielloantonio.tempo.interfaces.ScanCallback; -import com.cappielloantonio.tempo.service.EqualizerManager; -import com.cappielloantonio.tempo.service.MediaService; import com.cappielloantonio.tempo.ui.activity.MainActivity; -import com.cappielloantonio.tempo.ui.dialog.DeleteDownloadStorageDialog; -import com.cappielloantonio.tempo.ui.dialog.DownloadStorageDialog; -import com.cappielloantonio.tempo.ui.dialog.StarredSyncDialog; -import com.cappielloantonio.tempo.ui.dialog.StarredAlbumSyncDialog; -import com.cappielloantonio.tempo.ui.dialog.StarredArtistSyncDialog; -import com.cappielloantonio.tempo.ui.dialog.StreamingCacheStorageDialog; -import com.cappielloantonio.tempo.util.DownloadUtil; import com.cappielloantonio.tempo.util.Preferences; -import com.cappielloantonio.tempo.util.UIUtil; -import com.cappielloantonio.tempo.util.ExternalAudioReader; -import com.cappielloantonio.tempo.viewmodel.SettingViewModel; - -import java.util.Locale; -import java.util.Map; public class SettingsFragment extends Fragment { @@ -123,6 +71,12 @@ public class SettingsFragment extends Fragment { public void onStop() { super.onStop(); activity.setBottomSheetVisibility(true); + + if (activity.isLandscape) { + activity.setNavigationDrawerLock(false); + } else if (Preferences.getEnableDrawerOnPortrait()) { + activity.setNavigationDrawerLock(false); + } } private void initAppBar() { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2cb61a4c..bf652059 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -415,8 +415,8 @@ If enabled, show the shuffle button, remove the heart in the mini player Show radio If enabled, show the radio section. Restart the app for it to take full effect. - Enable drawer on portrait [Experimental] - Unlocks the lateral landscape menu drawer on portrait. The changes will take effect on restart. + Enable drawer on portrait + Unlocks the lateral landscape menu drawer on portrait. Hide bottom navbar on portrait [Experimental] Experimental.Increases vertical space by removing the bottom navbar. The changes will take effect on restart. Auto download lyrics