loadLogo method

Future<void> loadLogo()

Implementation

Future<void> loadLogo() async {
  // 1. Check memory first
  if (logoUrl.value.isNotEmpty) return;

  // 2. Check local storage
  final cachedLogo = storageUtils.getClientLogo();

  if (cachedLogo != null && cachedLogo.isNotEmpty) {
    logoUrl.value = cachedLogo;
    return;
  }

  // 3. Call API
  try {
    final response = await apiService.getData(
      AppUrls.getSystemConfigParamValByName,
      queryParams: {'configParamName': 'CLIENT_LOGO_URL'},
    );

    final url = response.data['data']['ConfigParamVal'];

    // Save in memory
    logoUrl.value = url;

    // Save in local storage
    await storageUtils.setClientLogo(url);
  } catch (e) {
    // fallback
    logoUrl.value =
        'https://s3bucket.onthecloud.in:9000/apkupdates/images/vega_logo.svg';
  }
}