Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd3b20ce authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Always update voice key visibility"

parents eb771b9d aa4b2c71
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -115,9 +115,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
        final int keyboardHeight = ResourceUtils.getDefaultKeyboardHeight(res);
        builder.setKeyboardGeometry(keyboardWidth, keyboardHeight);
        builder.setSubtype(mSubtypeSwitcher.getCurrentSubtype());
        builder.setVoiceInputKeyEnabled(mSubtypeSwitcher.isShortcutImeEnabled()
                && settingsValues.mShowsVoiceInputKey
                && !settingsValues.mInputAttributes.hasNoMicrophoneKeyOption());
        builder.setVoiceInputKeyEnabled(settingsValues.mShowsVoiceInputKey);
        builder.setLanguageSwitchKeyEnabled(mLatinIME.shouldShowLanguageSwitchKey());
        mKeyboardLayoutSet = builder.build();
        mCurrentSettingsValues = settingsValues;
+3 −2
Original line number Diff line number Diff line
@@ -747,6 +747,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        }
        Log.i(TAG, "Starting input. Cursor position = "
                + editorInfo.initialSelStart + "," + editorInfo.initialSelEnd);
        // TODO: Consolidate these checks with {@link InputAttributes}.
        if (InputAttributes.inPrivateImeOptions(null, NO_MICROPHONE_COMPAT, editorInfo)) {
            Log.w(TAG, "Deprecated private IME option specified: " + editorInfo.privateImeOptions);
            Log.w(TAG, "Use " + getPackageName() + "." + NO_MICROPHONE + " instead");
@@ -1352,11 +1353,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        if (!onEvaluateInputViewShown()) {
            return;
        }

        mSuggestionStripView.updateVisibility(isSuggestionStripVisible, isFullscreenMode());
        if (!isSuggestionStripVisible) {
            mSuggestionStripView.setVisibility(isFullscreenMode() ? View.GONE : View.INVISIBLE);
            return;
        }
        mSuggestionStripView.setVisibility(View.VISIBLE);

        final SettingsValues currentSettings = mSettings.getCurrent();
        final boolean showSuggestions;
+5 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import com.android.inputmethod.compat.AppWorkaroundsUtils;
import com.android.inputmethod.latin.InputAttributes;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.RichInputMethodManager;
import com.android.inputmethod.latin.SubtypeSwitcher;
import com.android.inputmethod.latin.utils.AsyncResultHolder;
import com.android.inputmethod.latin.utils.ResourceUtils;
import com.android.inputmethod.latin.utils.TargetPackageInfoGetterTask;
@@ -122,7 +123,10 @@ public final class SettingsValues {
        mKeyPreviewPopupOn = Settings.readKeyPreviewPopupEnabled(prefs, res);
        mSlidingKeyInputPreviewEnabled = prefs.getBoolean(
                DebugSettings.PREF_SLIDING_KEY_INPUT_PREVIEW, true);
        mShowsVoiceInputKey = needsToShowVoiceInputKey(prefs, res);
        mShowsVoiceInputKey = needsToShowVoiceInputKey(prefs, res)
                && !mInputAttributes.mIsPasswordField
                && !mInputAttributes.hasNoMicrophoneKeyOption()
                && SubtypeSwitcher.getInstance().isShortcutImeEnabled();
        final String autoCorrectionThresholdRawValue = prefs.getString(
                Settings.PREF_AUTO_CORRECTION_THRESHOLD,
                res.getString(R.string.auto_correction_threshold_mode_index_modest));
+17 −23
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.SuggestedWords;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
import com.android.inputmethod.latin.settings.Settings;
import com.android.inputmethod.latin.settings.SettingsValues;
import com.android.inputmethod.latin.suggestions.MoreSuggestionsView.MoreSuggestionsListener;
import com.android.inputmethod.latin.utils.ImportantNoticeUtils;

@@ -89,19 +90,17 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
    private static class StripVisibilityGroup {
        private final View mSuggestionStripView;
        private final View mSuggestionsStrip;
        private final View mVoiceKey;
        private final View mAddToDictionaryStrip;
        private final View mImportantNoticeStrip;

        public StripVisibilityGroup(final View suggestionStripView,
                final ViewGroup suggestionsStrip, final ImageButton voiceKey,
                final ViewGroup addToDictionaryStrip, final View importantNoticeStrip) {
                final ViewGroup suggestionsStrip, final ViewGroup addToDictionaryStrip,
                final View importantNoticeStrip) {
            mSuggestionStripView = suggestionStripView;
            mSuggestionsStrip = suggestionsStrip;
            mVoiceKey = voiceKey;
            mAddToDictionaryStrip = addToDictionaryStrip;
            mImportantNoticeStrip = importantNoticeStrip;
            showSuggestionsStrip(false /* voiceKeyEnabled */);
            showSuggestionsStrip();
        }

        public void setLayoutDirection(final boolean isRtlLanguage) {
@@ -113,23 +112,20 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
            ViewCompat.setLayoutDirection(mImportantNoticeStrip, layoutDirection);
        }

        public void showSuggestionsStrip(final boolean enableVoiceKey) {
        public void showSuggestionsStrip() {
            mSuggestionsStrip.setVisibility(VISIBLE);
            mVoiceKey.setVisibility(enableVoiceKey ? VISIBLE : INVISIBLE);
            mAddToDictionaryStrip.setVisibility(INVISIBLE);
            mImportantNoticeStrip.setVisibility(INVISIBLE);
        }

        public void showAddToDictionaryStrip() {
            mSuggestionsStrip.setVisibility(INVISIBLE);
            mVoiceKey.setVisibility(INVISIBLE);
            mAddToDictionaryStrip.setVisibility(VISIBLE);
            mImportantNoticeStrip.setVisibility(INVISIBLE);
        }

        public void showImportantNoticeStrip(final boolean enableVoiceKey) {
        public void showImportantNoticeStrip() {
            mSuggestionsStrip.setVisibility(INVISIBLE);
            mVoiceKey.setVisibility(enableVoiceKey ? VISIBLE : INVISIBLE);
            mAddToDictionaryStrip.setVisibility(INVISIBLE);
            mImportantNoticeStrip.setVisibility(VISIBLE);
        }
@@ -159,7 +155,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
        mVoiceKey = (ImageButton)findViewById(R.id.suggestions_strip_voice_key);
        mAddToDictionaryStrip = (ViewGroup)findViewById(R.id.add_to_dictionary_strip);
        mImportantNoticeStrip = findViewById(R.id.important_notice_strip);
        mStripVisibilityGroup = new StripVisibilityGroup(this, mSuggestionsStrip, mVoiceKey,
        mStripVisibilityGroup = new StripVisibilityGroup(this, mSuggestionsStrip,
                mAddToDictionaryStrip, mImportantNoticeStrip);

        for (int pos = 0; pos < SuggestedWords.MAX_SUGGESTIONS; pos++) {
@@ -207,15 +203,13 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
        mMainKeyboardView = (MainKeyboardView)inputView.findViewById(R.id.keyboard_view);
    }

    private boolean isVoiceKeyEnabled() {
        if (mMainKeyboardView == null) {
            return false;
        }
        final Keyboard keyboard = mMainKeyboardView.getKeyboard();
        if (keyboard == null) {
            return false;
        }
        return keyboard.mId.mHasShortcutKey;
    public void updateVisibility(final boolean shouldBeVisible, final boolean isFullscreenMode) {
        final int visibility = shouldBeVisible ? VISIBLE : (isFullscreenMode ? GONE : INVISIBLE);
        setVisibility(visibility);
        final SettingsValues currentSettingsValues = Settings.getInstance().getCurrent();
        final boolean shouldShowVoiceKey = (currentSettingsValues != null)
                && currentSettingsValues.mShowsVoiceInputKey;
        mVoiceKey.setVisibility(shouldShowVoiceKey ? VISIBLE : INVISIBLE);
    }

    public void setSuggestions(final SuggestedWords suggestedWords, final boolean isRtlLanguage) {
@@ -224,7 +218,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
        mSuggestedWords = suggestedWords;
        mSuggestionsCountInStrip = mLayoutHelper.layoutAndReturnSuggestionCountInStrip(
                mSuggestedWords, mSuggestionsStrip, this);
        mStripVisibilityGroup.showSuggestionsStrip(isVoiceKeyEnabled());
        mStripVisibilityGroup.showSuggestionsStrip();
    }

    public int setMoreSuggestionsHeight(final int remainingHeight) {
@@ -271,7 +265,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
            dismissMoreSuggestionsPanel();
        }
        mLayoutHelper.layoutImportantNotice(mImportantNoticeStrip, importantNoticeTitle);
        mStripVisibilityGroup.showImportantNoticeStrip(isVoiceKeyEnabled());
        mStripVisibilityGroup.showImportantNoticeStrip();
        mImportantNoticeStrip.setOnClickListener(this);
        return true;
    }
@@ -279,7 +273,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
    public void clear() {
        mSuggestionsStrip.removeAllViews();
        removeAllDebugInfoViews();
        mStripVisibilityGroup.showSuggestionsStrip(false /* enableVoiceKey */);
        mStripVisibilityGroup.showSuggestionsStrip();
        dismissMoreSuggestionsPanel();
    }