大幅変更&環境バージョンアップ
This commit is contained in:
31
lib/provider/auth_provider.dart
Normal file
31
lib/provider/auth_provider.dart
Normal file
@ -0,0 +1,31 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:gifunavi/model/auth_user.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
final authUserStateProvider =
|
||||
StateNotifierProvider<AuthUserState, AuthUser>((ref) {
|
||||
return AuthUserState();
|
||||
});
|
||||
|
||||
class AuthUserState extends StateNotifier<AuthUser> {
|
||||
AuthUserState() : super(AuthUser());
|
||||
|
||||
Future<void> saveToDevice(String val) async {
|
||||
final SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
await prefs.setString("user_token", val);
|
||||
}
|
||||
|
||||
Future<String?> tokenFromDevice() async {
|
||||
final SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
return prefs.getString("user_token");
|
||||
}
|
||||
|
||||
Future<void> addLogin(AuthUser user) async {
|
||||
state = user;
|
||||
await saveToDevice(user.auth_token!);
|
||||
}
|
||||
|
||||
void removeLogin() {
|
||||
state = AuthUser();
|
||||
}
|
||||
}
|
||||
24
lib/provider/cached_tile_provider.dart
Normal file
24
lib/provider/cached_tile_provider.dart
Normal file
@ -0,0 +1,24 @@
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'dart:io';
|
||||
|
||||
class CacheProvider {
|
||||
static Future<void> initialize() async {
|
||||
final cacheDirectory = await getTemporaryDirectory();
|
||||
final mapCacheDir = Directory('${cacheDirectory.path}/map_cache');
|
||||
|
||||
if (!await mapCacheDir.exists()) {
|
||||
await mapCacheDir.create(recursive: true);
|
||||
}
|
||||
|
||||
// ここに追加の初期化ロジックを記述できます
|
||||
// 例:キャッシュサイズの制限設定、有効期限の設定など
|
||||
}
|
||||
|
||||
static Future<File> getCachedTile(String url) async {
|
||||
final cacheDirectory = await getTemporaryDirectory();
|
||||
final fileName = url.split('/').last;
|
||||
return File('${cacheDirectory.path}/map_cache/$fileName');
|
||||
}
|
||||
|
||||
// 他のキャッシュ関連メソッドをここに追加できます
|
||||
}
|
||||
22
lib/provider/game_state_provider.dart
Normal file
22
lib/provider/game_state_provider.dart
Normal file
@ -0,0 +1,22 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:gifunavi/model/game_state_instance.dart';
|
||||
|
||||
final gameStateNotifierProvider =
|
||||
StateNotifierProvider<GameStaticState, GameInsStatetance>((ref) {
|
||||
return GameStaticState();
|
||||
});
|
||||
|
||||
class GameStaticState extends StateNotifier<GameInsStatetance> {
|
||||
GameStaticState() : super(GameInsStatetance());
|
||||
|
||||
@override
|
||||
GameInsStatetance get state => super.state;
|
||||
|
||||
void startGame(GameInsStatetance gi) {
|
||||
state = gi;
|
||||
}
|
||||
|
||||
void doCheckin() {}
|
||||
|
||||
void makeGoal() {}
|
||||
}
|
||||
18
lib/provider/map_state_provider.dart
Normal file
18
lib/provider/map_state_provider.dart
Normal file
@ -0,0 +1,18 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:gifunavi/model/map_state_instance.dart';
|
||||
|
||||
final mapStateNotifierProvider =
|
||||
StateNotifierProvider<MapState, MapStateInstance>((ref) {
|
||||
return MapState();
|
||||
});
|
||||
|
||||
class MapState extends StateNotifier<MapStateInstance> {
|
||||
MapState() : super(MapStateInstance());
|
||||
|
||||
@override
|
||||
MapStateInstance get state => super.state;
|
||||
|
||||
void startGame(MapStateInstance mi) {
|
||||
state = mi;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user