diff --git a/downloader-plugin/api/downloader-plugin.api b/downloader-plugin/api/downloader-plugin.api index 0f8d489f..d3a22653 100644 --- a/downloader-plugin/api/downloader-plugin.api +++ b/downloader-plugin/api/downloader-plugin.api @@ -120,12 +120,6 @@ public final class app/revanced/manager/plugin/downloader/webview/APIKt { public static final fun runWebView (Lapp/revanced/manager/plugin/downloader/GetScope;Ljava/lang/String;Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } -public abstract interface class app/revanced/manager/plugin/downloader/webview/IWebView : android/os/IInterface { - public static final field DESCRIPTOR Ljava/lang/String; - public abstract fun finish ()V - public abstract fun load (Ljava/lang/String;)V -} - public class app/revanced/manager/plugin/downloader/webview/IWebView$Default : app/revanced/manager/plugin/downloader/webview/IWebView { public fun ()V public fun asBinder ()Landroid/os/IBinder; @@ -140,13 +134,6 @@ public abstract class app/revanced/manager/plugin/downloader/webview/IWebView$St public fun onTransact (ILandroid/os/Parcel;Landroid/os/Parcel;I)Z } -public abstract interface class app/revanced/manager/plugin/downloader/webview/IWebViewEvents : android/os/IInterface { - public static final field DESCRIPTOR Ljava/lang/String; - public abstract fun download (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public abstract fun pageLoad (Ljava/lang/String;)V - public abstract fun ready (Lapp/revanced/manager/plugin/downloader/webview/IWebView;)V -} - public class app/revanced/manager/plugin/downloader/webview/IWebViewEvents$Default : app/revanced/manager/plugin/downloader/webview/IWebViewEvents { public fun ()V public fun asBinder ()Landroid/os/IBinder; @@ -162,12 +149,6 @@ public abstract class app/revanced/manager/plugin/downloader/webview/IWebViewEve public fun onTransact (ILandroid/os/Parcel;Landroid/os/Parcel;I)Z } -public final class app/revanced/manager/plugin/downloader/webview/WebViewActivity : androidx/activity/ComponentActivity { - public static final field KEY Ljava/lang/String; - public fun ()V - public fun onOptionsItemSelected (Landroid/view/MenuItem;)Z -} - public final class app/revanced/manager/plugin/downloader/webview/WebViewActivity$Parameters$Creator : android/os/Parcelable$Creator { public fun ()V public final fun createFromParcel (Landroid/os/Parcel;)Lapp/revanced/manager/plugin/downloader/webview/WebViewActivity$Parameters; diff --git a/downloader-plugin/src/main/aidl/app/revanced/manager/plugin/downloader/webview/IWebView.aidl b/downloader-plugin/src/main/aidl/app/revanced/manager/plugin/downloader/webview/IWebView.aidl index 3f8b85dc..d657fcc3 100644 --- a/downloader-plugin/src/main/aidl/app/revanced/manager/plugin/downloader/webview/IWebView.aidl +++ b/downloader-plugin/src/main/aidl/app/revanced/manager/plugin/downloader/webview/IWebView.aidl @@ -1,6 +1,7 @@ // IWebView.aidl package app.revanced.manager.plugin.downloader.webview; +@JavaPassthrough(annotation="@app.revanced.manager.plugin.downloader.PluginHostApi") oneway interface IWebView { void load(String url); void finish(); diff --git a/downloader-plugin/src/main/aidl/app/revanced/manager/plugin/downloader/webview/IWebViewEvents.aidl b/downloader-plugin/src/main/aidl/app/revanced/manager/plugin/downloader/webview/IWebViewEvents.aidl index 6bba2d8d..b0237de2 100644 --- a/downloader-plugin/src/main/aidl/app/revanced/manager/plugin/downloader/webview/IWebViewEvents.aidl +++ b/downloader-plugin/src/main/aidl/app/revanced/manager/plugin/downloader/webview/IWebViewEvents.aidl @@ -3,6 +3,7 @@ package app.revanced.manager.plugin.downloader.webview; import app.revanced.manager.plugin.downloader.webview.IWebView; +@JavaPassthrough(annotation="@app.revanced.manager.plugin.downloader.PluginHostApi") oneway interface IWebViewEvents { void ready(IWebView iface); void pageLoad(String url); diff --git a/downloader-plugin/src/main/java/app/revanced/manager/plugin/downloader/webview/API.kt b/downloader-plugin/src/main/java/app/revanced/manager/plugin/downloader/webview/API.kt index 0b07972b..2e5034e1 100644 --- a/downloader-plugin/src/main/java/app/revanced/manager/plugin/downloader/webview/API.kt +++ b/downloader-plugin/src/main/java/app/revanced/manager/plugin/downloader/webview/API.kt @@ -6,6 +6,7 @@ import app.revanced.manager.plugin.downloader.DownloaderScope import app.revanced.manager.plugin.downloader.GetScope import app.revanced.manager.plugin.downloader.Scope import app.revanced.manager.plugin.downloader.Downloader +import app.revanced.manager.plugin.downloader.PluginHostApi import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -31,6 +32,7 @@ interface WebViewCallbackScope : Scope { suspend fun load(url: String) } +@OptIn(PluginHostApi::class) class WebViewScope internal constructor( coroutineScope: CoroutineScope, private val scopeImpl: Scope, @@ -108,6 +110,7 @@ private value class Container(val value: U) * @param title The string displayed in the action bar. * @param block The control block. */ +@OptIn(PluginHostApi::class) suspend fun GetScope.runWebView( title: String, block: suspend WebViewScope.() -> InitialUrl diff --git a/downloader-plugin/src/main/java/app/revanced/manager/plugin/downloader/webview/WebViewActivity.kt b/downloader-plugin/src/main/java/app/revanced/manager/plugin/downloader/webview/WebViewActivity.kt index 0c9cfe38..aff01337 100644 --- a/downloader-plugin/src/main/java/app/revanced/manager/plugin/downloader/webview/WebViewActivity.kt +++ b/downloader-plugin/src/main/java/app/revanced/manager/plugin/downloader/webview/WebViewActivity.kt @@ -5,7 +5,6 @@ import android.os.Bundle import android.os.IBinder import android.os.Parcelable import android.view.MenuItem -import android.view.MotionEvent import android.webkit.CookieManager import android.webkit.WebSettings import android.webkit.WebView @@ -21,12 +20,15 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.viewModelScope +import app.revanced.manager.plugin.downloader.PluginHostApi import app.revanced.manager.plugin.downloader.R import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.launch import kotlinx.parcelize.Parcelize +@OptIn(PluginHostApi::class) +@PluginHostApi class WebViewActivity : ComponentActivity() { @SuppressLint("SetJavaScriptEnabled") override fun onCreate(savedInstanceState: Bundle?) { @@ -108,6 +110,7 @@ class WebViewActivity : ComponentActivity() { } } +@OptIn(PluginHostApi::class) internal class WebViewModel : ViewModel() { init { CookieManager.getInstance().apply { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ab9e5bc8..325e1127 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -28,7 +28,7 @@ kotlin = "2.1.0" android-gradle-plugin = "8.7.3" dev-tools-gradle-plugin = "2.1.0-1.0.29" about-libraries-gradle-plugin = "11.1.1" -binary-compatibility-validator = "0.15.1" +binary-compatibility-validator = "0.17.0" coil = "2.6.0" app-icon-loader-coil = "1.5.0" skrapeit = "1.2.2"