Change IME picker dialog from Activity to Broadcast

Change-Id: I7bc3c3aa5544f3cb170703d6e71bad1bd54545b8
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 1e12a67..55fa851 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -373,16 +373,12 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".inputmethod.InputMethodDialogActivity"
-                android:clearTaskOnLaunch="true">
+        <receiver android:name=".inputmethod.InputMethodDialogReceiver"
+                android:enabled="true">
             <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
                 <action android:name="android.settings.SHOW_INPUT_METHOD_PICKER" />
-                <category android:name="android.intent.category.VOICE_LAUNCH" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
-        </activity>
+        </receiver>
 
         <activity android:name="Settings$UserDictionarySettingsActivity"
                 android:label="@string/user_dict_settings_titlebar"
diff --git a/src/com/android/settings/inputmethod/InputMethodDialogActivity.java b/src/com/android/settings/inputmethod/InputMethodDialogReceiver.java
similarity index 62%
rename from src/com/android/settings/inputmethod/InputMethodDialogActivity.java
rename to src/com/android/settings/inputmethod/InputMethodDialogReceiver.java
index 4efbf05..46be132 100644
--- a/src/com/android/settings/inputmethod/InputMethodDialogActivity.java
+++ b/src/com/android/settings/inputmethod/InputMethodDialogReceiver.java
@@ -15,17 +15,18 @@
  */
 package com.android.settings.inputmethod;
 
-import android.app.Activity;
+import android.content.BroadcastReceiver;
 import android.content.Context;
-import android.os.Bundle;
+import android.content.Intent;
+import android.provider.Settings;
 import android.view.inputmethod.InputMethodManager;
 
-public class InputMethodDialogActivity extends Activity {
+public class InputMethodDialogReceiver extends BroadcastReceiver {
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).
-                showInputMethodPicker();
-        finish();
+    public void onReceive(Context context, Intent intent) {
+        if (Settings.ACTION_SHOW_INPUT_METHOD_PICKER.equals(intent.getAction())) {
+            ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE))
+                    .showInputMethodPicker();
+        }
     }
 }