diff --git a/java/res/layout/research_splash.xml b/java/res/layout/research_splash.xml
deleted file mode 100644
index 56fd7024f1f48539020ff553bead6dfc54f2f698..0000000000000000000000000000000000000000
--- a/java/res/layout/research_splash.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical"
-    android:id="@+id/research_splash_screen_layout">
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical">
-        <com.android.internal.widget.DialogTitle
-            style="?android:attr/windowTitleStyle"
-            android:singleLine="true"
-            android:ellipsize="end"
-            android:layout_width="match_parent"
-            android:layout_height="64dip"
-            android:layout_marginLeft="16dip"
-            android:layout_marginRight="16dip"
-            android:gravity="center_vertical|left"
-            android:text="@string/research_splash_title" />
-        <View android:layout_width="match_parent"
-            android:layout_height="2dip"
-            android:background="@android:color/holo_blue_light" />
-    </LinearLayout>
-
-    <TextView
-        android:text="@string/research_splash_content"
-        android:layout_height="fill_parent"
-        android:layout_width="match_parent"
-        android:layout_gravity="fill_horizontal|center_vertical"
-        android:layout_marginLeft="16dip"
-        android:layout_marginRight="16dip"
-        android:layout_marginBottom="16dip"
-        android:layout_marginTop="16dip"/>
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:divider="?android:attr/dividerHorizontal"
-        android:showDividers="beginning"
-        android:dividerPadding="0dip">
-        <LinearLayout
-            style="?android:attr/buttonBarStyle"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:measureWithLargestChild="true">
-            <Button
-                android:layout_width="0dip"
-                android:layout_gravity="left"
-                android:layout_weight="1"
-                android:maxLines="2"
-                stype="?android:attr/buttonBarButtonStyle"
-                android:textSize="14sp"
-                android:text="@string/research_dont_send_usage_info"
-                android:layout_height="wrap_content"
-                android:id="@+id/research_do_not_log_button" />
-            <Button
-                android:layout_width="0dip"
-                android:layout_gravity="right"
-                android:layout_weight="1"
-                android:maxLines="2"
-                style="?android:attr/buttonBarButtonStyle"
-                android:textSize="14sp"
-                android:text="@string/research_send_usage_info"
-                android:layout_height="wrap_content"
-                android:id="@+id/research_do_log_button" />
-        </LinearLayout>
-    </LinearLayout>
-</LinearLayout>
diff --git a/java/res/values/research_strings.xml b/java/res/values/research_strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2cad15eb08f40629abe3008a0cd084b6e31fe34e
--- /dev/null
+++ b/java/res/values/research_strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Contents of note explaining what data is collected and how. -->
+    <!-- TODO: remove translatable=false attribute once text is stable -->
+    <string name="research_splash_content" translatable="false"></string>
+</resources>
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 35cbcf3c44056412d63a56aff8262e863f4f245c..bd60844a3d4a1d59c09b6dc8e658391483d9b776 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -278,16 +278,11 @@
 
     <!-- Title of dialog shown at start informing users about contributing research usage data-->
     <!-- TODO: remove translatable=false attribute once text is stable -->
-    <string name="research_splash_title" translatable="false">Usage Participation</string>
-    <!-- Contents of note explaining what data is collected and how. -->
-    <!-- TODO: remove translatable=false attribute once text is stable -->
-    <string name="research_splash_content" translatable="false">Thank you for dogfooding this keyboard.\n\nIf you like it, please help us make it better by sending us usage information.  When enabled, the keyboard uploads general statistics, such as how fast you type, and also occasional samples of how you type words.\n\nNo passwords or non-dictionary words are ever automatically uploaded, and words are sampled infrequently enough so that reconstructing the meaning of what you typed is highly unlikely.\n\nYou can disable and reenable logging through the RLog menu by long-pressing on the microphone or settings key.\n</string>
-    <!-- Button label text for opting out of research usage data collection [CHAR LIMIT=50] -->
-    <!-- TODO: remove translatable=false attribute once text is stable -->
-    <string name="research_dont_send_usage_info" translatable="false">Do not send\nusage info</string>
-    <!-- Button label text for opting into research usage data collection [CHAR LIMIT=50] -->
+    <string name="research_splash_title" translatable="false">Warning</string>
+
+    <!-- Toast message informing users that logging has been disabled -->
     <!-- TODO: remove translatable=false attribute once text is stable -->
