Move LeakCanary to settings

This commit is contained in:
Koitharu
2022-02-11 20:13:43 +02:00
parent 427ce5fd07
commit 3bd67e2098
5 changed files with 42 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@id/action_leaks"
android:title="@string/leak_canary_display_activity_label"
app:showAsAction="never" />
</menu>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="leak_canary_add_launcher_icon">false</bool>
</resources>

View File

@@ -3,9 +3,13 @@ package org.koitharu.kotatsu.settings
import android.content.Intent
import android.content.SharedPreferences
import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import androidx.appcompat.app.AppCompatDelegate
import androidx.preference.*
import leakcanary.LeakCanary
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.base.ui.BasePreferenceFragment
import org.koitharu.kotatsu.base.ui.dialog.StorageSelectDialog
@@ -24,6 +28,11 @@ class MainSettingsFragment : BasePreferenceFragment(R.string.settings),
SharedPreferences.OnSharedPreferenceChangeListener,
StorageSelectDialog.OnStorageSelectListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.pref_main)
findPreference<SeekBarPreference>(AppSettings.KEY_GRID_SIZE)?.run {
@@ -66,6 +75,21 @@ class MainSettingsFragment : BasePreferenceFragment(R.string.settings),
settings.subscribe(this)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
super.onCreateOptionsMenu(menu, inflater)
inflater.inflate(R.menu.opt_settings, menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.action_leaks -> {
startActivity(LeakCanary.newLeakDisplayActivityIntent())
true
}
else -> super.onOptionsItemSelected(item)
}
}
override fun onDestroyView() {
settings.unsubscribe(this)
super.onDestroyView()

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<menu />

View File

@@ -2,4 +2,5 @@
<resources>
<item name="toolbar" type="id" />
<item name="container" type="id" />
<item name="action_leaks" type="id" />
</resources>