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