VoiceDialerReceiver.java revision 538879a6f24ff7305e66d719e751b5d612029bf3
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 com.android.voicedialer.RecognizerEngine;
21538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.content.Context;
22538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.content.Intent;
23538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.content.BroadcastReceiver;
24538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.provider.Telephony.Intents;
25538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.util.Config;
26538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.util.Log;
27538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectimport android.widget.Toast;
28538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project
29538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Projectpublic class VoiceDialerReceiver extends BroadcastReceiver {
30538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project    private static final String TAG = "VoiceDialerReceiver";
31538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project
32538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project    @Override
33538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project    public void onReceive(Context context, Intent intent) {
34538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project        if (Config.LOGD) Log.d(TAG, "onReceive " + intent);
35538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project
36538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project        // fetch up useful stuff
37538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project        String action = intent.getAction();
38538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project        String host = intent.getData() != null ? intent.getData().getHost() : null;
39538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project
40538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project        // force recompilation of g2g on boot
41538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project        if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {
42538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project            RecognizerEngine.deleteCachedGrammarFiles(context);
43538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project        }
44538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project
45538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project        // force recompilation if apps change, for 'OPEN' command
46538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project        else if (Intent.ACTION_PACKAGE_ADDED.equals(action) ||
47538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project                Intent.ACTION_PACKAGE_CHANGED.equals(action) ||
48538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project                Intent.ACTION_PACKAGE_REMOVED.equals(action)) {
49538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project            RecognizerEngine.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
65538879a6f24ff7305e66d719e751b5d612029bf3The Android Open Source Project}
66