• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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        android:versionCode="28">
21
22    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
23
24    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
25    <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
26    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
27    <uses-permission android:name="android.permission.READ_CONTACTS" />
28    <uses-permission android:name="android.permission.READ_PROFILE" />
29    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
30    <uses-permission android:name="android.permission.READ_SYNC_STATS" />
31    <uses-permission android:name="android.permission.READ_USER_DICTIONARY" />
32    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
33    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
34    <uses-permission android:name="android.permission.VIBRATE" />
35    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
36    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
37    <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />
38
39    <!-- A signature-protected permission to ask AOSP Keyboard to close the software keyboard.
40         To use this, add the following line into calling application's AndroidManifest.xml
41         <pre>
42         {@code
43         <uses-permission android:name="com.android.inputmethod.latin.HIDE_SOFT_INPUT"/>
44         }
45         </pre>
46         then call {@link android.content.Context#sendBroadcast(Intent)} as follows:
47         <pre>
48         {@code
49         sendBroadcast(new Intent("com.android.inputmethod.latin.HIDE_SOFT_INPUT")
50                 .setPackage("com.android.inputmethod.latin"));
51         }
52         </pre> -->
53    <permission android:name="com.android.inputmethod.latin.HIDE_SOFT_INPUT"
54                android:protectionLevel="signature" />
55
56    <application android:label="@string/english_ime_name"
57            android:icon="@drawable/ic_launcher_keyboard"
58            android:supportsRtl="true"
59            android:allowBackup="true"
60            android:defaultToDeviceProtectedStorage="true"
61            android:directBootAware="true">
62
63        <!-- Services -->
64        <service android:name="LatinIME"
65                android:label="@string/english_ime_name"
66                android:permission="android.permission.BIND_INPUT_METHOD">
67            <intent-filter>
68                <action android:name="android.view.InputMethod" />
69            </intent-filter>
70            <meta-data android:name="android.view.im" android:resource="@xml/method" />
71        </service>
72
73        <service android:name=".spellcheck.AndroidSpellCheckerService"
74                 android:label="@string/spell_checker_service_name"
75                 android:permission="android.permission.BIND_TEXT_SERVICE">
76            <intent-filter>
77                <action android:name="android.service.textservice.SpellCheckerService" />
78            </intent-filter>
79            <meta-data android:name="android.view.textservice.scs"
80                    android:resource="@xml/spellchecker" />
81        </service>
82
83        <service android:name="com.android.inputmethod.dictionarypack.DictionaryService"
84                android:label="@string/dictionary_service_name">
85        </service>
86
87        <!-- Activities -->
88        <activity android:name=".setup.SetupActivity"
89                android:theme="@style/platformActivityTheme"
90                android:label="@string/english_ime_name"
91                android:icon="@drawable/ic_launcher_keyboard"
92                android:launchMode="singleTask"
93                android:noHistory="true">
94            <intent-filter>
95                <action android:name="android.intent.action.MAIN" />
96                <category android:name="android.intent.category.LAUNCHER" />
97            </intent-filter>
98        </activity>
99
100        <activity
101            android:name=".permissions.PermissionsActivity"
102            android:theme="@android:style/Theme.Translucent.NoTitleBar"
103            android:exported="false"
104            android:taskAffinity="" >
105        </activity>
106
107        <activity android:name=".setup.SetupWizardActivity"
108                android:theme="@style/platformActivityTheme"
109                android:label="@string/english_ime_name"
110                android:clearTaskOnLaunch="true">
111            <intent-filter>
112                <action android:name="android.intent.action.MAIN" />
113            </intent-filter>
114        </activity>
115
116        <activity android:name=".settings.SettingsActivity"
117                android:theme="@style/platformSettingsTheme"
118                android:label="@string/english_ime_settings">
119            <intent-filter>
120                <action android:name="android.intent.action.MAIN" />
121            </intent-filter>
122        </activity>
123
124        <activity android:name=".spellcheck.SpellCheckerSettingsActivity"
125                  android:theme="@style/platformSettingsTheme"
126                  android:label="@string/android_spell_checker_settings">
127            <intent-filter>
128                <action android:name="android.intent.action.MAIN" />
129            </intent-filter>
130        </activity>
131
132        <activity android:name="com.android.inputmethod.dictionarypack.DictionarySettingsActivity"
133                android:theme="@style/platformSettingsTheme"
134                android:label="@string/dictionary_settings_title"
135                android:uiOptions="splitActionBarWhenNarrow">
136            <intent-filter>
137                <action android:name="android.intent.action.MAIN"/>
138            </intent-filter>
139        </activity>
140
141        <activity android:name="com.android.inputmethod.dictionarypack.DownloadOverMeteredDialog"
142                android:theme="@style/platformActivityTheme"
143                android:label="@string/dictionary_install_over_metered_network_prompt">
144            <intent-filter>
145                <action android:name="android.intent.action.MAIN"/>
146            </intent-filter>
147        </activity>
148
149        <!-- Unexported activity used for tests. -->
150        <activity android:name=".settings.TestFragmentActivity"
151                android:exported="false" />
152
153        <!-- Broadcast receivers -->
154        <receiver android:name="SystemBroadcastReceiver">
155            <intent-filter>
156                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
157                <action android:name="android.intent.action.BOOT_COMPLETED" />
158                <action android:name="android.intent.action.USER_INITIALIZE" />
159                <action android:name="android.intent.action.LOCALE_CHANGED" />
160            </intent-filter>
161        </receiver>
162
163        <receiver android:name="DictionaryPackInstallBroadcastReceiver" android:exported="false">
164            <intent-filter>
165                <action android:name="com.android.inputmethod.dictionarypack.aosp.UNKNOWN_CLIENT" />
166            </intent-filter>
167        </receiver>
168
169        <receiver android:name="com.android.inputmethod.dictionarypack.EventHandler">
170            <intent-filter>
171                <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
172                <action android:name="android.intent.action.DATE_CHANGED" />
173                <action android:name="com.android.inputmethod.dictionarypack.aosp.UPDATE_NOW" />
174                <action android:name="com.android.inputmethod.dictionarypack.aosp.INIT_AND_UPDATE_NOW" />
175            </intent-filter>
176        </receiver>
177
178        <!-- Broadcast receiver for AccountManager#LOGIN_ACCOUNTS_CHANGED_ACTION. -->
179        <receiver android:name=".accounts.AccountsChangedReceiver">
180            <intent-filter>
181                <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" />
182            </intent-filter>
183        </receiver>
184
185        <!-- Content providers -->
186        <provider android:name="com.android.inputmethod.dictionarypack.DictionaryProvider"
187                android:grantUriPermissions="true"
188                android:exported="false"
189                android:authorities="@string/authority"
190                android:multiprocess="false"
191                android:label="@string/dictionary_provider_name">
192        </provider>
193    </application>
194</manifest>
195