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