Add an exported flag in manifest

With b/150232615, we will need an explicit value set for the exported
flag when intent filters are present, as the default behavior is
changing for S+. This change adds the value reflecting the previous
default to the manifest.

These changes were made using an automated tool, the xml file may be
reformatted slightly creating a larger diff. The only "real" change is
the addition of "android:exported" to activities, services, and
receivers that have one or more intent-filters.

Bug: 150232615
Test: TH
Exempt-From-Owner-Approval: mechanical refactoring
Change-Id: Idc43e262fd2911e19f0bcd20add29e4c3392d3da
main
Ashwini Oruganti 2020-03-23 16:23:26 -07:00
parent fc2bc10530
commit 7c1b5497f2
2 changed files with 120 additions and 114 deletions

View File

@ -15,132 +15,141 @@
--> -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
coreApp="true" coreApp="true"
package="com.android.inputmethod.latin" package="com.android.inputmethod.latin"
android:versionCode="28"> android:versionCode="28">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" /> <uses-sdk android:minSdkVersion="21"
android:targetSdkVersion="28"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.READ_PROFILE" /> <uses-permission android:name="android.permission.READ_PROFILE"/>
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
<uses-permission android:name="android.permission.READ_SYNC_STATS" /> <uses-permission android:name="android.permission.READ_SYNC_STATS"/>
<uses-permission android:name="android.permission.READ_USER_DICTIONARY" /> <uses-permission android:name="android.permission.READ_USER_DICTIONARY"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
<uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" /> <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY"/>
<!-- A signature-protected permission to ask AOSP Keyboard to close the software keyboard. <!-- A signature-protected permission to ask AOSP Keyboard to close the software keyboard.
To use this, add the following line into calling application's AndroidManifest.xml To use this, add the following line into calling application's AndroidManifest.xml
<pre> <pre>
{@code {@code
<uses-permission android:name="com.android.inputmethod.latin.HIDE_SOFT_INPUT"/> <uses-permission android:name="com.android.inputmethod.latin.HIDE_SOFT_INPUT"/>
} }
</pre> </pre>
then call {@link android.content.Context#sendBroadcast(Intent)} as follows: then call {@link android.content.Context#sendBroadcast(Intent)} as follows:
<pre> <pre>
{@code {@code
sendBroadcast(new Intent("com.android.inputmethod.latin.HIDE_SOFT_INPUT") sendBroadcast(new Intent("com.android.inputmethod.latin.HIDE_SOFT_INPUT")
.setPackage("com.android.inputmethod.latin")); .setPackage("com.android.inputmethod.latin"));
} }
</pre> --> </pre> -->
<permission android:name="com.android.inputmethod.latin.HIDE_SOFT_INPUT" <permission android:name="com.android.inputmethod.latin.HIDE_SOFT_INPUT"
android:protectionLevel="signature" /> android:protectionLevel="signature"/>
<application android:label="@string/english_ime_name" <application android:label="@string/english_ime_name"
android:icon="@drawable/ic_launcher_keyboard" android:icon="@drawable/ic_launcher_keyboard"
android:supportsRtl="true" android:supportsRtl="true"
android:allowBackup="true" android:allowBackup="true"
android:defaultToDeviceProtectedStorage="true" android:defaultToDeviceProtectedStorage="true"
android:directBootAware="true"> android:directBootAware="true">
<!-- Services --> <!-- Services -->
<service android:name="LatinIME" <service android:name="LatinIME"
android:label="@string/english_ime_name" android:label="@string/english_ime_name"
android:permission="android.permission.BIND_INPUT_METHOD"> android:permission="android.permission.BIND_INPUT_METHOD"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.view.InputMethod" /> <action android:name="android.view.InputMethod"/>
</intent-filter> </intent-filter>
<meta-data android:name="android.view.im" android:resource="@xml/method" /> <meta-data android:name="android.view.im"
android:resource="@xml/method"/>
</service> </service>
<service android:name=".spellcheck.AndroidSpellCheckerService" <service android:name=".spellcheck.AndroidSpellCheckerService"
android:label="@string/spell_checker_service_name" android:label="@string/spell_checker_service_name"
android:permission="android.permission.BIND_TEXT_SERVICE"> android:permission="android.permission.BIND_TEXT_SERVICE"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.service.textservice.SpellCheckerService" /> <action android:name="android.service.textservice.SpellCheckerService"/>
</intent-filter> </intent-filter>
<meta-data android:name="android.view.textservice.scs" <meta-data android:name="android.view.textservice.scs"
android:resource="@xml/spellchecker" /> android:resource="@xml/spellchecker"/>
</service> </service>
<service android:name="com.android.inputmethod.dictionarypack.DictionaryService" <service android:name="com.android.inputmethod.dictionarypack.DictionaryService"
android:label="@string/dictionary_service_name"> android:label="@string/dictionary_service_name">
</service> </service>
<!-- Activities --> <!-- Activities -->
<activity android:name=".setup.SetupActivity" <activity android:name=".setup.SetupActivity"
android:theme="@style/platformActivityTheme" android:theme="@style/platformActivityTheme"
android:label="@string/english_ime_name" android:label="@string/english_ime_name"
android:icon="@drawable/ic_launcher_keyboard" android:icon="@drawable/ic_launcher_keyboard"
android:launchMode="singleTask" android:launchMode="singleTask"
android:noHistory="true"> android:noHistory="true"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity android:name=".permissions.PermissionsActivity"
android:name=".permissions.PermissionsActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:theme="@android:style/Theme.Translucent.NoTitleBar" android:exported="false"
android:exported="false" android:taskAffinity="">
android:taskAffinity="" >
</activity> </activity>
<activity android:name=".setup.SetupWizardActivity" <activity android:name=".setup.SetupWizardActivity"
android:theme="@style/platformActivityTheme" android:theme="@style/platformActivityTheme"
android:label="@string/english_ime_name" android:label="@string/english_ime_name"
android:clearTaskOnLaunch="true"> android:clearTaskOnLaunch="true"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".settings.SettingsActivity" <activity android:name=".settings.SettingsActivity"
android:theme="@style/platformSettingsTheme" android:theme="@style/platformSettingsTheme"
android:label="@string/english_ime_settings"> android:label="@string/english_ime_settings"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".spellcheck.SpellCheckerSettingsActivity" <activity android:name=".spellcheck.SpellCheckerSettingsActivity"
android:theme="@style/platformSettingsTheme" android:theme="@style/platformSettingsTheme"
android:label="@string/android_spell_checker_settings"> android:label="@string/android_spell_checker_settings"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name="com.android.inputmethod.dictionarypack.DictionarySettingsActivity" <activity android:name="com.android.inputmethod.dictionarypack.DictionarySettingsActivity"
android:theme="@style/platformSettingsTheme" android:theme="@style/platformSettingsTheme"
android:label="@string/dictionary_settings_title" android:label="@string/dictionary_settings_title"
android:uiOptions="splitActionBarWhenNarrow"> android:uiOptions="splitActionBarWhenNarrow"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name="com.android.inputmethod.dictionarypack.DownloadOverMeteredDialog" <activity android:name="com.android.inputmethod.dictionarypack.DownloadOverMeteredDialog"
android:theme="@style/platformActivityTheme" android:theme="@style/platformActivityTheme"
android:label="@string/dictionary_install_over_metered_network_prompt"> android:label="@string/dictionary_install_over_metered_network_prompt"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN"/>
</intent-filter> </intent-filter>
@ -148,47 +157,51 @@
<!-- Unexported activity used for tests. --> <!-- Unexported activity used for tests. -->
<activity android:name=".settings.TestFragmentActivity" <activity android:name=".settings.TestFragmentActivity"
android:exported="false" /> android:exported="false"/>
<!-- Broadcast receivers --> <!-- Broadcast receivers -->
<receiver android:name="SystemBroadcastReceiver"> <receiver android:name="SystemBroadcastReceiver"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" /> <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
<action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.USER_INITIALIZE" /> <action android:name="android.intent.action.USER_INITIALIZE"/>
<action android:name="android.intent.action.LOCALE_CHANGED" /> <action android:name="android.intent.action.LOCALE_CHANGED"/>
</intent-filter> </intent-filter>
</receiver> </receiver>
<receiver android:name="DictionaryPackInstallBroadcastReceiver" android:exported="false"> <receiver android:name="DictionaryPackInstallBroadcastReceiver"
android:exported="false">
<intent-filter> <intent-filter>
<action android:name="com.android.inputmethod.dictionarypack.aosp.UNKNOWN_CLIENT" /> <action android:name="com.android.inputmethod.dictionarypack.aosp.UNKNOWN_CLIENT"/>
</intent-filter> </intent-filter>
</receiver> </receiver>
<receiver android:name="com.android.inputmethod.dictionarypack.EventHandler"> <receiver android:name="com.android.inputmethod.dictionarypack.EventHandler"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.DOWNLOAD_COMPLETE" /> <action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
<action android:name="android.intent.action.DATE_CHANGED" /> <action android:name="android.intent.action.DATE_CHANGED"/>
<action android:name="com.android.inputmethod.dictionarypack.aosp.UPDATE_NOW" /> <action android:name="com.android.inputmethod.dictionarypack.aosp.UPDATE_NOW"/>
<action android:name="com.android.inputmethod.dictionarypack.aosp.INIT_AND_UPDATE_NOW" /> <action android:name="com.android.inputmethod.dictionarypack.aosp.INIT_AND_UPDATE_NOW"/>
</intent-filter> </intent-filter>
</receiver> </receiver>
<!-- Broadcast receiver for AccountManager#LOGIN_ACCOUNTS_CHANGED_ACTION. --> <!-- Broadcast receiver for AccountManager#LOGIN_ACCOUNTS_CHANGED_ACTION. -->
<receiver android:name=".accounts.AccountsChangedReceiver"> <receiver android:name=".accounts.AccountsChangedReceiver"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" /> <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED"/>
</intent-filter> </intent-filter>
</receiver> </receiver>
<!-- Content providers --> <!-- Content providers -->
<provider android:name="com.android.inputmethod.dictionarypack.DictionaryProvider" <provider android:name="com.android.inputmethod.dictionarypack.DictionaryProvider"
android:grantUriPermissions="true" android:grantUriPermissions="true"
android:exported="false" android:exported="false"
android:authorities="@string/authority" android:authorities="@string/authority"
android:multiprocess="false" android:multiprocess="false"
android:label="@string/dictionary_provider_name"> android:label="@string/dictionary_provider_name">
</provider> </provider>
</application> </application>
</manifest> </manifest>

View File

@ -14,34 +14,27 @@
limitations under the License. limitations under the License.
--> -->
<manifest <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.inputmethod.tools.edittextvariations"
package="com.android.inputmethod.tools.edittextvariations" android:versionName="0.67"
android:versionName="0.67" android:versionCode="67">
android:versionCode="67" <supports-screens android:resizeable="true"/>
> <uses-sdk android:targetSdkVersion="27"
<supports-screens android:resizeable="true" /> android:minSdkVersion="11"/>
<uses-sdk <application android:icon="@drawable/ic_launcher"
android:targetSdkVersion="27" android:label="@string/app_name"
android:minSdkVersion="11" /> android:allowBackup="false">
<application <activity android:name=".EditTextVariations"
android:icon="@drawable/ic_launcher" android:windowSoftInputMode="stateHidden|adjustPan"
android:label="@string/app_name" android:theme="@style/defaultActivityTheme"
android:allowBackup="false" android:label="@string/app_name"
> android:exported="true">
<activity
android:name=".EditTextVariations"
android:windowSoftInputMode="stateHidden|adjustPan"
android:theme="@style/defaultActivityTheme"
android:label="@string/app_name"
>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter> </intent-filter>
</activity> </activity>
<receiver <receiver android:name=".NotificationBroadcastReceiver"
android:name=".NotificationBroadcastReceiver" android:exported="false"/>
android:exported="false" />
</application> </application>
</manifest> </manifest>