Added information about the app to a separate activity
parent
d25837b40b
commit
594c359f1c
@ -0,0 +1,45 @@
|
|||||||
|
package org.koitharu.kotatsu.about
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.MenuItem
|
||||||
|
import androidx.core.graphics.Insets
|
||||||
|
import androidx.core.view.updatePadding
|
||||||
|
import org.koitharu.kotatsu.R
|
||||||
|
import org.koitharu.kotatsu.base.ui.BaseActivity
|
||||||
|
import org.koitharu.kotatsu.databinding.ActivityAboutBinding
|
||||||
|
|
||||||
|
class AboutActivity : BaseActivity<ActivityAboutBinding>() {
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
setContentView(ActivityAboutBinding.inflate(layoutInflater))
|
||||||
|
supportActionBar?.apply {
|
||||||
|
setDisplayHomeAsUpEnabled(true)
|
||||||
|
setTitle(R.string.about)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onWindowInsetsChanged(insets: Insets) {
|
||||||
|
binding.toolbar.updatePadding(
|
||||||
|
top = insets.top,
|
||||||
|
left = insets.left,
|
||||||
|
right = insets.right
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
|
if (item.itemId == android.R.id.home) {
|
||||||
|
onBackPressed()
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return super.onOptionsItemSelected(item)
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
|
||||||
|
fun newIntent(context: Context) = Intent(context, AboutActivity::class.java)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,74 @@
|
|||||||
|
package org.koitharu.kotatsu.about
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.View
|
||||||
|
import androidx.preference.Preference
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import org.koitharu.kotatsu.BuildConfig
|
||||||
|
import org.koitharu.kotatsu.R
|
||||||
|
import org.koitharu.kotatsu.base.ui.BasePreferenceFragment
|
||||||
|
import org.koitharu.kotatsu.browser.BrowserActivity
|
||||||
|
import org.koitharu.kotatsu.core.prefs.AppSettings
|
||||||
|
import org.koitharu.kotatsu.settings.AppUpdateChecker
|
||||||
|
import org.koitharu.kotatsu.utils.ext.viewLifecycleScope
|
||||||
|
|
||||||
|
class AboutFragment : BasePreferenceFragment(R.string.about) {
|
||||||
|
|
||||||
|
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||||
|
addPreferencesFromResource(R.xml.pref_about)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
findPreference<Preference>(AppSettings.KEY_APP_UPDATE_AUTO)?.run {
|
||||||
|
isVisible = AppUpdateChecker.isUpdateSupported(context)
|
||||||
|
}
|
||||||
|
findPreference<Preference>(AppSettings.KEY_APP_VERSION)?.run {
|
||||||
|
title = getString(R.string.app_version, BuildConfig.VERSION_NAME)
|
||||||
|
isEnabled = AppUpdateChecker.isUpdateSupported(context)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
override fun onPreferenceTreeClick(preference: Preference?): Boolean {
|
||||||
|
return when (preference?.key) {
|
||||||
|
AppSettings.KEY_APP_VERSION -> {
|
||||||
|
checkForUpdates()
|
||||||
|
true
|
||||||
|
}
|
||||||
|
AppSettings.KEY_APP_TRANSLATION -> {
|
||||||
|
startActivity(context?.let { BrowserActivity.newIntent(it, "https://hosted.weblate.org/engage/kotatsu", resources.getString(R.string.about_app_translation)) })
|
||||||
|
true
|
||||||
|
}
|
||||||
|
AppSettings.KEY_FEEDBACK_4PDA -> {
|
||||||
|
startActivity(context?.let { BrowserActivity.newIntent(it, "https://4pda.to/forum/index.php?showtopic=697669", resources.getString(R.string.about_feedback_4pda)) })
|
||||||
|
true
|
||||||
|
}
|
||||||
|
AppSettings.KEY_FEEDBACK_GITHUB -> {
|
||||||
|
startActivity(context?.let { BrowserActivity.newIntent(it, "https://github.com/nv95/Kotatsu/issues", "GitHub") })
|
||||||
|
true
|
||||||
|
}
|
||||||
|
else -> super.onPreferenceTreeClick(preference)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun checkForUpdates() {
|
||||||
|
viewLifecycleScope.launch {
|
||||||
|
findPreference<Preference>(AppSettings.KEY_APP_VERSION)?.run {
|
||||||
|
setSummary(R.string.checking_for_updates)
|
||||||
|
isSelectable = false
|
||||||
|
}
|
||||||
|
val result = AppUpdateChecker(activity ?: return@launch).checkNow()
|
||||||
|
findPreference<Preference>(AppSettings.KEY_APP_VERSION)?.run {
|
||||||
|
setSummary(
|
||||||
|
when (result) {
|
||||||
|
true -> R.string.check_for_updates
|
||||||
|
false -> R.string.no_update_available
|
||||||
|
null -> R.string.update_check_failed
|
||||||
|
}
|
||||||
|
)
|
||||||
|
isSelectable = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:id="@+id/fragment_about"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
|
android:id="@+id/appbar"
|
||||||
|
style="@style/Widget.Kotatsu.AppBar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
|
android:id="@+id/toolbar"
|
||||||
|
style="@style/Widget.Kotatsu.Toolbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
|
<androidx.fragment.app.FragmentContainerView
|
||||||
|
android:id="@+id/container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:name="org.koitharu.kotatsu.about.AboutFragment"
|
||||||
|
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" />
|
||||||
|
|
||||||
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<PreferenceScreen
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<PreferenceCategory
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
|
app:title="@string/app_name">
|
||||||
|
|
||||||
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
|
app:key="app_version"
|
||||||
|
app:persistent="false"
|
||||||
|
app:summary="@string/check_for_updates" />
|
||||||
|
|
||||||
|
<SwitchPreference
|
||||||
|
app:defaultValue="true"
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
|
app:isPreferenceVisible="false"
|
||||||
|
app:key="app_update_auto"
|
||||||
|
app:summary="@string/show_notification_app_update"
|
||||||
|
app:title="@string/application_update"
|
||||||
|
tools:isPreferenceVisible="true" />
|
||||||
|
|
||||||
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
|
app:key="about_app_translation"
|
||||||
|
app:summary="@string/about_app_translation_summary"
|
||||||
|
app:title="@string/about_app_translation" />
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
<PreferenceCategory
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
|
app:title="@string/about_feedback">
|
||||||
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
|
app:key="about_feedback_4pda"
|
||||||
|
app:summary="https://4pda.to/forum/index.php?showtopic=697669"
|
||||||
|
app:title="@string/about_feedback_4pda" />
|
||||||
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
|
app:key="about_feedback_github"
|
||||||
|
app:summary="https://github.com/nv95/Kotatsu/issues"
|
||||||
|
app:title="GitHub" />
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
||||||
Loading…
Reference in New Issue