-    <string name="research_send_usage_info" translatable="false">Send usage info</string>
+    <string name="research_logging_disabled" translatable="false">Logging Disabled</string>
 
     <!-- Name for the research uploading service to be displayed to users.  [CHAR LIMIT=50] -->
     <!-- TODO: remove translatable=false attribute once text is stable -->
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 76f4957292e9f9a6e64f74e3b47e600712c924d4..39c3a808fc3f601138150243c2b7f5adc4401fc4 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1309,7 +1309,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
             break;
         case Keyboard.CODE_RESEARCH:
             if (ProductionFlag.IS_EXPERIMENTAL) {
-                ResearchLogger.getInstance().presentResearchDialog(this);
+                ResearchLogger.getInstance().onResearchKeySelected(this);
             }
             break;
         default:
diff --git a/java/src/com/android/inputmethod/research/ResearchLogger.java b/java/src/com/android/inputmethod/research/ResearchLogger.java
index 9bb81a034fadb5e6d19dfbb8546da3c7becaede5..5c2487195004e726b6a62cc704cc0073321ed144 100644
--- a/java/src/com/android/inputmethod/research/ResearchLogger.java
+++ b/java/src/com/android/inputmethod/research/ResearchLogger.java
@@ -35,6 +35,7 @@ import android.graphics.Color;
 import android.graphics.Paint;
 import android.graphics.Paint.Style;
 import android.inputmethodservice.InputMethodService;
+import android.net.Uri;
 import android.os.Build;
 import android.os.IBinder;
 import android.os.SystemClock;
@@ -43,15 +44,12 @@ import android.text.format.DateUtils;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.MotionEvent;
-import android.view.View;
-import android.view.View.OnClickListener;
 import android.view.Window;
 import android.view.WindowManager;
 import android.view.inputmethod.CompletionInfo;
 import android.view.inputmethod.CorrectionInfo;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputConnection;
-import android.widget.Button;
 import android.widget.Toast;
 
 import com.android.inputmethod.keyboard.Key;
@@ -251,44 +249,49 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
         if (windowToken == null) {
             return;
         }
-        mSplashDialog = new Dialog(mInputMethodService, android.R.style.Theme_Holo_Dialog);
-        mSplashDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
-        mSplashDialog.setContentView(R.layout.research_splash);
-        mSplashDialog.setCancelable(true);
+        final AlertDialog.Builder builder = new AlertDialog.Builder(mInputMethodService)
+                .setTitle(R.string.research_splash_title)
+                .setMessage(R.string.research_splash_content)
+                .setPositiveButton(android.R.string.yes,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                onUserLoggingConsent();
+                                mSplashDialog.dismiss();
+                            }
+                })
+                .setNegativeButton(android.R.string.no,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                final String packageName = mInputMethodService.getPackageName();
+                                final Uri packageUri = Uri.parse("package:" + packageName);
+                                final Intent intent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE,
+                                        packageUri);
+                                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                                mInputMethodService.startActivity(intent);
+                            }
+                })
+                .setCancelable(true)
+                .setOnCancelListener(
+                        new OnCancelListener() {
+                            @Override
+                            public void onCancel(DialogInterface dialog) {
+                                mInputMethodService.requestHideSelf(0);
+                            }
+                });
+        mSplashDialog = builder.create();
         final Window w = mSplashDialog.getWindow();
         final WindowManager.LayoutParams lp = w.getAttributes();
         lp.token = windowToken;
         lp.type = WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG;
         w.setAttributes(lp);
         w.addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
-        mSplashDialog.setOnCancelListener(new OnCancelListener() {
-            @Override
-            public void onCancel(DialogInterface dialog) {
-                mInputMethodService.requestHideSelf(0);
-            }
-        });
-        final Button doNotLogButton = (Button) mSplashDialog.findViewById(
-                R.id.research_do_not_log_button);
-        doNotLogButton.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                onUserLoggingElection(false);
-                mSplashDialog.dismiss();
-            }
-        });
-        final Button doLogButton = (Button) mSplashDialog.findViewById(R.id.research_do_log_button);
-        doLogButton.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                onUserLoggingElection(true);
-                mSplashDialog.dismiss();
-            }
-        });
         mSplashDialog.show();
     }
 
