Add persistent storage
This commit is contained in:
@@ -76,6 +76,19 @@ class _KanjiPageState extends State<KanjiPage> {
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
const Divider(thickness: 5),
|
||||
if (widget.showDrawingPanel) ...[
|
||||
const SizedBox(width: 20),
|
||||
Row(
|
||||
children: [
|
||||
const Expanded(child: SizedBox()),
|
||||
IconButton(
|
||||
iconSize: 40,
|
||||
onPressed: controller.clear,
|
||||
icon: const Icon(Icons.delete),
|
||||
)
|
||||
],
|
||||
)
|
||||
]
|
||||
],
|
||||
),
|
||||
Positioned(
|
||||
|
||||
@@ -2,6 +2,8 @@ import 'dart:math';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:get_it/get_it.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:tangocard_reader/models/data_entry.dart';
|
||||
import 'package:tangocard_reader/screens/practise/kanji.dart';
|
||||
|
||||
@@ -32,13 +34,22 @@ const encouragingWords = [
|
||||
|
||||
class _PractiseViewState extends State<PractiseView> {
|
||||
late int currentCard;
|
||||
final List<bool> _flashcardToggles = [false, false];
|
||||
final List<bool> _kanjiToggles = [false, false];
|
||||
|
||||
bool get isShuffleMode => _flashcardToggles[0];
|
||||
bool get isLanguageSwitchedMode => _flashcardToggles[1];
|
||||
bool get isKanjiDrawingMode => _kanjiToggles[0];
|
||||
bool get isKanjiAnimationMode => _kanjiToggles[1];
|
||||
SharedPreferences get prefs => GetIt.instance.get<SharedPreferences>();
|
||||
|
||||
set isShuffleMode(b) => prefs.setBool('shuffleMode', b);
|
||||
set isLanguageSwitchedMode(b) => prefs.setBool('languageSwitchedMode', b);
|
||||
set isKanjiDrawingMode(b) => prefs.setBool('kanjiDrawingMode', b);
|
||||
set isKanjiAnimationMode(b) => prefs.setBool('kanjiAnimationMode', b);
|
||||
|
||||
bool get isShuffleMode => prefs.getBool('shuffleMode') ?? false;
|
||||
bool get isLanguageSwitchedMode =>
|
||||
prefs.getBool('languageSwitchedMode') ?? false;
|
||||
bool get isKanjiDrawingMode => prefs.getBool('kanjiDrawingMode') ?? false;
|
||||
bool get isKanjiAnimationMode => prefs.getBool('kanjiAnimationMode') ?? false;
|
||||
|
||||
List<bool> get _flashcardToggles => [isShuffleMode, isLanguageSwitchedMode];
|
||||
List<bool> get _kanjiToggles => [isKanjiDrawingMode, isKanjiAnimationMode];
|
||||
|
||||
int get randomCard => Random().nextInt(widget.entries.length);
|
||||
String get randomEncouragingWord =>
|
||||
@@ -98,8 +109,15 @@ class _PractiseViewState extends State<PractiseView> {
|
||||
Icon(Icons.translate),
|
||||
],
|
||||
isSelected: _flashcardToggles,
|
||||
onPressed: (int index) =>
|
||||
setState(() => _flashcardToggles[index] = !_flashcardToggles[index])),
|
||||
onPressed: (int index) => setState(
|
||||
() {
|
||||
if (index == 0) {
|
||||
isShuffleMode = !_flashcardToggles[index];
|
||||
} else if (index == 1) {
|
||||
isLanguageSwitchedMode = !_flashcardToggles[index];
|
||||
}
|
||||
},
|
||||
)),
|
||||
],
|
||||
),
|
||||
centerTitle: true,
|
||||
@@ -116,14 +134,22 @@ class _PractiseViewState extends State<PractiseView> {
|
||||
icon: const Icon(Icons.repeat),
|
||||
),
|
||||
ToggleButtons(
|
||||
selectedColor: Colors.white,
|
||||
children: const [
|
||||
Icon(Icons.edit),
|
||||
Icon(Icons.animation),
|
||||
],
|
||||
isSelected: _kanjiToggles,
|
||||
onPressed: (int index) =>
|
||||
setState(() => _kanjiToggles[index] = !_kanjiToggles[index])),
|
||||
selectedColor: Colors.white,
|
||||
children: const [
|
||||
Icon(Icons.edit),
|
||||
Icon(Icons.animation),
|
||||
],
|
||||
isSelected: _kanjiToggles,
|
||||
onPressed: (int index) => setState(
|
||||
() {
|
||||
if (index == 0) {
|
||||
isKanjiDrawingMode = !_flashcardToggles[index];
|
||||
} else if (index == 1) {
|
||||
isKanjiAnimationMode = !_flashcardToggles[index];
|
||||
}
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
centerTitle: true,
|
||||
|
||||
Reference in New Issue
Block a user