1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2012 The Android Open Source Project
3
4     Licensed under the Apache License, Version 2.0 (the "License");
5     you may not use this file except in compliance with the License.
6     You may obtain a copy of the License at
7
8          http://www.apache.org/licenses/LICENSE-2.0
9
10     Unless required by applicable law or agreed to in writing, software
11     distributed under the License is distributed on an "AS IS" BASIS,
12     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13     See the License for the specific language governing permissions and
14     limitations under the License.
15-->
16
17<manifest xmlns:android="http://schemas.android.com/apk/res/android"
18        coreApp="true"
19        package="com.android.inputmethod.latin">
20
21    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
22
23    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
24    <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
25    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
26    <uses-permission android:name="android.permission.READ_CONTACTS" />
27    <uses-permission android:name="android.permission.READ_PROFILE" />
28    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
29    <uses-permission android:name="android.permission.READ_SYNC_STATS" />
30    <uses-permission android:name="android.permission.READ_USER_DICTIONARY" />
31    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
32    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
33    <uses-permission android:name="android.permission.VIBRATE" />
34    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
35    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
36    <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />
37
38    <application android:label="@string/english_ime_name"
39            android:icon="@drawable/ic_launcher_keyboard"
40            android:supportsRtl="true"
41            android:allowBackup="true">
42
43        <!-- Services -->
44        <service android:name="LatinIME"
45                android:label="@string/english_ime_name"
46                android:permission="android.permission.BIND_INPUT_METHOD">
47            <intent-filter>
48                <action android:name="android.view.InputMethod" />
49            </intent-filter>
50            <meta-data android:name="android.view.im" android:resource="@xml/method" />
51        </service>
52
53        <service android:name=".spellcheck.AndroidSpellCheckerService"
54                 android:label="@string/spell_checker_service_name"
55                 android:permission="android.permission.BIND_TEXT_SERVICE">
56            <intent-filter>
57                <action android:name="android.service.textservice.SpellCheckerService" />
58            </intent-filter>
59            <meta-data android:name="android.view.textservice.scs"
60                    android:resource="@xml/spellchecker" />
61        </service>
62
63        <service android:name="com.android.inputmethod.dictionarypack.DictionaryService"
64                android:label="@string/dictionary_service_name">
65        </service>
66
67        <!-- Activities -->
68        <activity android:name=".setup.SetupActivity"
69                android:theme="@style/platformActivityTheme"
70                android:label="@string/english_ime_name"
71                android:icon="@drawable/ic_launcher_keyboard"
72                android:launchMode="singleTask"
73                android:noHistory="true">
74            <intent-filter>
75                <action android:name="android.intent.action.MAIN" />
76                <category android:name="android.intent.category.LAUNCHER" />
77            </intent-filter>
78        </activity>
79
80        <activity
81            android:name=".permissions.PermissionsActivity"
82            android:theme="@android:style/Theme.Translucent.NoTitleBar"
83            android:exported="false"
84            android:taskAffinity="" >
85        </activity>
86
87        <activity android:name=".setup.SetupWizardActivity"
88                android:theme="@style/platformActivityTheme"
89                android:label="@string/english_ime_name"
90                android:clearTaskOnLaunch="true">
91            <intent-filter>
92                <action android:name="android.intent.action.MAIN" />
93            </intent-filter>
94        </activity>
95
96        <activity android:name=".settings.SettingsActivity"
97                android:theme="@style/platformSettingsTheme"
98                android:label="@string/english_ime_settings">
99            <intent-filter>
100                <action android:name="android.intent.action.MAIN" />
101            </intent-filter>
102        </activity>
103
104        <activity android:name=".spellcheck.SpellCheckerSettingsActivity"
105                  android:theme="@style/platformSettingsTheme"
106                  android:label="@string/android_spell_checker_settings">
107            <intent-filter>
108                <action android:name="android.intent.action.MAIN" />
109            </intent-filter>
110        </activity>
111
112        <activity android:name="com.android.inputmethod.dictionarypack.DictionarySettingsActivity"
113                android:theme="@style/platformSettingsTheme"
114                android:label="@string/dictionary_settings_title"
115                android:uiOptions="splitActionBarWhenNarrow">
116            <intent-filter>
117                <action android:name="android.intent.action.MAIN"/>
118            </intent-filter>
119        </activity>
120
121        <activity android:name="com.android.inputmethod.dictionarypack.DownloadOverMeteredDialog"
122                android:theme="@style/platformActivityTheme"
123                android:label="@string/dictionary_install_over_metered_network_prompt">
124            <intent-filter>
125                <action android:name="android.intent.action.MAIN"/>
126            </intent-filter>
127        </activity>
128
129        <!-- Unexported activity used for tests. -->
130        <activity android:name=".settings.TestFragmentActivity"
131                android:exported="false" />
132
133        <!-- Broadcast receivers -->
134        <receiver android:name="SystemBroadcastReceiver">
135            <intent-filter>
136                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
137                <action android:name="android.intent.action.BOOT_COMPLETED" />
138                <action android:name="android.intent.action.USER_INITIALIZE" />
139                <action android:name="android.intent.action.LOCALE_CHANGED" />
140            </intent-filter>
141        </receiver>
142
143        <receiver android:name="DictionaryPackInstallBroadcastReceiver" android:exported="false">
144            <intent-filter>
145                <action android:name="com.android.inputmethod.dictionarypack.aosp.UNKNOWN_CLIENT" />
146            </intent-filter>
147        </receiver>
148
149        <receiver android:name="com.android.inputmethod.dictionarypack.EventHandler">
150            <intent-filter>
151                <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
152                <action android:name="android.intent.action.DATE_CHANGED" />
153                <action android:name="com.android.inputmethod.dictionarypack.aosp.UPDATE_NOW" />
154                <action android:name="com.android.inputmethod.dictionarypack.aosp.INIT_AND_UPDATE_NOW" />
155            </intent-filter>
156        </receiver>
157
158        <!-- Broadcast receiver for AccountManager#LOGIN_ACCOUNTS_CHANGED_ACTION. -->
159        <receiver android:name=".accounts.AccountsChangedReceiver">
160            <intent-filter>
161                <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" />
162            </intent-filter>
163        </receiver>
164
165        <!-- Content providers -->
166        <provider android:name="com.android.inputmethod.dictionarypack.DictionaryProvider"
167                android:grantUriPermissions="true"
168                android:exported="false"
169                android:authorities="@string/authority"
170                android:multiprocess="false"
171                android:label="@string/dictionary_provider_name">
172        </provider>
173    </application>
174</manifest>
175