-    public void onUserLoggingElection(final boolean enableLogging) {
-        setLoggingAllowed(enableLogging);
+    public void onUserLoggingConsent() {
+        setLoggingAllowed(true);
         if (mPrefs == null) {
             return;
         }
@@ -450,12 +453,18 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
         prefsChanged(prefs);
     }
 
-    public void presentResearchDialog(final LatinIME latinIME) {
+    public void onResearchKeySelected(final LatinIME latinIME) {
         if (mInFeedbackDialog) {
             Toast.makeText(latinIME, R.string.research_please_exit_feedback_form,
                     Toast.LENGTH_LONG).show();
             return;
         }
+        presentFeedbackDialog(latinIME);
+    }
+
+    // TODO: currently unreachable.  Remove after being sure no menu is needed.
+    /*
+    public void presentResearchDialog(final LatinIME latinIME) {
         final CharSequence title = latinIME.getString(R.string.english_ime_research_log);
         final boolean showEnable = mIsLoggingSuspended || !sIsLogging;
         final CharSequence[] items = new CharSequence[] {
@@ -472,28 +481,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
                         presentFeedbackDialog(latinIME);
                         break;
                     case 1:
-                        if (showEnable) {
-                            if (!sIsLogging) {
-                                setLoggingAllowed(true);
-                            }
-                            resumeLogging();
-                            Toast.makeText(latinIME,
-                                    R.string.research_notify_session_logging_enabled,
-                                    Toast.LENGTH_LONG).show();
-                        } else {
-                            Toast toast = Toast.makeText(latinIME,
-                                    R.string.research_notify_session_log_deleting,
-                                    Toast.LENGTH_LONG);
-                            toast.show();
-                            boolean isLogDeleted = abort();
-                            final long currentTime = System.currentTimeMillis();
-                            final long resumeTime = currentTime + 1000 * 60 *
-                                    SUSPEND_DURATION_IN_MINUTES;
-                            suspendLoggingUntil(resumeTime);
-                            toast.cancel();
-                            Toast.makeText(latinIME, R.string.research_notify_logging_suspended,
-                                    Toast.LENGTH_LONG).show();
-                        }
+                        enableOrDisable(showEnable, latinIME);
                         break;
                 }
             }
@@ -504,6 +492,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
                 .setTitle(title);
         latinIME.showOptionDialog(builder.create());
     }
+    */
 
     private boolean mInFeedbackDialog = false;
     public void presentFeedbackDialog(LatinIME latinIME) {
@@ -511,6 +500,35 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
         latinIME.launchKeyboardedDialogActivity(FeedbackActivity.class);
     }
 
+    // TODO: currently unreachable.  Remove after being sure enable/disable is
+    // not needed.
+    /*
+    public void enableOrDisable(final boolean showEnable, final LatinIME latinIME) {
+        if (showEnable) {
+            if (!sIsLogging) {
+                setLoggingAllowed(true);
+            }
+            resumeLogging();
+            Toast.makeText(latinIME,
+                    R.string.research_notify_session_logging_enabled,
+                    Toast.LENGTH_LONG).show();
+        } else {
+            Toast toast = Toast.makeText(latinIME,
+                    R.string.research_notify_session_log_deleting,
+                    Toast.LENGTH_LONG);
+            toast.show();
+            boolean isLogDeleted = abort();
+            final long currentTime = System.currentTimeMillis();
+            final long resumeTime = currentTime + 1000 * 60 *
+                    SUSPEND_DURATION_IN_MINUTES;
+            suspendLoggingUntil(resumeTime);
+            toast.cancel();
+            Toast.makeText(latinIME, R.string.research_notify_logging_suspended,
+                    Toast.LENGTH_LONG).show();
+        }
+    }
+    */
+
     private static final String[] EVENTKEYS_FEEDBACK = {
         "UserTimestamp", "contents"
     };