mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
Change wording for installing private extensions
Instead of "install" and "uninstall", changing the wording to "add" and "remove" when private installation is set
This commit is contained in:
parent
fce1b41645
commit
e2380d3afb
5 changed files with 37 additions and 23 deletions
|
@ -4,6 +4,7 @@ import android.widget.TextView
|
|||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||
import eu.davidea.flexibleadapter.items.IFlexible
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller
|
||||
import eu.kanade.tachiyomi.ui.extension.ExtensionAdapter.OnButtonClickListener
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
|
@ -18,6 +19,7 @@ class ExtensionAdapter(val listener: OnButtonClickListener) :
|
|||
val preferences: PreferencesHelper by injectLazy()
|
||||
|
||||
var installedSortOrder = preferences.installedExtensionsOrder().get()
|
||||
var installPrivately = preferences.extensionInstaller().get() == ExtensionInstaller.PRIVATE
|
||||
|
||||
init {
|
||||
setDisplayHeadersAtStartUp(true)
|
||||
|
|
|
@ -22,7 +22,6 @@ import eu.kanade.tachiyomi.extension.model.Extension
|
|||
import eu.kanade.tachiyomi.extension.model.InstallStep
|
||||
import eu.kanade.tachiyomi.extension.model.InstalledExtensionsOrder
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionLoader
|
||||
import eu.kanade.tachiyomi.ui.extension.details.ExtensionDetailsController
|
||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||
import eu.kanade.tachiyomi.ui.migration.BaseMigrationInterface
|
||||
|
@ -300,7 +299,7 @@ class ExtensionBottomSheet @JvmOverloads constructor(context: Context, attrs: At
|
|||
if (binding.tabs.selectedTabPosition == 0) {
|
||||
val extension = (extAdapter?.getItem(position) as? ExtensionItem)?.extension ?: return
|
||||
if (extension is Extension.Installed || extension is Extension.Untrusted) {
|
||||
uninstallExtension(extension.pkgName)
|
||||
uninstallExtension(extension.name, extension.pkgName)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -411,21 +410,17 @@ class ExtensionBottomSheet @JvmOverloads constructor(context: Context, attrs: At
|
|||
override fun trustSignature(signatureHash: String) {
|
||||
presenter.trustSignature(signatureHash)
|
||||
}
|
||||
|
||||
override fun uninstallExtension(pkgName: String) {
|
||||
presenter.uninstallExtension(pkgName)
|
||||
}
|
||||
|
||||
private fun uninstallExtension(extName: String, pkgName: String) {
|
||||
if (context.isPackageInstalled(pkgName)) {
|
||||
presenter.uninstallExtension(pkgName)
|
||||
} else {
|
||||
val extName = run {
|
||||
val appInfo = ExtensionLoader.getExtensionPackageInfoFromPkgName(
|
||||
context,
|
||||
pkgName,
|
||||
)?.applicationInfo ?: return@run pkgName
|
||||
context.packageManager.getApplicationLabel(appInfo).toString()
|
||||
}
|
||||
controller.activity!!.materialAlertDialog()
|
||||
.setTitle(extName)
|
||||
.setPositiveButton(R.string.uninstall) { _, _ ->
|
||||
.setPositiveButton(R.string.remove) { _, _ ->
|
||||
presenter.uninstallExtension(pkgName)
|
||||
}
|
||||
.setNegativeButton(android.R.string.cancel) { _, _ -> }
|
||||
|
@ -433,6 +428,10 @@ class ExtensionBottomSheet @JvmOverloads constructor(context: Context, attrs: At
|
|||
}
|
||||
}
|
||||
|
||||
fun setCanInstallPrivately(installPrivately: Boolean) {
|
||||
extAdapter?.installPrivately = installPrivately
|
||||
}
|
||||
|
||||
fun onDestroy() {
|
||||
presenter.onDestroy()
|
||||
}
|
||||
|
|
|
@ -60,7 +60,14 @@ class ExtensionHolder(view: View, val adapter: ExtensionAdapter) :
|
|||
.takeUnless { it == 0L }?.let {
|
||||
binding.date.isVisible = true
|
||||
binding.date.text =
|
||||
itemView.context.timeSpanFromNow(R.string.installed_, it)
|
||||
itemView.context.timeSpanFromNow(
|
||||
if (extension.isShared) {
|
||||
R.string.installed_
|
||||
} else {
|
||||
R.string.added_
|
||||
},
|
||||
it,
|
||||
)
|
||||
infoText.add("")
|
||||
}
|
||||
}
|
||||
|
@ -156,7 +163,7 @@ class ExtensionHolder(view: View, val adapter: ExtensionAdapter) :
|
|||
setText(R.string.trust)
|
||||
} else {
|
||||
resetStrokeColor()
|
||||
setText(R.string.install)
|
||||
setText(if (adapter.installPrivately) R.string.add else R.string.install)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@ import androidx.core.view.isVisible
|
|||
import androidx.recyclerview.widget.RecyclerView
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.databinding.ExtensionDetailHeaderBinding
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionLoader
|
||||
import eu.kanade.tachiyomi.ui.extension.getApplicationIcon
|
||||
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
||||
import eu.kanade.tachiyomi.util.system.materialAlertDialog
|
||||
|
@ -54,16 +53,9 @@ class ExtensionDetailsHeaderAdapter(private val presenter: ExtensionDetailsPrese
|
|||
if (extension.isShared) {
|
||||
presenter.uninstallExtension()
|
||||
} else {
|
||||
val extName = run {
|
||||
val appInfo = ExtensionLoader.getExtensionPackageInfoFromPkgName(
|
||||
context,
|
||||
extension.pkgName,
|
||||
)?.applicationInfo ?: return@run extension.name
|
||||
context.packageManager.getApplicationLabel(appInfo).toString()
|
||||
}
|
||||
context.materialAlertDialog()
|
||||
.setTitle(extName)
|
||||
.setPositiveButton(R.string.uninstall) { _, _ ->
|
||||
.setTitle(extension.name)
|
||||
.setPositiveButton(R.string.remove) { _, _ ->
|
||||
presenter.uninstallExtension()
|
||||
}
|
||||
.setNegativeButton(android.R.string.cancel) { _, _ -> }
|
||||
|
@ -79,6 +71,9 @@ class ExtensionDetailsHeaderAdapter(private val presenter: ExtensionDetailsPrese
|
|||
}
|
||||
|
||||
binding.extensionAppInfoButton.isVisible = extension.isShared
|
||||
if (!extension.isShared) {
|
||||
binding.extensionUninstallButton.text = context.getString(R.string.remove)
|
||||
}
|
||||
|
||||
if (extension.isUnofficial) {
|
||||
binding.extensionWarningBanner.isVisible = true
|
||||
|
|
|
@ -31,6 +31,7 @@ import eu.kanade.tachiyomi.R
|
|||
import eu.kanade.tachiyomi.data.preference.PreferenceValues
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.databinding.BrowseControllerBinding
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller
|
||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
||||
import eu.kanade.tachiyomi.source.LocalSource
|
||||
import eu.kanade.tachiyomi.source.Source
|
||||
|
@ -64,6 +65,9 @@ import eu.kanade.tachiyomi.util.view.toolbarHeight
|
|||
import eu.kanade.tachiyomi.util.view.updateGradiantBGRadius
|
||||
import eu.kanade.tachiyomi.util.view.withFadeTransaction
|
||||
import eu.kanade.tachiyomi.widget.LinearLayoutManagerAccurateOffset
|
||||
import kotlinx.coroutines.flow.drop
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import kotlinx.parcelize.Parcelize
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
@ -174,6 +178,13 @@ class BrowseController :
|
|||
requestFilePermissionsSafe(301, preferences)
|
||||
binding.bottomSheet.root.onCreate(this)
|
||||
|
||||
preferences.extensionInstaller().asFlow()
|
||||
.drop(1)
|
||||
.onEach {
|
||||
binding.bottomSheet.root.setCanInstallPrivately(it == ExtensionInstaller.PRIVATE)
|
||||
}
|
||||
.launchIn(viewScope)
|
||||
|
||||
binding.bottomSheet.root.sheetBehavior?.isGestureInsetBottomIgnored = true
|
||||
|
||||
binding.bottomSheet.root.sheetBehavior?.addBottomSheetCallback(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue