You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 2bf361c
Browse filesBrowse the repository at this point in the historyBrowse files
feat(plugins): dynamic toolbar icons, mic permission, and API dump
Add ToolbarAction.iconProvider and IdeUIService.refreshToolbarActions so plugins can drive state-based animated toolbar icons; declare RECORD_AUDIO for voice plugins. Collapse the duplicate editor renderer overrides into a single GhostTextRenderer that extends TracingEditorRenderer (keeps the ADFA-2468 block-line data-race guard), and regenerate the plugin-api golden file so apiCheck passes.
Copy file name to clipboardExpand all lines: plugin-api/api/plugin-api.api
+34Lines changed: 34 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -6,16 +6,25 @@ public abstract interface class com/itsaky/androidide/plugins/IPlugin {
6
6
}
7
7
8
8
public abstract interface class com/itsaky/androidide/plugins/PluginContext {
9
+
public abstract fun addPluginLifecycleListener (Lcom/itsaky/androidide/plugins/PluginLifecycleListener;)V
9
10
public abstract fun getAndroidContext ()Landroid/content/Context;
10
11
public abstract fun getAppFilesDir ()Ljava/io/File;
12
+
public abstract fun getAppSharedPreferences (Ljava/lang/String;)Landroid/content/SharedPreferences;
11
13
public abstract fun getEventBus ()Ljava/lang/Object;
12
14
public abstract fun getLogger ()Lcom/itsaky/androidide/plugins/PluginLogger;
13
15
public abstract fun getPluginDataDir ()Ljava/io/File;
14
16
public abstract fun getPluginFilesDir ()Ljava/io/File;
15
17
public abstract fun getPluginId ()Ljava/lang/String;
18
+
public abstract fun getPluginService (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
16
19
public abstract fun getPluginSharedPreferences (Ljava/lang/String;)Landroid/content/SharedPreferences;
20
+
public abstract fun getPluginVersion (Ljava/lang/String;)Ljava/lang/String;
21
+
public abstract fun getProvidedServices ()Ljava/util/List;
17
22
public abstract fun getResources ()Lcom/itsaky/androidide/plugins/ResourceManager;
18
23
public abstract fun getServices ()Lcom/itsaky/androidide/plugins/ServiceRegistry;
24
+
public abstract fun isPluginActive (Ljava/lang/String;)Z
25
+
public abstract fun registerService (Ljava/lang/Class;Ljava/lang/Object;)V
26
+
public abstract fun removePluginLifecycleListener (Lcom/itsaky/androidide/plugins/PluginLifecycleListener;)V
27
+
public abstract fun unregisterService (Ljava/lang/Class;)V
19
28
}
20
29
21
30
public final class com/itsaky/androidide/plugins/PluginInfo {
@@ -36,6 +45,12 @@ public final class com/itsaky/androidide/plugins/PluginInfo {
36
45
public fun toString ()Ljava/lang/String;
37
46
}
38
47
48
+
public abstract interface class com/itsaky/androidide/plugins/PluginLifecycleListener {
49
+
public abstract fun onPluginActivated (Ljava/lang/String;)V
50
+
public abstract fun onPluginDeactivated (Ljava/lang/String;)V
51
+
public abstract fun onPluginUninstalled (Ljava/lang/String;)V
52
+
}
53
+
39
54
public abstract interface class com/itsaky/androidide/plugins/PluginLogger {
40
55
public abstract fun debug (Ljava/lang/String;)V
41
56
public abstract fun debug (Ljava/lang/String;Ljava/lang/Throwable;)V
@@ -1053,6 +1068,7 @@ public final class com/itsaky/androidide/plugins/extensions/ToolbarAction {
1053
1068
public fun equals (Ljava/lang/Object;)Z
1054
1069
public final fun getAction ()Lkotlin/jvm/functions/Function0;
1055
1070
public final fun getIcon ()Ljava/lang/Integer;
1071
+
public final fun getIconProvider ()Lkotlin/jvm/functions/Function0;
1056
1072
public final fun getId ()Ljava/lang/String;
1057
1073
public final fun getOrder ()I
1058
1074
public final fun getShowAsAction ()Lcom/itsaky/androidide/plugins/extensions/ShowAsAction;
@@ -1063,6 +1079,7 @@ public final class com/itsaky/androidide/plugins/extensions/ToolbarAction {
1063
1079
public final fun isVisible ()Z
1064
1080
public final fun isVisibleProvider ()Lkotlin/jvm/functions/Function0;
1065
1081
public final fun setEnabledProvider (Lkotlin/jvm/functions/Function0;)V
1082
+
public final fun setIconProvider (Lkotlin/jvm/functions/Function0;)V
1066
1083
public final fun setVisibleProvider (Lkotlin/jvm/functions/Function0;)V
1067
1084
public fun toString ()Ljava/lang/String;
1068
1085
}
@@ -1151,6 +1168,10 @@ public final class com/itsaky/androidide/plugins/services/CursorPosition {
1151
1168
public fun toString ()Ljava/lang/String;
1152
1169
}
1153
1170
1171
+
public abstract interface class com/itsaky/androidide/plugins/services/EditorContentChangeListener {
1172
+
public abstract fun onContentChanged (Ljava/lang/String;IILjava/lang/String;)V
1173
+
}
1174
+
1154
1175
public abstract class com/itsaky/androidide/plugins/services/ExtractResult {
1155
1176
}
1156
1177
@@ -1224,9 +1245,11 @@ public final class com/itsaky/androidide/plugins/services/IdeCommandService$Defa
1224
1245
}
1225
1246
1226
1247
public abstract interface class com/itsaky/androidide/plugins/services/IdeEditorService {
1248
+
public abstract fun addContentChangeListener (Lcom/itsaky/androidide/plugins/services/EditorContentChangeListener;)V
1227
1249
public abstract fun addFileChangeListener (Lcom/itsaky/androidide/plugins/services/FileChangeListener;)V
1228
1250
public abstract fun appendToLine (Ljava/io/File;ILjava/lang/String;)Z
1229
1251
public abstract fun deleteLine (Ljava/io/File;I)Z
1252
+
public abstract fun dismissInlineSuggestion ()V
1230
1253
public abstract fun getCurrentCursorPosition ()Lcom/itsaky/androidide/plugins/services/CursorPosition;
1231
1254
public abstract fun getCurrentFile ()Ljava/io/File;
1232
1255
public abstract fun getCurrentFileContent ()Ljava/lang/String;
@@ -1248,11 +1271,20 @@ public abstract interface class com/itsaky/androidide/plugins/services/IdeEditor
1248
1271
public abstract fun openFile (Ljava/io/File;)Z
1249
1272
public abstract fun openFileAt (Ljava/io/File;II)Z
1250
1273
public abstract fun prependToLine (Ljava/io/File;ILjava/lang/String;)Z
1274
+
public abstract fun removeContentChangeListener (Lcom/itsaky/androidide/plugins/services/EditorContentChangeListener;)V
1251
1275
public abstract fun removeFileChangeListener (Lcom/itsaky/androidide/plugins/services/FileChangeListener;)V
1252
1276
public abstract fun replaceLine (Ljava/io/File;ILjava/lang/String;)Z
1253
1277
public abstract fun replaceRange (Ljava/io/File;Lcom/itsaky/androidide/plugins/services/SelectionRange;Ljava/lang/String;)Z
1254
1278
public abstract fun replaceSelection (Ljava/lang/String;)Z
1255
1279
public abstract fun saveCurrentFile ()Z
1280
+
public abstract fun showInlineSuggestion (Ljava/lang/String;)V
1281
+
}
1282
+
1283
+
public final class com/itsaky/androidide/plugins/services/IdeEditorService$DefaultImpls {
1284
+
public static fun addContentChangeListener (Lcom/itsaky/androidide/plugins/services/IdeEditorService;Lcom/itsaky/androidide/plugins/services/EditorContentChangeListener;)V
1285
+
public static fun dismissInlineSuggestion (Lcom/itsaky/androidide/plugins/services/IdeEditorService;)V
1286
+
public static fun removeContentChangeListener (Lcom/itsaky/androidide/plugins/services/IdeEditorService;Lcom/itsaky/androidide/plugins/services/EditorContentChangeListener;)V
1287
+
public static fun showInlineSuggestion (Lcom/itsaky/androidide/plugins/services/IdeEditorService;Ljava/lang/String;)V
1256
1288
}
1257
1289
1258
1290
public abstract interface class com/itsaky/androidide/plugins/services/IdeEditorTabService {
@@ -1354,6 +1386,7 @@ public abstract interface class com/itsaky/androidide/plugins/services/IdeUIServ
1354
1386
public abstract fun getCurrentActivity ()Landroid/app/Activity;
1355
1387
public abstract fun isUIAvailable ()Z
1356
1388
public abstract fun openPluginScreen (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
1389
+
public abstract fun refreshToolbarActions ()V
1357
1390
}
1358
1391
1359
1392
public final class com/itsaky/androidide/plugins/services/IdeUIService$Companion {
@@ -1366,6 +1399,7 @@ public final class com/itsaky/androidide/plugins/services/IdeUIService$Companion
1366
1399
public final class com/itsaky/androidide/plugins/services/IdeUIService$DefaultImpls {
1367
1400
public static fun openPluginScreen (Lcom/itsaky/androidide/plugins/services/IdeUIService;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
1368
1401
public static synthetic fun openPluginScreen$default (Lcom/itsaky/androidide/plugins/services/IdeUIService;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Z
1402
+
public static fun refreshToolbarActions (Lcom/itsaky/androidide/plugins/services/IdeUIService;)V
1369
1403
}
1370
1404
1371
1405
public abstract interface class com/itsaky/androidide/plugins/services/LlmInferenceService {
0 commit comments