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            android:defaultToDeviceProtectedStorage="true"
43            android:directBootAware="true">
44
45        <!-- Services -->
46        <service android:name="LatinIME"
47                android:label="@string/english_ime_name"
48                android:permission="android.permission.BIND_INPUT_METHOD">
49            <intent-filter>
50                <action android:name="android.view.InputMethod" />
51            </intent-filter>
52            <meta-data android:name="android.view.im" android:resource="@xml/method" />
53        </service>
54
55        <service android:name=".spellcheck.AndroidSpellCheckerService"
56                 android:label="@string/spell_checker_service_name"
57                 android:permission="android.permission.BIND_TEXT_SERVICE">
58            <intent-filter>
59                <action android:name="android.service.textservice.SpellCheckerService" />
60            </intent-filter>
61            <meta-data android:name="android.view.textservice.scs"
62                    android:resource="@xml/spellchecker" />
63        </service>
64
65        <service android:name="com.android.inputmethod.dictionarypack.DictionaryService"
66                android:label="@string/dictionary_service_name">
67        </service>
68
69        <!-- Activities -->
70        <activity android:name=".setup.SetupActivity"
71                android:theme="@style/platformActivityTheme"
72                android:label="@string/english_ime_name"
73                android:icon="@drawable/ic_launcher_keyboard"
74                android:launchMode="singleTask"
75                android:noHistory="true">
76            <intent-filter>
77                <action android:name="android.intent.action.MAIN" />
78                <category android:name="android.intent.category.LAUNCHER" />
79            </intent-filter>
80        </activity>
81
82        <activity
83            android:name=".permissions.PermissionsActivity"
84            android:theme="@android:style/Theme.Translucent.NoTitleBar"
85            android:exported="false"
86            android:taskAffinity="" >
87        </activity>
88
89        <activity android:name=".setup.SetupWizardActivity"
90                android:theme="@style/platformActivityTheme"
91                android:label="@string/english_ime_name"
92                android:clearTaskOnLaunch="true">
93            <intent-filter>
94                <action android:name="android.intent.action.MAIN" />
95            </intent-filter>
96        </activity>
97
98        <activity android:name=".settings.SettingsActivity"
99                android:theme="@style/platformSettingsTheme"
100                android:label="@string/english_ime_settings">
101            <intent-filter>
102                <action android:name="android.intent.action.MAIN" />
103            </intent-filter>
104        </activity>
105
106        <activity android:name=".spellcheck.SpellCheckerSettingsActivity"
107                  android:theme="@style/platformSettingsTheme"
108                  android:label="@string/android_spell_checker_settings">
109            <intent-filter>
110                <action android:name="android.intent.action.MAIN" />
111            </intent-filter>
112        </activity>
113
114        <activity android:name="com.android.inputmethod.dictionarypack.DictionarySettingsActivity"
115                android:theme="@style/platformSettingsTheme"
116                android:label="@string/dictionary_settings_title"
117                android:uiOptions="splitActionBarWhenNarrow">
118            <intent-filter>
119                <action android:name="android.intent.action.MAIN"/>
120            </intent-filter>
121        </activity>
122
123        <activity android:name="com.android.inputmethod.dictionarypack.DownloadOverMeteredDialog"
124                android:theme="@style/platformActivityTheme"
125                android:label="@string/dictionary_install_over_metered_network_prompt">
126            <intent-filter>
127                <action android:name="android.intent.action.MAIN"/>
128            </intent-filter>
129        </activity>
130
131        <!-- Unexported activity used for tests. -->
132        <activity android:name=".settings.TestFragmentActivity"
133                android:exported="false" />
134
135        <!-- Broadcast receivers -->
136        <receiver android:name="SystemBroadcastReceiver">
137            <intent-filter>
138                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
139                <action android:name="android.intent.action.BOOT_COMPLETED" />
140                <action android:name="android.intent.action.USER_INITIALIZE" />
141                <action android:name="android.intent.action.LOCALE_CHANGED" />
142            </intent-filter>
143        </receiver>
144
145        <receiver android:name="DictionaryPackInstallBroadcastReceiver" android:exported="false">
146            <intent-filter>
147                <action android:name="com.android.inputmethod.dictionarypack.aosp.UNKNOWN_CLIENT" />
148            </intent-filter>
149        </receiver>
150
151        <receiver android:name="com.android.inputmethod.dictionarypack.EventHandler">
152            <intent-filter>
153                <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
154                <action android:name="android.intent.action.DATE_CHANGED" />
155                <action android:name="com.android.inputmethod.dictionarypack.aosp.UPDATE_NOW" />
156                <action android:name="com.android.inputmethod.dictionarypack.aosp.INIT_AND_UPDATE_NOW" />
157            </intent-filter>
158        </receiver>
159
160        <!-- Broadcast receiver for AccountManager#LOGIN_ACCOUNTS_CHANGED_ACTION. -->
161        <receiver android:name=".accounts.AccountsChangedReceiver">
162            <intent-filter>
163                <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" />
164            </intent-filter>
165        </receiver>
166
167        <!-- Content providers -->
168        <provider android:name="com.android.inputmethod.dictionarypack.DictionaryProvider"
169                android:grantUriPermissions="true"
170                android:exported="false"
171                android:authorities="@string/authority"
172                android:multiprocess="false"
173                android:label="@string/dictionary_provider_name">
174        </provider>
175    </application>
176</manifest>
177