package io.flutter.plugins.firebase_mlkit_language; import androidx.annotation.NonNull; import com.google.android.gms.tasks.OnFailureListener; import com.google.android.gms.tasks.OnSuccessListener; import com.google.firebase.FirebaseApp; import com.google.firebase.ml.naturallanguage.translate.FirebaseTranslateModelManager; import com.google.firebase.ml.naturallanguage.translate.FirebaseTranslateRemoteModel; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import io.flutter.plugin.common.MethodChannel; class ViewModels implements ViewModelAgent{ static final ViewModels instance = new ViewModels(); private ViewModels(){} @Override public void handleEvent(final MethodChannel.Result result) { FirebaseTranslateModelManager.getInstance().getAvailableModels(FirebaseApp.getInstance()) .addOnSuccessListener(new OnSuccessListener<Set<FirebaseTranslateRemoteModel>>() { @Override public void onSuccess(Set<FirebaseTranslateRemoteModel> models) { List<Map<String, Object>> translateModels = new ArrayList<>(models.size()); for (FirebaseTranslateRemoteModel model : models) { Map<String, Object> langData = new HashMap<>(); langData.put("languageCode", model.getLanguageCode()); translateModels.add(langData); } result.success(translateModels); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { result.error("viewError", e.getLocalizedMessage(), null); } }); } }