mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-08-21 10:27:24 +02:00
feat: add button setting type for extension actions
- Add SettingTypeButton for action buttons in extension settings - Add Action field to ExtensionSetting for JS function name - Update extension detail page UI to render button settings - Add InvokeAction method to execute button actions
This commit is contained in:
@@ -355,11 +355,12 @@ class QualitySpecificSetting {
|
||||
class ExtensionSetting {
|
||||
final String key;
|
||||
final String label;
|
||||
final String type; // 'string', 'number', 'boolean', 'select'
|
||||
final String type; // 'string', 'number', 'boolean', 'select', 'button'
|
||||
final dynamic defaultValue;
|
||||
final String? description;
|
||||
final List<String>? options; // For select type
|
||||
final bool required;
|
||||
final String? action; // For button type: JS function name to call
|
||||
|
||||
const ExtensionSetting({
|
||||
required this.key,
|
||||
@@ -369,6 +370,7 @@ class ExtensionSetting {
|
||||
this.description,
|
||||
this.options,
|
||||
this.required = false,
|
||||
this.action,
|
||||
});
|
||||
|
||||
factory ExtensionSetting.fromJson(Map<String, dynamic> json) {
|
||||
@@ -380,6 +382,7 @@ class ExtensionSetting {
|
||||
description: json['description'] as String?,
|
||||
options: (json['options'] as List<dynamic>?)?.cast<String>(),
|
||||
required: json['required'] as bool? ?? false,
|
||||
action: json['action'] as String?,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user