Edge-to-edge ui

This commit is contained in:
Koitharu
2020-12-16 11:49:10 +02:00
parent b8d2fa69c4
commit 6463023736
51 changed files with 434 additions and 164 deletions

View File

@@ -52,6 +52,8 @@ class MainSettingsFragment : BasePreferenceFragment(R.string.settings),
MultiSummaryProvider(R.string.gestures_only)
findPreference<MultiSelectListPreference>(AppSettings.KEY_TRACK_SOURCES)?.summaryProvider =
MultiSummaryProvider(R.string.dont_check)
findPreference<Preference>(AppSettings.KEY_GRID_SIZE)?.isEnabled =
settings.listMode == ListMode.GRID
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -91,6 +93,10 @@ class MainSettingsFragment : BasePreferenceFragment(R.string.settings),
?: getString(R.string.not_available)
}
}
AppSettings.KEY_LIST_MODE -> {
findPreference<Preference>(AppSettings.KEY_GRID_SIZE)?.isEnabled =
settings.listMode == ListMode.GRID
}
}
}

View File

@@ -1,9 +1,11 @@
package org.koitharu.kotatsu.settings
import android.content.Context
import android.media.RingtoneManager
import android.os.Bundle
import android.view.View
import androidx.preference.Preference
import org.koin.android.ext.android.get
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.base.ui.BasePreferenceFragment
import org.koitharu.kotatsu.core.prefs.AppSettings
@@ -12,6 +14,15 @@ import org.koitharu.kotatsu.utils.ext.toUriOrNull
class NotificationSettingsLegacyFragment : BasePreferenceFragment(R.string.notifications) {
private val ringtonePickContract = registerForActivityResult(
RingtonePickContract(get<Context>().getString(R.string.notification_sound))
) { uri ->
settings.notificationSound = uri?.toString().orEmpty()
findPreference<Preference>(AppSettings.KEY_NOTIFICATIONS_SOUND)?.run {
summary = RingtoneManager.getRingtone(context, uri).getTitle(context)
}
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.pref_notifications)
}
@@ -27,12 +38,7 @@ class NotificationSettingsLegacyFragment : BasePreferenceFragment(R.string.notif
override fun onPreferenceTreeClick(preference: Preference?): Boolean {
return when (preference?.key) {
AppSettings.KEY_NOTIFICATIONS_SOUND -> {
registerForActivityResult(RingtonePickContract(preference.title.toString())) { uri ->
settings.notificationSound = uri?.toString().orEmpty()
findPreference<Preference>(AppSettings.KEY_NOTIFICATIONS_SOUND)?.run {
summary = RingtoneManager.getRingtone(context, uri).getTitle(context)
}
}.launch(settings.notificationSound.toUriOrNull())
ringtonePickContract.launch(settings.notificationSound.toUriOrNull())
true
}
else -> super.onPreferenceTreeClick(preference)

View File

@@ -3,6 +3,8 @@ package org.koitharu.kotatsu.settings
import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.core.graphics.Insets
import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment
import androidx.fragment.app.commit
import androidx.preference.Preference
@@ -56,6 +58,14 @@ class SettingsActivity : BaseActivity<ActivitySettingsBinding>(),
}
}
override fun onWindowInsetsChanged(insets: Insets) {
binding.toolbar.updatePadding(
top = insets.top,
left = insets.left,
right = insets.right
)
}
companion object {
fun newIntent(context: Context) = Intent(context, SettingsActivity::class.java)

View File

@@ -4,6 +4,8 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.graphics.Insets
import androidx.core.view.updatePadding
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.RecyclerView
@@ -49,6 +51,14 @@ class SourcesSettingsFragment : BaseFragment<FragmentSettingsSourcesBinding>(),
super.onDestroyView()
}
override fun onWindowInsetsChanged(insets: Insets) {
binding.recyclerView.updatePadding(
bottom = insets.bottom,
left = insets.left,
right = insets.right
)
}
override fun onItemClick(item: MangaSource, view: View) {
(activity as? SettingsActivity)?.openMangaSourceSettings(item)
}