Always present suggestion strip whenever in appropriate mode.

Some cleanups too.

bug: 2959293
Change-Id: Idf07fc25c5700b69b93ab4b09ce34941f0d9c157
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index f26cbc0..74ed90f 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -647,16 +647,14 @@
                         (attribute.inputType & EditorInfo.TYPE_TEXT_FLAG_MULTI_LINE) == 0) {
                     mInputTypeNoAutoCorrect = true;
                 }
-                if ((attribute.inputType&EditorInfo.TYPE_TEXT_FLAG_AUTO_COMPLETE) != 0) {
+                if ((attribute.inputType & EditorInfo.TYPE_TEXT_FLAG_AUTO_COMPLETE) != 0) {
                     mPredictionOn = false;
-                    mCompletionOn = true && isFullscreenMode();
+                    mCompletionOn = isFullscreenMode();
                 }
-                updateShiftKeyState(attribute);
                 break;
             default:
                 mKeyboardSwitcher.setKeyboardMode(KeyboardSwitcher.MODE_TEXT,
                         attribute.imeOptions, enableVoiceButton);
-                updateShiftKeyState(attribute);
         }
         inputView.closing();
         mComposing.setLength(0);
@@ -666,8 +664,9 @@
         loadSettings();
         updateShiftKeyState(attribute);
 
-        setCandidatesViewShown(false);
-        setSuggestions(null, false, false, false);
+        setCandidatesViewShownInternal(isCandidateStripVisible() || mCompletionOn,
+                false /* needsInputViewShown */ );
+        updateSuggestions();
 
         // If the dictionary is not big enough, don't auto correct
         mHasDictionary = mSuggest.hasMainDictionary();
@@ -831,18 +830,21 @@
             // When in fullscreen mode, show completions generated by the application
             setSuggestions(stringList, true, true, true);
             mBestWord = null;
-            setCandidatesViewShown(isCandidateStripVisible() || mCompletionOn);
+            setCandidatesViewShown(true);
+        }
+    }
+
+    private void setCandidatesViewShownInternal(boolean shown, boolean needsInputViewShown) {
+        // TODO: Remove this if we support candidates with hard keyboard
+        if (onEvaluateInputViewShown()) {
+            super.setCandidatesViewShown(shown && mKeyboardSwitcher.getInputView() != null
+                    && (needsInputViewShown ? mKeyboardSwitcher.getInputView().isShown() : true));
         }
     }
 
     @Override
     public void setCandidatesViewShown(boolean shown) {
-        // TODO: Remove this if we support candidates with hard keyboard
-        if (onEvaluateInputViewShown()) {
-            // Show the candidates view only if input view is showing
-            super.setCandidatesViewShown(shown && mKeyboardSwitcher.getInputView() != null
-                    && mKeyboardSwitcher.getInputView().isShown());
-        }
+        setCandidatesViewShownInternal(shown, true /* needsInputViewShown */ );
     }
 
     @Override
@@ -1430,8 +1432,7 @@
     }
 
     private boolean isPredictionOn() {
-        boolean predictionOn = mPredictionOn;
-        return predictionOn;
+        return mPredictionOn;
     }
 
     private boolean isCandidateStripVisible() {