diff --git a/app/build.gradle b/app/build.gradle
index 81ff7cb27..ee04db19a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,8 +16,8 @@ android {
applicationId 'org.koitharu.kotatsu'
minSdk = 21
targetSdk = 34
- versionCode = 643
- versionName = '7.1'
+ versionCode = 644
+ versionName = '7.1.1'
generatedDensities = []
testInstrumentationRunner 'org.koitharu.kotatsu.HiltTestRunner'
ksp {
diff --git a/app/src/debug/kotlin/org/koitharu/kotatsu/settings/SettingsMenuProvider.kt b/app/src/debug/kotlin/org/koitharu/kotatsu/settings/SettingsMenuProvider.kt
new file mode 100644
index 000000000..519db2319
--- /dev/null
+++ b/app/src/debug/kotlin/org/koitharu/kotatsu/settings/SettingsMenuProvider.kt
@@ -0,0 +1,33 @@
+package org.koitharu.kotatsu.settings
+
+import android.content.Context
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import androidx.core.view.MenuProvider
+import leakcanary.LeakCanary
+import org.koitharu.kotatsu.R
+import org.koitharu.workinspector.WorkInspector
+
+class SettingsMenuProvider(
+ private val context: Context,
+) : MenuProvider {
+
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
+ menuInflater.inflate(R.menu.opt_settings, menu)
+ }
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) {
+ R.id.action_leaks -> {
+ context.startActivity(LeakCanary.newLeakDisplayActivityIntent())
+ true
+ }
+
+ R.id.action_works -> {
+ context.startActivity(WorkInspector.getIntent(context))
+ true
+ }
+
+ else -> false
+ }
+}
diff --git a/app/src/debug/res/menu/opt_settings.xml b/app/src/debug/res/menu/opt_settings.xml
index 0ad9f78bc..b7bb4a5ac 100644
--- a/app/src/debug/res/menu/opt_settings.xml
+++ b/app/src/debug/res/menu/opt_settings.xml
@@ -8,14 +8,9 @@
android:title="@string/leak_canary_display_activity_label"
app:showAsAction="never" />
-
-
diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/BasePreferenceFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/BasePreferenceFragment.kt
index aabadc67a..0a5a90c07 100644
--- a/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/BasePreferenceFragment.kt
+++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/ui/BasePreferenceFragment.kt
@@ -63,7 +63,7 @@ abstract class BasePreferenceFragment(@StringRes private val titleId: Int) :
)
}
- protected fun setTitle(title: CharSequence?) {
+ protected open fun setTitle(title: CharSequence?) {
(activity as? SettingsActivity)?.setSectionTitle(title)
}
diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/RootSettingsFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/RootSettingsFragment.kt
index f095ec6c7..220c65bda 100644
--- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/RootSettingsFragment.kt
+++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/RootSettingsFragment.kt
@@ -43,6 +43,12 @@ class RootSettingsFragment : BasePreferenceFragment(0) {
}
}
+ override fun setTitle(title: CharSequence?) {
+ if (!resources.getBoolean(R.bool.is_tablet)) {
+ super.setTitle(title)
+ }
+ }
+
private fun bindPreferenceSummary(key: String, @StringRes vararg items: Int) {
findPreference(key)?.summary = items.joinToString { getString(it) }
}
diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/settings/SettingsActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/settings/SettingsActivity.kt
index b36099f34..f9ae0f40d 100644
--- a/app/src/main/kotlin/org/koitharu/kotatsu/settings/SettingsActivity.kt
+++ b/app/src/main/kotlin/org/koitharu/kotatsu/settings/SettingsActivity.kt
@@ -1,11 +1,8 @@
package org.koitharu.kotatsu.settings
-import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.os.Bundle
-import android.view.Menu
-import android.view.MenuItem
import android.view.ViewGroup.MarginLayoutParams
import androidx.core.graphics.Insets
import androidx.core.view.updateLayoutParams
@@ -44,9 +41,12 @@ class SettingsActivity :
private val isMasterDetails
get() = viewBinding.containerMaster != null
+ private var screenPadding = 0
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(ActivitySettingsBinding.inflate(layoutInflater))
+ screenPadding = resources.getDimensionPixelOffset(R.dimen.screen_padding)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
val fm = supportFragmentManager
val currentFragment = fm.findFragmentById(R.id.container)
@@ -59,38 +59,7 @@ class SettingsActivity :
replace(R.id.container_master, RootSettingsFragment())
}
}
- }
-
- override fun onCreateOptionsMenu(menu: Menu): Boolean {
- super.onCreateOptionsMenu(menu)
- menuInflater.inflate(R.menu.opt_settings, menu)
- return true
- }
-
- override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) {
- R.id.action_leaks -> {
- val intent = Intent()
- intent.component = ComponentName(this, "leakcanary.internal.activity.LeakActivity")
- intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
- startActivity(intent)
- true
- }
-
- R.id.action_tracker -> {
- val intent = Intent()
- intent.component = ComponentName(this, "org.koitharu.kotatsu.tracker.ui.debug.TrackerDebugActivity")
- startActivity(intent)
- true
- }
-
- R.id.action_works -> {
- val intent = Intent()
- intent.component = ComponentName(this, "org.koitharu.workinspector.WorkInspectorActivity")
- startActivity(intent)
- true
- }
-
- else -> super.onOptionsItemSelected(item)
+ addMenuProvider(SettingsMenuProvider(this))
}
override fun onPreferenceStartFragment(
@@ -109,8 +78,8 @@ class SettingsActivity :
left = insets.left,
right = insets.right,
)
- viewBinding.cardDetails?.updateLayoutParams {
- bottomMargin = marginStart + insets.bottom
+ viewBinding.textViewHeader?.updateLayoutParams {
+ topMargin = screenPadding + insets.top
}
}
diff --git a/app/src/main/res/layout-w600dp-land/activity_settings.xml b/app/src/main/res/layout-w600dp-land/activity_settings.xml
index 31a7ed000..4b3d15d9e 100644
--- a/app/src/main/res/layout-w600dp-land/activity_settings.xml
+++ b/app/src/main/res/layout-w600dp-land/activity_settings.xml
@@ -13,7 +13,7 @@
android:elevation="0dp"
android:fitsSystemWindows="true"
app:elevation="0dp"
- app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintEnd_toEndOf="@id/container_master"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:liftOnScroll="false">
@@ -30,50 +30,46 @@
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toStartOf="@id/card_details"
+ app:layout_constraintEnd_toStartOf="@id/container"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/appbar"
app:layout_constraintWidth_max="400dp"
app:layout_constraintWidth_min="320dp"
- app:layout_constraintWidth_percent="0.35" />
+ app:layout_constraintWidth_percent="0.4" />
-
+
+
+ app:layout_constraintTop_toBottomOf="@id/textView_header"
+ tools:layout="@layout/fragment_settings_sources" />
-
-
-
-
-
-
-
-
-
+
diff --git a/app/src/main/res/menu/opt_settings.xml b/app/src/main/res/menu/opt_settings.xml
deleted file mode 100644
index 1fe7aa6d4..000000000
--- a/app/src/main/res/menu/opt_settings.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/app/src/release/kotlin/org/koitharu/kotatsu/settings/SettingsMenuProvider.kt b/app/src/release/kotlin/org/koitharu/kotatsu/settings/SettingsMenuProvider.kt
new file mode 100644
index 000000000..e9cc4b9a5
--- /dev/null
+++ b/app/src/release/kotlin/org/koitharu/kotatsu/settings/SettingsMenuProvider.kt
@@ -0,0 +1,15 @@
+package org.koitharu.kotatsu.settings
+
+import android.content.Context
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import androidx.core.view.MenuProvider
+
+@Suppress("UNUSED_PARAMETER")
+class SettingsMenuProvider(context: Context) : MenuProvider {
+
+ override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) = Unit
+
+ override fun onMenuItemSelected(menuItem: MenuItem): Boolean = false
+}