1538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project/* 2538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 3538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * 4538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * you may not use this file except in compliance with the License. 6538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * You may obtain a copy of the License at 7538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * 8538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * 10538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * See the License for the specific language governing permissions and 14538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project * limitations under the License. 15538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project */ 16538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project 17538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectpackage com.android.voicedialer; 18538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project 19538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project 20538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.content.Context; 21538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.content.Intent; 22538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.content.BroadcastReceiver; 23538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.provider.Telephony.Intents; 24538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.util.Log; 25538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.widget.Toast; 26538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project 27538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectpublic class VoiceDialerReceiver extends BroadcastReceiver { 28538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project private static final String TAG = "VoiceDialerReceiver"; 29538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project 30538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project @Override 31538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project public void onReceive(Context context, Intent intent) { 32d3694c0511a27f1fb44fa2760ee0d4562ffe1066Joe Onorato if (false) Log.d(TAG, "onReceive " + intent); 33538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project 34538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project // fetch up useful stuff 35538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project String action = intent.getAction(); 36538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project String host = intent.getData() != null ? intent.getData().getHost() : null; 37538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project 38538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project // force recompilation of g2g on boot 39538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project if (Intent.ACTION_BOOT_COMPLETED.equals(action)) { 4064c64e7c25e6efe31fa53369ec49db442b68ff9amah CommandRecognizerEngine.deleteCachedGrammarFiles(context); 41538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project } 42538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project 43538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project // force recompilation if apps change, for 'OPEN' command 44538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project else if (Intent.ACTION_PACKAGE_ADDED.equals(action) || 45538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project Intent.ACTION_PACKAGE_CHANGED.equals(action) || 464ee33c8ad07afd0a2b11471e148d660faae54f1bSuchi Amalapurapu Intent.ACTION_PACKAGE_REMOVED.equals(action) || 474ee33c8ad07afd0a2b11471e148d660faae54f1bSuchi Amalapurapu Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE.equals(action) || 484ee33c8ad07afd0a2b11471e148d660faae54f1bSuchi Amalapurapu Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE.equals(action)) { 4964c64e7c25e6efe31fa53369ec49db442b68ff9amah CommandRecognizerEngine.deleteCachedGrammarFiles(context); 50538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project } 51538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project 52538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project // Voice Dialer Logging Enabled, *#*#8351#*#* 53538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project else if (Intents.SECRET_CODE_ACTION.equals(action) && "8351".equals(host)) { 54538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project RecognizerLogger.enable(context); 55538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project Toast.makeText(context, R.string.logging_enabled, Toast.LENGTH_LONG).show(); 56538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project } 57538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project 58538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project // Voice Dialer Logging Disabled, *#*#8350#*#* 59538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project else if (Intents.SECRET_CODE_ACTION.equals(action) && "8350".equals(host)) { 60538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project RecognizerLogger.disable(context); 61538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project Toast.makeText(context, R.string.logging_disabled, Toast.LENGTH_LONG).show(); 62538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project } 63538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project } 64538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project} 65