mirror of
https://github.com/mihonapp/mihon.git
synced 2024-11-21 20:47:03 -05:00
Move extension app info button
Aligns with TachiyomiJ2K.
This commit is contained in:
parent
cfd1b4a6c6
commit
33b3be0d0e
7 changed files with 35 additions and 22 deletions
|
@ -2,10 +2,7 @@ package eu.kanade.tachiyomi.ui.browse.extension.details
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
|
||||||
import android.net.Uri
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.Settings
|
|
||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
|
@ -68,7 +65,7 @@ class ExtensionDetailsController(bundle: Bundle? = null) :
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createPresenter(): ExtensionDetailsPresenter {
|
override fun createPresenter(): ExtensionDetailsPresenter {
|
||||||
return ExtensionDetailsPresenter(args.getString(PKGNAME_KEY)!!)
|
return ExtensionDetailsPresenter(this, args.getString(PKGNAME_KEY)!!)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getTitle(): String? {
|
override fun getTitle(): String? {
|
||||||
|
@ -188,7 +185,6 @@ class ExtensionDetailsController(bundle: Bundle? = null) :
|
||||||
R.id.action_history -> openCommitHistory()
|
R.id.action_history -> openCommitHistory()
|
||||||
R.id.action_enable_all -> toggleAllSources(true)
|
R.id.action_enable_all -> toggleAllSources(true)
|
||||||
R.id.action_disable_all -> toggleAllSources(false)
|
R.id.action_disable_all -> toggleAllSources(false)
|
||||||
R.id.action_open_in_settings -> openInSettings()
|
|
||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item)
|
return super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
|
@ -219,13 +215,6 @@ class ExtensionDetailsController(bundle: Bundle? = null) :
|
||||||
openInBrowser(url)
|
openInBrowser(url)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun openInSettings() {
|
|
||||||
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {
|
|
||||||
data = Uri.fromParts("package", presenter.pkgName, null)
|
|
||||||
}
|
|
||||||
startActivity(intent)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun Source.isEnabled(): Boolean {
|
private fun Source.isEnabled(): Boolean {
|
||||||
return id.toString() !in preferences.disabledSources().get()
|
return id.toString() !in preferences.disabledSources().get()
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,9 @@ class ExtensionDetailsHeaderAdapter(private val presenter: ExtensionDetailsPrese
|
||||||
binding.btnUninstall.clicks()
|
binding.btnUninstall.clicks()
|
||||||
.onEach { presenter.uninstallExtension() }
|
.onEach { presenter.uninstallExtension() }
|
||||||
.launchIn(presenter.presenterScope)
|
.launchIn(presenter.presenterScope)
|
||||||
|
binding.btnAppInfo.clicks()
|
||||||
|
.onEach { presenter.openInSettings() }
|
||||||
|
.launchIn(presenter.presenterScope)
|
||||||
|
|
||||||
if (extension.isObsolete) {
|
if (extension.isObsolete) {
|
||||||
binding.warningBanner.isVisible = true
|
binding.warningBanner.isVisible = true
|
||||||
|
|
|
@ -1,17 +1,21 @@
|
||||||
package eu.kanade.tachiyomi.ui.browse.extension.details
|
package eu.kanade.tachiyomi.ui.browse.extension.details
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import android.net.Uri
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.provider.Settings
|
||||||
import eu.kanade.tachiyomi.extension.ExtensionManager
|
import eu.kanade.tachiyomi.extension.ExtensionManager
|
||||||
import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter
|
import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.injectLazy
|
||||||
import uy.kohesive.injekt.api.get
|
|
||||||
|
|
||||||
class ExtensionDetailsPresenter(
|
class ExtensionDetailsPresenter(
|
||||||
val pkgName: String,
|
private val controller: ExtensionDetailsController,
|
||||||
private val extensionManager: ExtensionManager = Injekt.get()
|
private val pkgName: String,
|
||||||
) : BasePresenter<ExtensionDetailsController>() {
|
) : BasePresenter<ExtensionDetailsController>() {
|
||||||
|
|
||||||
|
private val extensionManager: ExtensionManager by injectLazy()
|
||||||
|
|
||||||
val extension = extensionManager.installedExtensions.find { it.pkgName == pkgName }
|
val extension = extensionManager.installedExtensions.find { it.pkgName == pkgName }
|
||||||
|
|
||||||
override fun onCreate(savedState: Bundle?) {
|
override fun onCreate(savedState: Bundle?) {
|
||||||
|
@ -36,4 +40,11 @@ class ExtensionDetailsPresenter(
|
||||||
val extension = extension ?: return
|
val extension = extension ?: return
|
||||||
extensionManager.uninstallExtension(extension.pkgName)
|
extensionManager.uninstallExtension(extension.pkgName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun openInSettings() {
|
||||||
|
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {
|
||||||
|
data = Uri.fromParts("package", pkgName, null)
|
||||||
|
}
|
||||||
|
controller.startActivity(intent)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,11 +98,24 @@
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/btn_uninstall"
|
android:id="@+id/btn_uninstall"
|
||||||
|
style="@style/Widget.Tachiyomi.Button.OutlinedButton"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginEnd="4dp"
|
||||||
android:text="@string/ext_uninstall"
|
android:text="@string/ext_uninstall"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/btn_app_info"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/pkgname" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/btn_app_info"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginStart="4dp"
|
||||||
|
android:text="@string/ext_app_info"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/btn_uninstall"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/pkgname" />
|
app:layout_constraintTop_toBottomOf="@id/pkgname" />
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,4 @@
|
||||||
android:title="@string/action_disable_all"
|
android:title="@string/action_disable_all"
|
||||||
app:showAsAction="never" />
|
app:showAsAction="never" />
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/action_open_in_settings"
|
|
||||||
android:title="@string/action_open_in_settings"
|
|
||||||
app:showAsAction="never" />
|
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
|
|
@ -83,7 +83,6 @@
|
||||||
<!-- Do not translate "WebView" -->
|
<!-- Do not translate "WebView" -->
|
||||||
<string name="action_open_in_web_view">Open in WebView</string>
|
<string name="action_open_in_web_view">Open in WebView</string>
|
||||||
<string name="action_web_view" translatable="false">WebView</string>
|
<string name="action_web_view" translatable="false">WebView</string>
|
||||||
<string name="action_open_in_settings">Open in Settings</string>
|
|
||||||
<string name="action_migrate">Migrate</string>
|
<string name="action_migrate">Migrate</string>
|
||||||
<string name="action_display_mode">Display mode</string>
|
<string name="action_display_mode">Display mode</string>
|
||||||
<string name="action_display">Display</string>
|
<string name="action_display">Display</string>
|
||||||
|
@ -257,6 +256,7 @@
|
||||||
<string name="ext_untrusted">Untrusted</string>
|
<string name="ext_untrusted">Untrusted</string>
|
||||||
<string name="ext_uninstall">Uninstall</string>
|
<string name="ext_uninstall">Uninstall</string>
|
||||||
<string name="ext_available">Available</string>
|
<string name="ext_available">Available</string>
|
||||||
|
<string name="ext_app_info">App info</string>
|
||||||
<string name="untrusted_extension">Untrusted extension</string>
|
<string name="untrusted_extension">Untrusted extension</string>
|
||||||
<string name="untrusted_extension_message">This extension was signed with an untrusted certificate and wasn\'t activated.\n\nA malicious extension could read any login credentials stored in Tachiyomi or execute arbitrary code.\n\nBy trusting this certificate you accept these risks.</string>
|
<string name="untrusted_extension_message">This extension was signed with an untrusted certificate and wasn\'t activated.\n\nA malicious extension could read any login credentials stored in Tachiyomi or execute arbitrary code.\n\nBy trusting this certificate you accept these risks.</string>
|
||||||
<string name="obsolete_extension_message">This extension is no longer available.</string>
|
<string name="obsolete_extension_message">This extension is no longer available.</string>
|
||||||
|
|
|
@ -240,6 +240,8 @@
|
||||||
<item name="rippleColor">@null</item>
|
<item name="rippleColor">@null</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="Widget.Tachiyomi.Button.OutlinedButton" parent="Widget.MaterialComponents.Button.OutlinedButton" />
|
||||||
|
|
||||||
|
|
||||||
<!--=================-->
|
<!--=================-->
|
||||||
<!--Widgets.TabLayout-->
|
<!--Widgets.TabLayout-->
|
||||||
|
|
Loading…
Reference in a new issue