diff --git a/README.md b/README.md
index 08165518..c1c9b9bd 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@


-
+
[](https://t.me/XiaofangInternet)
@@ -150,10 +150,10 @@ class MainHook : YukiHookXposedInitProxy {
新增 `by` 方法来设置 Hook 的时机和条件;
`YukiHookModulePrefs` 新增可控制的键值缓存,可在宿主运行时模块动态更新数据;
修复了一些可能存在的 BUG。
-- 1.0.5.1
+- 1.0.55
修正一处注释错误;
- 临时修复一个 BUG。
-- 1.0.5.2
+ 临时修复一个 BUG;
+ 增加了 `type` 中的大量 `android` 类型以及少量 `java` 类型;
修复新版与旧版 Kotlin APIs 的兼容性问题。
# Cooperations
diff --git a/build.gradle b/build.gradle
index 69987eaa..30a2be8c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,7 +10,7 @@ ext {
devUser = "fankesyooni"
userEmail = "qzmmcn@163.com"
groupId = "com.highcapable.yukihookapi"
- apiVersion = "1.0.5.2"
+ apiVersion = "1.0.55"
repoName = "YukiHookAPI"
repoDescription = "An efficient Kotlin version of the Xposed Hook API."
licenceName = "MIT License"
diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/YukiHookAPI.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/YukiHookAPI.kt
index 89659d6f..c8501040 100644
--- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/YukiHookAPI.kt
+++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/YukiHookAPI.kt
@@ -65,10 +65,10 @@ object YukiHookAPI {
private var isXposedInitialized = false
/** 获取当前 [YukiHookAPI] 的版本 */
- const val API_VERSION_NAME = "1.0.5.2"
+ const val API_VERSION_NAME = "1.0.55"
/** 获取当前 [YukiHookAPI] 的版本号 */
- const val API_VERSION_CODE = 8
+ const val API_VERSION_CODE = 9
/**
* 模块是否装载了 Xposed 回调方法
diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/ComponentTypeFactory.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/ComponentTypeFactory.kt
index e562841d..9eb0a63e 100644
--- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/ComponentTypeFactory.kt
+++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/ComponentTypeFactory.kt
@@ -30,21 +30,36 @@
package com.highcapable.yukihookapi.hook.type.android
import android.app.*
+import android.appwidget.AppWidgetHost
+import android.appwidget.AppWidgetManager
+import android.appwidget.AppWidgetProvider
+import android.appwidget.AppWidgetProviderInfo
import android.content.*
+import android.content.Intent.ShortcutIconResource
+import android.content.pm.*
+import android.content.pm.LauncherApps.ShortcutQuery
import android.content.res.ColorStateList
+import android.content.res.Configuration
import android.content.res.Resources
+import android.content.res.TypedArray
+import android.database.sqlite.SQLiteDatabase
import android.graphics.drawable.*
import android.icu.text.SimpleDateFormat
import android.media.MediaPlayer
import android.os.*
+import android.provider.Settings
import android.service.notification.StatusBarNotification
import android.text.SpannableStringBuilder
+import android.text.TextUtils
import android.util.*
-import android.view.Display
-import android.view.Window
-import android.view.WindowManager
+import android.view.*
+import android.view.accessibility.AccessibilityEvent
+import android.view.accessibility.AccessibilityManager
+import android.view.accessibility.AccessibilityNodeInfo
import android.widget.Toast
import com.highcapable.yukihookapi.hook.factory.classOf
+import org.w3c.dom.UserDataHandler
+import java.awt.Component
/**
* 获得 [android.R] 类型
@@ -184,6 +199,18 @@ val BaseBundleClass get() = BaseBundle::class.java
*/
val ResourcesClass get() = Resources::class.java
+/**
+ * 获得 [Configuration] 类型
+ * @return [Class]
+ */
+val ConfigurationClass get() = Configuration::class.java
+
+/**
+ * 获得 [ConfigurationInfo] 类型
+ * @return [Class]
+ */
+val ConfigurationInfoClass get() = ConfigurationInfo::class.java
+
/**
* 获得 [ContentResolver] 类型
* @return [Class]
@@ -196,6 +223,66 @@ val ContentResolverClass get() = ContentResolver::class.java
*/
val ContentProviderClass get() = ContentProvider::class.java
+/**
+ * 获得 [Settings] 类型
+ * @return [Class]
+ */
+val SettingsClass get() = Settings::class.java
+
+/**
+ * 获得 [Settings.System] 类型
+ * @return [Class]
+ */
+val Settings_SystemClass get() = Settings.System::class.java
+
+/**
+ * 获得 [Settings.Secure] 类型
+ * @return [Class]
+ */
+val Settings_SecureClass get() = Settings.Secure::class.java
+
+/**
+ * 获得 [TypedArray] 类型
+ * @return [Class]
+ */
+val TypedArrayClass get() = TypedArray::class.java
+
+/**
+ * 获得 [TypedValue] 类型
+ * @return [Class]
+ */
+val TypedValueClass get() = TypedValue::class.java
+
+/**
+ * 获得 [SparseArray] 类型
+ * @return [Class]
+ */
+val SparseArrayClass get() = SparseArray::class.java
+
+/**
+ * 获得 [SparseIntArray] 类型
+ * @return [Class]
+ */
+val SparseIntArrayClass get() = SparseIntArray::class.java
+
+/**
+ * 获得 [SparseBooleanArray] 类型
+ * @return [Class]
+ */
+val SparseBooleanArrayClass get() = SparseBooleanArray::class.java
+
+/**
+ * 获得 [SparseLongArray] 类型
+ * @return [Class]
+ */
+val SparseLongArrayClass get() = SparseLongArray::class.java
+
+/**
+ * 获得 [LongSparseArray] 类型
+ * @return [Class]
+ */
+val LongSparseArrayClass get() = LongSparseArray::class.java
+
/**
* 获得 [ArrayMap] 类型
* @return [Class]
@@ -260,12 +347,40 @@ val SimpleDateFormatClass_Android get() = SimpleDateFormat::class.java
*/
val Base64Class_Android get() = Base64::class.java
+/**
+ * 获得 [TextUtils] 类型
+ * @return [Class]
+ */
+val TextUtilsClass get() = TextUtils::class.java
+
/**
* 获得 [Window] 类型
* @return [Class]
*/
val WindowClass get() = Window::class.java
+/**
+ * 获得 [WindowMetrics] 类型
+ *
+ * ❗在 Android R (30) 及以上系统加入
+ * @return [Class]
+ */
+val WindowMetricsClass get() = WindowMetrics::class.java
+
+/**
+ * 获得 [WindowInsets] 类型
+ * @return [Class]
+ */
+val WindowInsetsClass get() = WindowInsets::class.java
+
+/**
+ * 获得 [WindowInsets.Type] 类型
+ *
+ * ❗在 Android R (30) 及以上系统加入
+ * @return [Class]
+ */
+val WindowInsets_TypeClass get() = WindowInsets.Type::class.java
+
/**
* 获得 [WindowManager] 类型
* @return [Class]
@@ -326,6 +441,24 @@ val ToastClass get() = Toast::class.java
*/
val IntentClass get() = Intent::class.java
+/**
+ * 获得 [Component] 类型
+ * @return [Class]
+ */
+val ComponentClass get() = Component::class.java
+
+/**
+ * 获得 [ComponentInfo] 类型
+ * @return [Class]
+ */
+val ComponentInfoClass get() = ComponentInfo::class.java
+
+/**
+ * 获得 [ComponentName] 类型
+ * @return [Class]
+ */
+val ComponentNameClass get() = ComponentName::class.java
+
/**
* 获得 [PendingIntent] 类型
* @return [Class]
@@ -490,4 +623,142 @@ val PowerManagerClass get() = PowerManager::class.java
* 获得 [PowerManager.WakeLock] 类型
* @return [Class]
*/
-val PowerManager_WakeLockClass get() = PowerManager.WakeLock::class.java
\ No newline at end of file
+val PowerManager_WakeLockClass get() = PowerManager.WakeLock::class.java
+
+/**
+ * 获得 [UserHandle] 类型
+ * @return [Class]
+ */
+val UserHandleClass get() = UserHandle::class.java
+
+/**
+ * 获得 [UserDataHandler] 类型
+ * @return [Class]
+ */
+val UserDataHandlerClass get() = UserDataHandler::class.java
+
+/**
+ * 获得 [ShortcutInfo] 类型
+ *
+ * ❗在 Android N_MR1 (25) 及以上系统加入
+ * @return [Class]
+ */
+val ShortcutInfoClass get() = ShortcutInfo::class.java
+
+/**
+ * 获得 [ShortcutManager] 类型
+ *
+ * ❗在 Android R (30) 及以上系统加入
+ * @return [Class]
+ */
+val ShortcutManagerClass get() = ShortcutManager::class.java
+
+/**
+ * 获得 [ShortcutQuery] 类型
+ *
+ * ❗在 Android N_MR1 (25) 及以上系统加入
+ * @return [Class]
+ */
+val ShortcutQueryClass get() = ShortcutQuery::class.java
+
+/**
+ * 获得 [KeyboardShortcutInfo] 类型
+ * @return [Class]
+ */
+val KeyboardShortcutInfoClass get() = KeyboardShortcutInfo::class.java
+
+/**
+ * 获得 [KeyboardShortcutGroup] 类型
+ * @return [Class]
+ */
+val KeyboardShortcutGroupClass get() = KeyboardShortcutGroup::class.java
+
+/**
+ * 获得 [ShortcutIconResource] 类型
+ * @return [Class]
+ */
+val ShortcutIconResourceClass get() = ShortcutIconResource::class.java
+
+/**
+ * 获得 [AppWidgetManager] 类型
+ * @return [Class]
+ */
+val AppWidgetManagerClass get() = AppWidgetManager::class.java
+
+/**
+ * 获得 [AppWidgetProvider] 类型
+ * @return [Class]
+ */
+val AppWidgetProviderClass get() = AppWidgetProvider::class.java
+
+/**
+ * 获得 [AppWidgetProviderInfo] 类型
+ * @return [Class]
+ */
+val AppWidgetProviderInfoClass get() = AppWidgetProviderInfo::class.java
+
+/**
+ * 获得 [AppWidgetHost] 类型
+ * @return [Class]
+ */
+val AppWidgetHostClass get() = AppWidgetHost::class.java
+
+/**
+ * 获得 [ActivityInfo] 类型
+ * @return [Class]
+ */
+val ActivityInfoClass get() = ActivityInfo::class.java
+
+/**
+ * 获得 [ResolveInfo] 类型
+ * @return [Class]
+ */
+val ResolveInfoClass get() = ResolveInfo::class.java
+
+/**
+ * 获得 [Property] 类型
+ * @return [Class]
+ */
+val PropertyClass get() = Property::class.java
+
+/**
+ * 获得 [IntProperty] 类型
+ * @return [Class]
+ */
+val IntPropertyClass get() = IntProperty::class.java
+
+/**
+ * 获得 [FloatProperty] 类型
+ * @return [Class]
+ */
+val FloatPropertyClass get() = FloatProperty::class.java
+
+/**
+ * 获得 [SQLiteDatabase] 类型
+ * @return [Class]
+ */
+val SQLiteDatabaseClass get() = SQLiteDatabase::class.java
+
+/**
+ * 获得 [StrictMode] 类型
+ * @return [Class]
+ */
+val StrictModeClass get() = StrictMode::class.java
+
+/**
+ * 获得 [AccessibilityManager] 类型
+ * @return [Class]
+ */
+val AccessibilityManagerClass get() = AccessibilityManager::class.java
+
+/**
+ * 获得 [AccessibilityEvent] 类型
+ * @return [Class]
+ */
+val AccessibilityEventClass get() = AccessibilityEvent::class.java
+
+/**
+ * 获得 [AccessibilityNodeInfo] 类型
+ * @return [Class]
+ */
+val AccessibilityNodeInfoClass get() = AccessibilityNodeInfo::class.java
\ No newline at end of file
diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/GraphicsTypeFactory.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/GraphicsTypeFactory.kt
index 56beae06..6bf42ae8 100644
--- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/GraphicsTypeFactory.kt
+++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/GraphicsTypeFactory.kt
@@ -32,6 +32,8 @@ package com.highcapable.yukihookapi.hook.type.android
import android.graphics.*
import android.graphics.drawable.*
import android.text.*
+import android.util.Size
+import android.util.SizeF
/**
* 获得 [Typeface] 类型
@@ -83,12 +85,30 @@ val ColorDrawableClass get() = ColorDrawable::class.java
*/
val BitmapDrawableClass get() = BitmapDrawable::class.java
+/**
+ * 获得 [Size] 类型
+ * @return [Class]
+ */
+val SizeClass get() = Size::class.java
+
+/**
+ * 获得 [SizeF] 类型
+ * @return [Class]
+ */
+val SizeFClass get() = SizeF::class.java
+
/**
* 获得 [Rect] 类型
* @return [Class]
*/
val RectClass get() = Rect::class.java
+/**
+ * 获得 [RectF] 类型
+ * @return [Class]
+ */
+val RectFClass get() = RectF::class.java
+
/**
* 获得 [NinePatch] 类型
* @return [Class]
@@ -119,6 +139,30 @@ val CanvasClass get() = Canvas::class.java
*/
val PointClass get() = Point::class.java
+/**
+ * 获得 [PointF] 类型
+ * @return [Class]
+ */
+val PointFClass get() = PointF::class.java
+
+/**
+ * 获得 [Matrix] 类型
+ * @return [Class]
+ */
+val MatrixClass get() = Matrix::class.java
+
+/**
+ * 获得 [ColorMatrix] 类型
+ * @return [Class]
+ */
+val ColorMatrixClass get() = ColorMatrix::class.java
+
+/**
+ * 获得 [ColorMatrixColorFilter] 类型
+ * @return [Class]
+ */
+val ColorMatrixColorFilterClass get() = ColorMatrixColorFilter::class.java
+
/**
* 获得 [Editable] 类型
* @return [Class]
diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/ViewTypeFactory.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/ViewTypeFactory.kt
index c2e9b9e9..2c1c1d58 100644
--- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/ViewTypeFactory.kt
+++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/android/ViewTypeFactory.kt
@@ -29,9 +29,17 @@
package com.highcapable.yukihookapi.hook.type.android
+import android.animation.*
+import android.appwidget.AppWidgetHostView
import android.util.AttributeSet
import android.view.*
+import android.view.animation.AlphaAnimation
+import android.view.animation.Animation
+import android.view.animation.TranslateAnimation
+import android.webkit.WebView
+import android.webkit.WebViewClient
import android.widget.*
+import android.widget.RemoteViews.RemoteView
/**
* 获得 [View] 类型
@@ -39,12 +47,72 @@ import android.widget.*
*/
val ViewClass get() = View::class.java
+/**
+ * 获得 [Surface] 类型
+ * @return [Class]
+ */
+val SurfaceClass get() = Surface::class.java
+
+/**
+ * 获得 [SurfaceView] 类型
+ * @return [Class]
+ */
+val SurfaceViewClass get() = SurfaceView::class.java
+
+/**
+ * 获得 [TextureView] 类型
+ * @return [Class]
+ */
+val TextureViewClass get() = TextureView::class.java
+
+/**
+ * 获得 [WebView] 类型
+ * @return [Class]
+ */
+val WebViewClass get() = WebView::class.java
+
+/**
+ * 获得 [WebViewClient] 类型
+ * @return [Class]
+ */
+val WebViewClientClass get() = WebViewClient::class.java
+
+/**
+ * 获得 [ViewStructure] 类型
+ * @return [Class]
+ */
+val ViewStructureClass get() = ViewStructure::class.java
+
/**
* 获得 [ViewGroup] 类型
* @return [Class]
*/
val ViewGroupClass get() = ViewGroup::class.java
+/**
+ * 获得 [ViewParent] 类型
+ * @return [Class]
+ */
+val ViewParentClass get() = ViewParent::class.java
+
+/**
+ * 获得 [AppWidgetHostView] 类型
+ * @return [Class]
+ */
+val AppWidgetHostViewClass get() = AppWidgetHostView::class.java
+
+/**
+ * 获得 [RemoteViews] 类型
+ * @return [Class]
+ */
+val RemoteViewsClass get() = RemoteViews::class.java
+
+/**
+ * 获得 [RemoteView] 类型
+ * @return [Class]
+ */
+val RemoteViewClass get() = RemoteView::class.java
+
/**
* 获得 [TextView] 类型
* @return [Class]
@@ -57,6 +125,12 @@ val TextViewClass get() = TextView::class.java
*/
val ImageViewClass get() = ImageView::class.java
+/**
+ * 获得 [ImageButton] 类型
+ * @return [Class]
+ */
+val ImageButtonClass get() = ImageButton::class.java
+
/**
* 获得 [EditText] 类型
* @return [Class]
@@ -99,6 +173,24 @@ val ListViewClass get() = ListView::class.java
*/
val LayoutInflaterClass get() = LayoutInflater::class.java
+/**
+ * 获得 [LayoutInflater.Filter] 类型
+ * @return [Class]
+ */
+val LayoutInflater_FilterClass get() = LayoutInflater.Filter::class.java
+
+/**
+ * 获得 [LayoutInflater.Factory] 类型
+ * @return [Class]
+ */
+val LayoutInflater_FactoryClass get() = LayoutInflater.Factory::class.java
+
+/**
+ * 获得 [LayoutInflater.Factory2] 类型
+ * @return [Class]
+ */
+val LayoutInflater_Factory2Class get() = LayoutInflater.Factory2::class.java
+
/**
* 获得 [ListAdapter] 类型
* @return [Class]
@@ -165,6 +257,12 @@ val FrameLayout_LayoutParamsClass get() = FrameLayout.LayoutParams::class.java
*/
val TextClockClass get() = TextClock::class.java
+/**
+ * 获得 [MotionEvent] 类型
+ * @return [Class]
+ */
+val MotionEventClass get() = MotionEvent::class.java
+
/**
* 获得 [View.OnClickListener] 类型
* @return [Class]
@@ -223,4 +321,94 @@ val ProgressBarClass get() = ProgressBar::class.java
* 获得 [AttributeSet] 类型
* @return [Class]
*/
-val AttributeSetClass get() = AttributeSet::class.java
\ No newline at end of file
+val AttributeSetClass get() = AttributeSet::class.java
+
+/**
+ * 获得 [Animation] 类型
+ * @return [Class]
+ */
+val AnimationClass get() = Animation::class.java
+
+/**
+ * 获得 [Animation.AnimationListener] 类型
+ * @return [Class]
+ */
+val Animation_AnimationListenerClass get() = Animation.AnimationListener::class.java
+
+/**
+ * 获得 [TranslateAnimation] 类型
+ * @return [Class]
+ */
+val TranslateAnimationClass get() = TranslateAnimation::class.java
+
+/**
+ * 获得 [AlphaAnimation] 类型
+ * @return [Class]
+ */
+val AlphaAnimationClass get() = AlphaAnimation::class.java
+
+/**
+ * 获得 [Animator] 类型
+ * @return [Class]
+ */
+val AnimatorClass get() = Animator::class.java
+
+/**
+ * 获得 [Animator.AnimatorListener] 类型
+ * @return [Class]
+ */
+val Animator_AnimatorListenerClass get() = Animator.AnimatorListener::class.java
+
+/**
+ * 获得 [ObjectAnimator] 类型
+ * @return [Class]
+ */
+val ObjectAnimatorClass get() = ObjectAnimator::class.java
+
+/**
+ * 获得 [ValueAnimator] 类型
+ * @return [Class]
+ */
+val ValueAnimatorClass get() = ValueAnimator::class.java
+
+/**
+ * 获得 [ValueAnimator.AnimatorUpdateListener] 类型
+ * @return [Class]
+ */
+val ValueAnimator_AnimatorUpdateListenerClass get() = ValueAnimator.AnimatorUpdateListener::class.java
+
+/**
+ * 获得 [ViewAnimator] 类型
+ * @return [Class]
+ */
+val ViewAnimatorClass get() = ViewAnimator::class.java
+
+/**
+ * 获得 [AnimatorSet] 类型
+ * @return [Class]
+ */
+val AnimatorSetClass get() = AnimatorSet::class.java
+
+/**
+ * 获得 [AnimatorSet.Builder] 类型
+ * @return [Class]
+ */
+val AnimatorSet_BuilderClass get() = AnimatorSet.Builder::class.java
+
+/**
+ * 获得 [PropertyValuesHolder] 类型
+ * @return [Class]
+ */
+val PropertyValuesHolderClass get() = PropertyValuesHolder::class.java
+
+/**
+ * 获得 [ViewPropertyAnimator] 类型
+ * @return [Class]
+ */
+val ViewPropertyAnimatorClass get() = ViewPropertyAnimator::class.java
+
+/**
+ * 获得 [View.MeasureSpec] 类型
+ * @return [Class]
+ */
+val View_MeasureSpecClass get() = View.MeasureSpec::class.java
\ No newline at end of file
diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/java/VariableTypeFactory.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/java/VariableTypeFactory.kt
index d2a77cc4..e4f57ee6 100644
--- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/java/VariableTypeFactory.kt
+++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/type/java/VariableTypeFactory.kt
@@ -44,6 +44,7 @@ import java.net.http.HttpClient
import java.text.SimpleDateFormat
import java.util.*
import java.util.concurrent.atomic.AtomicBoolean
+import java.util.function.Supplier
import java.util.zip.ZipEntry
import java.util.zip.ZipFile
import java.util.zip.ZipInputStream
@@ -424,6 +425,12 @@ val HttpClientClass get() = HttpClient::class.java
*/
val AtomicBooleanClass get() = AtomicBoolean::class.java
+/**
+ * 获得 [Supplier] 类型
+ * @return [Class]
+ */
+val SupplierClass get() = Supplier::class.java
+
/**
* 获得 [Class] 类型
* @return [Class]