Pārlūkot izejas kodu

Move extension app info button

Aligns with TachiyomiJ2K.
arkon 3 gadi atpakaļ
vecāks
revīzija
33b3be0d0e

+ 1 - 12
app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsController.kt

@@ -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()
     }
     }

+ 3 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsHeaderAdapter.kt

@@ -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

+ 15 - 4
app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/ExtensionDetailsPresenter.kt

@@ -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.api.get
+import uy.kohesive.injekt.injectLazy
 
 
 class ExtensionDetailsPresenter(
 class ExtensionDetailsPresenter(
-    val pkgName: String,
-    private val extensionManager: ExtensionManager = Injekt.get()
+    private val controller: ExtensionDetailsController,
+    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)
+    }
 }
 }

+ 13 - 0
app/src/main/res/layout/extension_detail_header.xml

@@ -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" />
 
 

+ 0 - 5
app/src/main/res/menu/extension_details.xml

@@ -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>

+ 1 - 1
app/src/main/res/values/strings.xml

@@ -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>

+ 2 - 0
app/src/main/res/values/styles.xml

@@ -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-->