feat: Implement batch insertion for Pokémon and utilize it for more efficient initial data synchronization.

This commit is contained in:
2026-03-17 15:09:41 +01:00
parent fbf37e6861
commit 112d0136c9
2 changed files with 20 additions and 7 deletions
+5 -7
View File
@@ -38,18 +38,16 @@ class _PokemonListPageState extends State<PokemonListPage> {
final count = await PokedexDatabase.getCaughtCount();
// Check if database is empty for initial sync
// Check if database needs sync (less than 1025 pokemon)
List<Pokemon> localData = await PokedexDatabase.getPokemonList();
if(localData.isEmpty) {
if (localData.length < 1025) {
try {
final List<Pokemon> remoteData = await PokemonApi.getAllPokemon();
// Insert all
for (var p in remoteData) {
await PokedexDatabase.insertPokemon(p);
}
// Insert all missing pokemon using batch for performance
await PokedexDatabase.batchInsertPokemon(remoteData);
localData = await PokedexDatabase.getPokemonList();
} catch (e) {
debugPrint(e.toString());
debugPrint('Sync Error: $e');
}
}