finished customizable grade rarities
This commit is contained in:
@@ -387,10 +387,21 @@ class SettingsHelper {
|
||||
}
|
||||
|
||||
// v5 grade rarity texts
|
||||
static void surpriseGradeRarityText(BuildContext context) {
|
||||
static void surpriseGradeRarityText(
|
||||
BuildContext context, {
|
||||
required String title,
|
||||
required String cancel,
|
||||
required String done,
|
||||
required List<String> rarities,
|
||||
}) {
|
||||
showRoundedModalBottomSheet(
|
||||
context,
|
||||
child: const GradeColorsSetting(),
|
||||
child: GradeRarityTextSetting(
|
||||
title: title,
|
||||
cancel: cancel,
|
||||
done: done,
|
||||
defaultRarities: rarities,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -726,6 +737,141 @@ class _GradeColorsSettingState extends State<GradeColorsSetting> {
|
||||
}
|
||||
}
|
||||
|
||||
class GradeRarityTextSetting extends StatefulWidget {
|
||||
const GradeRarityTextSetting({
|
||||
super.key,
|
||||
required this.title,
|
||||
required this.cancel,
|
||||
required this.done,
|
||||
required this.defaultRarities,
|
||||
});
|
||||
|
||||
final String title;
|
||||
final String cancel;
|
||||
final String done;
|
||||
final List<String> defaultRarities;
|
||||
|
||||
@override
|
||||
_GradeRarityTextSettingState createState() => _GradeRarityTextSettingState();
|
||||
}
|
||||
|
||||
class _GradeRarityTextSettingState extends State<GradeRarityTextSetting> {
|
||||
late SettingsProvider settings;
|
||||
late DatabaseProvider db;
|
||||
late UserProvider user;
|
||||
|
||||
final _rarityText = TextEditingController();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
settings = Provider.of<SettingsProvider>(context, listen: false);
|
||||
db = Provider.of<DatabaseProvider>(context, listen: false);
|
||||
user = Provider.of<UserProvider>(context, listen: false);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: List.generate(5, (index) {
|
||||
return ClipOval(
|
||||
child: Material(
|
||||
type: MaterialType.transparency,
|
||||
child: InkWell(
|
||||
onTap: () async {
|
||||
showRenameDialog(
|
||||
title: widget.title,
|
||||
cancel: widget.cancel,
|
||||
done: widget.done,
|
||||
rarities:
|
||||
await db.userQuery.getGradeRarities(userId: user.id!),
|
||||
gradeIndex: (index + 1).toString(),
|
||||
defaultRarities: widget.defaultRarities,
|
||||
);
|
||||
},
|
||||
child: GradeValueWidget(GradeValue(index + 1, "", "", 0),
|
||||
fill: true, size: 36.0),
|
||||
),
|
||||
),
|
||||
);
|
||||
}),
|
||||
),
|
||||
),
|
||||
]);
|
||||
}
|
||||
|
||||
void showRenameDialog(
|
||||
{required String title,
|
||||
required String cancel,
|
||||
required String done,
|
||||
required Map<String, String> rarities,
|
||||
required String gradeIndex,
|
||||
required List<String> defaultRarities,
|
||||
required}) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (context) => StatefulBuilder(builder: (context, setS) {
|
||||
String? rr = rarities[gradeIndex];
|
||||
rr ??= '';
|
||||
|
||||
_rarityText.text = rr;
|
||||
|
||||
return AlertDialog(
|
||||
title: Text(title),
|
||||
content: TextField(
|
||||
controller: _rarityText,
|
||||
autofocus: true,
|
||||
decoration: InputDecoration(
|
||||
border: const OutlineInputBorder(),
|
||||
label: Text(defaultRarities[int.parse(gradeIndex) - 1]),
|
||||
suffixIcon: IconButton(
|
||||
icon: const Icon(FeatherIcons.x),
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
_rarityText.clear();
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
actions: [
|
||||
TextButton(
|
||||
child: Text(
|
||||
cancel,
|
||||
style: const TextStyle(fontWeight: FontWeight.w500),
|
||||
),
|
||||
onPressed: () {
|
||||
Navigator.of(context).maybePop();
|
||||
},
|
||||
),
|
||||
TextButton(
|
||||
child: Text(
|
||||
done,
|
||||
style: const TextStyle(fontWeight: FontWeight.w500),
|
||||
),
|
||||
onPressed: () {
|
||||
rarities[gradeIndex] = _rarityText.text;
|
||||
|
||||
Provider.of<DatabaseProvider>(context, listen: false)
|
||||
.userStore
|
||||
.storeGradeRarities(rarities, userId: user.id!);
|
||||
|
||||
Navigator.of(context).pop(true);
|
||||
},
|
||||
),
|
||||
],
|
||||
);
|
||||
}),
|
||||
).then((val) {
|
||||
_rarityText.clear();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
class LiveActivityColorSetting extends StatefulWidget {
|
||||
const LiveActivityColorSetting({super.key});
|
||||
|
||||
|
||||
@@ -84,7 +84,19 @@ class ExtrasSettingsScreenState extends State<ExtrasSettingsScreen> {
|
||||
onPressed: () async {
|
||||
// settingsProvider.update(
|
||||
// gradeOpeningFun: !settingsProvider.gradeOpeningFun);
|
||||
SettingsHelper.surpriseGradeRarityText(context);
|
||||
SettingsHelper.surpriseGradeRarityText(
|
||||
context,
|
||||
title: 'rarity_title'.i18n,
|
||||
cancel: 'cancel'.i18n,
|
||||
done: 'done'.i18n,
|
||||
rarities: [
|
||||
"common".i18n,
|
||||
"uncommon".i18n,
|
||||
"rare".i18n,
|
||||
"epic".i18n,
|
||||
"legendary".i18n,
|
||||
],
|
||||
);
|
||||
setState(() {});
|
||||
},
|
||||
trailingDivider: true,
|
||||
|
||||
@@ -8,18 +8,45 @@ extension SettingsLocalization on String {
|
||||
"personalization": "Personalization",
|
||||
"extras": "Extras",
|
||||
"surprise_grades": "Surprise Grades",
|
||||
"cancel": "Cancel",
|
||||
"done": "Done",
|
||||
"rarity_title": "Rarity Text",
|
||||
// default rarities
|
||||
"common": "Common",
|
||||
"uncommon": "Uncommon",
|
||||
"rare": "Rare",
|
||||
"epic": "Epic",
|
||||
"legendary": "Legendary",
|
||||
},
|
||||
"hu_hu": {
|
||||
"general": "Általános",
|
||||
"personalization": "Személyre szabás",
|
||||
"extras": "Extrák",
|
||||
"surprise_grades": "Meglepetés jegyek",
|
||||
"cancel": "Mégse",
|
||||
"done": "Kész",
|
||||
"rarity_title": "Ritkaság szövege",
|
||||
// default rarities
|
||||
"common": "Gyakori",
|
||||
"uncommon": "Nem gyakori",
|
||||
"rare": "Ritka",
|
||||
"epic": "Epikus",
|
||||
"legendary": "Legendás",
|
||||
},
|
||||
"de_de": {
|
||||
"general": "Allgemeine",
|
||||
"personalization": "Personalisierung",
|
||||
"extras": "Extras",
|
||||
"surprise_grades": "Überraschende Noten",
|
||||
"cancel": "Abbrechen",
|
||||
"done": "Bereit",
|
||||
"rarity_title": "Text zur Seltenheit",
|
||||
// default rarities
|
||||
"common": "Gemeinsam",
|
||||
"uncommon": "Gelegentlich",
|
||||
"rare": "Selten",
|
||||
"epic": "Episch",
|
||||
"legendary": "Legendär",
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user