Add setup wizard launcher icon

The setup wizard icon will be hidden if the Android Keyboard is in
system image.

Bug: 8239067
Change-Id: Ib0c0c9e3a0954512c3e03e42a661cdf86eff0dca
diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml
index b88c18e..c05b318 100644
--- a/java/AndroidManifest.xml
+++ b/java/AndroidManifest.xml
@@ -24,6 +24,7 @@
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.READ_USER_DICTIONARY" />
     <uses-permission android:name="android.permission.READ_CONTACTS" />
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 
     <application android:label="@string/aosp_android_keyboard_ime_name"
             android:icon="@mipmap/ic_ime_settings"
@@ -50,12 +51,21 @@
 
         <activity android:name=".setup.SetupActivity"
                 android:label="@string/aosp_android_keyboard_ime_name"
-                android:icon="@mipmap/ic_ime_settings">
+                android:icon="@drawable/ic_setup_wizard">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
 
+        <receiver android:name=".setup.LauncherIconVisibilityManager">
+            <intent-filter>
+                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
+                <action android:name="android.intent.action.USER_INITIALIZE" />
+            </intent-filter>
+        </receiver>
+
         <activity android:name="SettingsActivity" android:label="@string/english_ime_settings"
                   android:uiOptions="splitActionBarWhenNarrow">
             <intent-filter>