diff options
author | 2012-08-30 22:56:52 -0700 | |
---|---|---|
committer | 2012-08-30 22:56:53 -0700 | |
commit | 9bbc7ec052e3cb0a575fd56e5d8ddbc172841f6e (patch) | |
tree | a9a488f46fad3a3a32fefaa83aa95da7a542a401 /java/src | |
parent | 48643b08a989f158ea81d55ad904f2be4993bd93 (diff) | |
parent | 25405eafb05d6f2096922b04e5d9ff2ac2bd1a10 (diff) | |
download | latinime-9bbc7ec052e3cb0a575fd56e5d8ddbc172841f6e.tar.gz latinime-9bbc7ec052e3cb0a575fd56e5d8ddbc172841f6e.tar.xz latinime-9bbc7ec052e3cb0a575fd56e5d8ddbc172841f6e.zip |
Merge changes Ifb983c35,I0b947421 into jb-mr1-dev
* changes:
ResearchLogger clean up splash screen
ResearchLogger no longer offers option to disable logging
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 2 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/research/ResearchLogger.java | 128 |
2 files changed, 74 insertions, 56 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 76f495729..39c3a808f 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 9bb81a034..5c2487195 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" }; |