Loading java/src/com/android/inputmethod/latin/ImportantNoticeDialog.java 0 → 100644 +78 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 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. */ package com.android.inputmethod.latin; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnDismissListener; import android.content.DialogInterface.OnShowListener; import com.android.inputmethod.latin.utils.ImportantNoticeUtils; /** * The dialog box that shows the important notice contents. */ public final class ImportantNoticeDialog extends AlertDialog implements OnShowListener, OnClickListener, OnDismissListener { public interface ImportantNoticeDialogListener { public void onClickSettingsOfImportantNoticeDialog(final int nextVersion); public void onDismissImportantNoticeDialog(final int nextVersion); } private final ImportantNoticeDialogListener mListener; private final int mNextImportantNoticeVersion; public ImportantNoticeDialog( final Context context, final ImportantNoticeDialogListener listener) { super(context, THEME_HOLO_DARK); mListener = listener; mNextImportantNoticeVersion = ImportantNoticeUtils.getNextImportantNoticeVersion(context); setMessage(ImportantNoticeUtils.getNextImportantNoticeContents(context)); // Create buttons and set listeners. setButton(BUTTON_POSITIVE, context.getString(android.R.string.ok), this); if (shouldHaveSettingsButton()) { setButton(BUTTON_NEGATIVE, context.getString(R.string.go_to_settings), this); } // Set listeners. setOnShowListener(this); setOnDismissListener(this); } private boolean shouldHaveSettingsButton() { return mNextImportantNoticeVersion == ImportantNoticeUtils.VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS; } @Override public void onShow(final DialogInterface dialog) { ImportantNoticeUtils.updateLastImportantNoticeVersion(getContext()); } @Override public void onClick(final DialogInterface dialog, final int which) { if (shouldHaveSettingsButton() && which == BUTTON_NEGATIVE) { mListener.onClickSettingsOfImportantNoticeDialog(mNextImportantNoticeVersion); } } @Override public void onDismiss(final DialogInterface dialog) { mListener.onDismissImportantNoticeDialog(mNextImportantNoticeVersion); } } java/src/com/android/inputmethod/latin/LatinIME.java +15 −45 Original line number Diff line number Diff line Loading @@ -26,8 +26,6 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnDismissListener; import android.content.DialogInterface.OnShowListener; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; Loading Loading @@ -100,7 +98,8 @@ import java.util.concurrent.TimeUnit; */ public class LatinIME extends InputMethodService implements KeyboardActionListener, SuggestionStripView.Listener, SuggestionStripViewAccessor, DictionaryFacilitatorForSuggest.DictionaryInitializationListener { DictionaryFacilitatorForSuggest.DictionaryInitializationListener, ImportantNoticeDialog.ImportantNoticeDialogListener { private static final String TAG = LatinIME.class.getSimpleName(); private static final boolean TRACE = false; private static boolean DEBUG = false; Loading Loading @@ -1180,53 +1179,24 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mInputLogic.mSuggest.mDictionaryFacilitator.addWordToUserDictionary(wordToEdit); } // TODO: Move this method out of {@link LatinIME}. // Callback for the {@link SuggestionStripView}, to call when the important notice strip is // pressed. @Override public void showImportantNoticeContents() { final Context context = this; final AlertDialog.Builder builder = new AlertDialog.Builder(context, AlertDialog.THEME_HOLO_DARK); builder.setMessage(ImportantNoticeUtils.getNextImportantNoticeContents(context)); builder.setPositiveButton(android.R.string.ok, null /* listener */); final int nextVersion = ImportantNoticeUtils.getNextImportantNoticeVersion(context); final OnClickListener onClickListener = new OnClickListener() { @Override public void onClick(final DialogInterface dialog, final int position) { switch (nextVersion) { case ImportantNoticeUtils.VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS: if (position == DialogInterface.BUTTON_NEGATIVE) { launchSettings(); } break; default: break; } showOptionDialog(new ImportantNoticeDialog(this /* context */, this /* listener */)); } }; switch (nextVersion) { case ImportantNoticeUtils.VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS: builder.setNegativeButton(R.string.go_to_settings, onClickListener); break; default: break; } final AlertDialog importantNoticeDialog = builder.create(); importantNoticeDialog.setOnShowListener(new OnShowListener() { // Implement {@link ImportantNoticeDialog.ImportantNoticeDialogListener} @Override public void onShow(final DialogInterface dialog) { ImportantNoticeUtils.updateLastImportantNoticeVersion(context); public void onClickSettingsOfImportantNoticeDialog(final int nextVersion) { launchSettings(); } }); importantNoticeDialog.setOnDismissListener(new OnDismissListener() { // Implement {@link ImportantNoticeDialog.ImportantNoticeDialogListener} @Override public void onDismiss(final DialogInterface dialog) { public void onDismissImportantNoticeDialog(final int nextVersion) { setNeutralSuggestionStrip(); } }); showOptionDialog(importantNoticeDialog); } public void displaySettingsDialog() { if (isShowingOptionDialog()) { Loading Loading
java/src/com/android/inputmethod/latin/ImportantNoticeDialog.java 0 → 100644 +78 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 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. */ package com.android.inputmethod.latin; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnDismissListener; import android.content.DialogInterface.OnShowListener; import com.android.inputmethod.latin.utils.ImportantNoticeUtils; /** * The dialog box that shows the important notice contents. */ public final class ImportantNoticeDialog extends AlertDialog implements OnShowListener, OnClickListener, OnDismissListener { public interface ImportantNoticeDialogListener { public void onClickSettingsOfImportantNoticeDialog(final int nextVersion); public void onDismissImportantNoticeDialog(final int nextVersion); } private final ImportantNoticeDialogListener mListener; private final int mNextImportantNoticeVersion; public ImportantNoticeDialog( final Context context, final ImportantNoticeDialogListener listener) { super(context, THEME_HOLO_DARK); mListener = listener; mNextImportantNoticeVersion = ImportantNoticeUtils.getNextImportantNoticeVersion(context); setMessage(ImportantNoticeUtils.getNextImportantNoticeContents(context)); // Create buttons and set listeners. setButton(BUTTON_POSITIVE, context.getString(android.R.string.ok), this); if (shouldHaveSettingsButton()) { setButton(BUTTON_NEGATIVE, context.getString(R.string.go_to_settings), this); } // Set listeners. setOnShowListener(this); setOnDismissListener(this); } private boolean shouldHaveSettingsButton() { return mNextImportantNoticeVersion == ImportantNoticeUtils.VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS; } @Override public void onShow(final DialogInterface dialog) { ImportantNoticeUtils.updateLastImportantNoticeVersion(getContext()); } @Override public void onClick(final DialogInterface dialog, final int which) { if (shouldHaveSettingsButton() && which == BUTTON_NEGATIVE) { mListener.onClickSettingsOfImportantNoticeDialog(mNextImportantNoticeVersion); } } @Override public void onDismiss(final DialogInterface dialog) { mListener.onDismissImportantNoticeDialog(mNextImportantNoticeVersion); } }
java/src/com/android/inputmethod/latin/LatinIME.java +15 −45 Original line number Diff line number Diff line Loading @@ -26,8 +26,6 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnDismissListener; import android.content.DialogInterface.OnShowListener; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; Loading Loading @@ -100,7 +98,8 @@ import java.util.concurrent.TimeUnit; */ public class LatinIME extends InputMethodService implements KeyboardActionListener, SuggestionStripView.Listener, SuggestionStripViewAccessor, DictionaryFacilitatorForSuggest.DictionaryInitializationListener { DictionaryFacilitatorForSuggest.DictionaryInitializationListener, ImportantNoticeDialog.ImportantNoticeDialogListener { private static final String TAG = LatinIME.class.getSimpleName(); private static final boolean TRACE = false; private static boolean DEBUG = false; Loading Loading @@ -1180,53 +1179,24 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mInputLogic.mSuggest.mDictionaryFacilitator.addWordToUserDictionary(wordToEdit); } // TODO: Move this method out of {@link LatinIME}. // Callback for the {@link SuggestionStripView}, to call when the important notice strip is // pressed. @Override public void showImportantNoticeContents() { final Context context = this; final AlertDialog.Builder builder = new AlertDialog.Builder(context, AlertDialog.THEME_HOLO_DARK); builder.setMessage(ImportantNoticeUtils.getNextImportantNoticeContents(context)); builder.setPositiveButton(android.R.string.ok, null /* listener */); final int nextVersion = ImportantNoticeUtils.getNextImportantNoticeVersion(context); final OnClickListener onClickListener = new OnClickListener() { @Override public void onClick(final DialogInterface dialog, final int position) { switch (nextVersion) { case ImportantNoticeUtils.VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS: if (position == DialogInterface.BUTTON_NEGATIVE) { launchSettings(); } break; default: break; } showOptionDialog(new ImportantNoticeDialog(this /* context */, this /* listener */)); } }; switch (nextVersion) { case ImportantNoticeUtils.VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS: builder.setNegativeButton(R.string.go_to_settings, onClickListener); break; default: break; } final AlertDialog importantNoticeDialog = builder.create(); importantNoticeDialog.setOnShowListener(new OnShowListener() { // Implement {@link ImportantNoticeDialog.ImportantNoticeDialogListener} @Override public void onShow(final DialogInterface dialog) { ImportantNoticeUtils.updateLastImportantNoticeVersion(context); public void onClickSettingsOfImportantNoticeDialog(final int nextVersion) { launchSettings(); } }); importantNoticeDialog.setOnDismissListener(new OnDismissListener() { // Implement {@link ImportantNoticeDialog.ImportantNoticeDialogListener} @Override public void onDismiss(final DialogInterface dialog) { public void onDismissImportantNoticeDialog(final int nextVersion) { setNeutralSuggestionStrip(); } }); showOptionDialog(importantNoticeDialog); } public void displaySettingsDialog() { if (isShowingOptionDialog()) { Loading