/* * Copyright 2012-2015, Institute of Cybernetics at Tallinn University of Technology * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package ee.ioc.phon.android.speak; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.speech.RecognizerIntent; import java.util.ArrayList; /** * <p>Provides a list of supported languages. This is asked e.g. by the Google * Translate app which wants to determine when to display a microphone * button next to the text input box.</p> * <p/> * <p>TODO: we just return et_EE and a few other languages, * but actually we should query which languages are supported by the * currently selected recognizer server, and return these.</p> * * @author Kaarel Kaljurand */ public class GetLanguageDetailsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("received: " + intent.getAction()); Bundle resultExtras = getResultExtras(true); // TODO: not sure how we are supposed to behave in this case, where // another recognizer has already responded to the broadcast and filled // in its values. if (!resultExtras.isEmpty()) { Log.i("Overwriting extras: " + resultExtras); } // TODO: send different results depending on the service (Ws and Http) // in general support different languages). Not sure that the framework supports this. ArrayList<String> langs = new ArrayList<>(); langs.add("et-EE"); langs.add("en-US"); Bundle extras = new Bundle(); extras.putString(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "et-EE"); extras.putStringArrayList(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES, langs); setResultExtras(extras); } }