chore: Display attribution for sticker packs
This commit is contained in:
parent
089932a9f4
commit
87ca3c1f1f
3 changed files with 53 additions and 4 deletions
|
|
@ -3458,5 +3458,7 @@
|
|||
"useAsSticker": "Use as sticker",
|
||||
"useAsEmoji": "Use as emoji",
|
||||
"stickerPackNameAlreadyExists": "Sticker pack name already exists",
|
||||
"newStickerPack": "New sticker pack"
|
||||
"newStickerPack": "New sticker pack",
|
||||
"stickerPackName": "Sticker pack name",
|
||||
"attribution": "Attribution"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,12 +47,24 @@ class EmotesSettingsController extends State<EmotesSettings> {
|
|||
room = widget.roomId != null
|
||||
? Matrix.of(context).client.getRoomById(widget.roomId!)
|
||||
: null;
|
||||
stateKey = packKeys?.firstOrNull;
|
||||
setStateKey(packKeys?.firstOrNull, reset: false);
|
||||
}
|
||||
|
||||
void setStateKey(String key) {
|
||||
void setStateKey(String? key, {reset = true}) {
|
||||
stateKey = key;
|
||||
resetAction();
|
||||
|
||||
final event = key == null
|
||||
? null
|
||||
: room?.getState(
|
||||
'im.ponies.room_emotes',
|
||||
key,
|
||||
);
|
||||
final eventPack = event?.content.tryGetMap<String, Object?>('pack');
|
||||
packDisplayNameController.text =
|
||||
eventPack?.tryGet<String>('display_name') ?? '';
|
||||
packAttributionController.text =
|
||||
eventPack?.tryGet<String>('attribution') ?? '';
|
||||
if (reset) resetAction();
|
||||
}
|
||||
|
||||
bool showSave = false;
|
||||
|
|
@ -139,6 +151,12 @@ class EmotesSettingsController extends State<EmotesSettings> {
|
|||
setState(() {});
|
||||
}
|
||||
|
||||
final TextEditingController packDisplayNameController =
|
||||
TextEditingController();
|
||||
|
||||
final TextEditingController packAttributionController =
|
||||
TextEditingController();
|
||||
|
||||
void removeImageAction(String oldImageCode) => setState(() {
|
||||
pack!.images.remove(oldImageCode);
|
||||
showSave = true;
|
||||
|
|
|
|||
|
|
@ -152,6 +152,35 @@ class EmotesSettingsView extends StatelessWidget {
|
|||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: <Widget>[
|
||||
if (controller.room != null) ...[
|
||||
const SizedBox(height: 16),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
child: TextField(
|
||||
maxLength: 256,
|
||||
controller: controller.packDisplayNameController,
|
||||
readOnly: true, //controller.readonly,
|
||||
decoration: InputDecoration(
|
||||
counter: const SizedBox.shrink(),
|
||||
hintText: controller.stateKey,
|
||||
labelText: L10n.of(context).stickerPackName,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
child: TextField(
|
||||
maxLength: 256,
|
||||
controller: controller.packAttributionController,
|
||||
readOnly: true, //controller.readonly,
|
||||
decoration: InputDecoration(
|
||||
counter: const SizedBox.shrink(),
|
||||
labelText: L10n.of(context).attribution,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
if (!controller.readonly) ...[
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue