import 'package:flutter/widgets.dart';
import 'package:nc_photos/pref.dart';

class AppLanguage {
  const AppLanguage(this.langId, this.nativeName, this.locale);

  final int langId;
  final String nativeName;
  final Locale locale;
}

String getSelectedLanguageName(BuildContext context) =>
    _getSelectedLanguage(context).nativeName;
Locale getSelectedLocale(BuildContext context) =>
    _getSelectedLanguage(context).locale;

final supportedLanguages = {
  _AppLanguageEnum.systemDefault.index:
      AppLanguage(_AppLanguageEnum.systemDefault.index, "System default", null),
  _AppLanguageEnum.english.index: AppLanguage(
      _AppLanguageEnum.english.index, "English", const Locale("en")),
  _AppLanguageEnum.spanish.index: AppLanguage(
      _AppLanguageEnum.spanish.index, "EspaƱol", const Locale("es")),
};

enum _AppLanguageEnum {
  // the order must not be changed
  systemDefault,
  english,
  spanish,
}

AppLanguage _getSelectedLanguage(BuildContext context) {
  try {
    final lang = Pref.inst().getLanguage();
    return supportedLanguages[lang];
  } catch (_) {
    return supportedLanguages[_AppLanguageEnum.systemDefault.index];
  }
}