enablePodStorage method

Future<bool> enablePodStorage()

Enables POD storage and migrates data.

Implementation

Future<bool> enablePodStorage() async {
  try {
    // Create POD service.

    _podService = PodFavoritesService(_prefs, _context, _child);

    // Test POD availability.

    final isPodAvailable = await _podService!.isPodAvailable();
    if (!isPodAvailable) {
      debugPrint(
        'POD is not available (user not logged in), cannot enable POD storage',
      );
      _podService = null;
      return false;
    }

    // Migrate data from local to POD.

    await _podService!.migrateToPod();

    // Update preference.

    _isPodStorageEnabled = true;
    await _prefs.setBool(_podStorageEnabledKey, true);

    notifyListeners();
    return true;
  } catch (e) {
    debugPrint('Failed to enable POD storage: $e');
    _podService = null;
    _isPodStorageEnabled = false;
    await _prefs.setBool(_podStorageEnabledKey, false);
    return false;
  }
}