diff options
Diffstat (limited to 'packages/PrintSpooler/src/com/android/printspooler/widget')
-rw-r--r-- | packages/PrintSpooler/src/com/android/printspooler/widget/FirstFocusableEditText.java | 69 | ||||
-rw-r--r-- | packages/PrintSpooler/src/com/android/printspooler/widget/PrintContentView.java | 22 |
2 files changed, 17 insertions, 74 deletions
diff --git a/packages/PrintSpooler/src/com/android/printspooler/widget/FirstFocusableEditText.java b/packages/PrintSpooler/src/com/android/printspooler/widget/FirstFocusableEditText.java deleted file mode 100644 index d6bb7c8..0000000 --- a/packages/PrintSpooler/src/com/android/printspooler/widget/FirstFocusableEditText.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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.printspooler.widget; - -import android.content.Context; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; -import android.util.AttributeSet; -import android.widget.EditText; - -/** - * An instance of this class class is intended to be the first focusable - * in a layout to which the system automatically gives focus. It performs - * some voodoo to avoid the first tap on it to start an edit mode, rather - * to bring up the IME, i.e. to get the behavior as if the view was not - * focused. - */ -public final class FirstFocusableEditText extends EditText { - private boolean mClickedBeforeFocus; - private CharSequence mError; - - public FirstFocusableEditText(Context context, AttributeSet attrs) { - super(context, attrs); - } - - @Override - public boolean performClick() { - super.performClick(); - if (isFocused() && !mClickedBeforeFocus) { - clearFocus(); - requestFocus(); - } - mClickedBeforeFocus = true; - return true; - } - - @Override - public CharSequence getError() { - return mError; - } - - @Override - public void setError(CharSequence error, Drawable icon) { - setCompoundDrawables(null, null, icon, null); - mError = error; - } - - protected void onFocusChanged(boolean gainFocus, int direction, - Rect previouslyFocusedRect) { - if (!gainFocus) { - mClickedBeforeFocus = false; - } - super.onFocusChanged(gainFocus, direction, previouslyFocusedRect); - } -}
\ No newline at end of file diff --git a/packages/PrintSpooler/src/com/android/printspooler/widget/PrintContentView.java b/packages/PrintSpooler/src/com/android/printspooler/widget/PrintContentView.java index e428948..c84b06a 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/widget/PrintContentView.java +++ b/packages/PrintSpooler/src/com/android/printspooler/widget/PrintContentView.java @@ -152,6 +152,17 @@ public final class PrintContentView extends ViewGroup implements View.OnClickLis // Make sure we start in a closed options state. onDragProgress(1.0f); + + // The framework gives focus to the frist focusable and we + // do not want that, hence we will take focus instead. + setFocusableInTouchMode(true); + } + + @Override + public void focusableViewAvailable(View v) { + // The framework gives focus to the frist focusable and we + // do not want that, hence do not announce new focusables. + return; } @Override @@ -309,6 +320,7 @@ public final class PrintContentView extends ViewGroup implements View.OnClickLis mSummaryContent.setLayerType(View.LAYER_TYPE_NONE, null); mDraggableContent.setLayerType(View.LAYER_TYPE_NONE, null); mMoreOptionsButton.setLayerType(View.LAYER_TYPE_NONE, null); + mMoreOptionsButton.setLayerType(View.LAYER_TYPE_NONE, null); } mDragProgress = progress; @@ -320,7 +332,6 @@ public final class PrintContentView extends ViewGroup implements View.OnClickLis mMoreOptionsButton.setAlpha(inverseAlpha); mEmbeddedContentScrim.setBackgroundColor(computeScrimColor()); - if (progress == 0) { if (mOptionsStateChangeListener != null) { mOptionsStateChangeListener.onOptionsOpened(); @@ -354,14 +365,15 @@ public final class PrintContentView extends ViewGroup implements View.OnClickLis } private void ensureImeClosedAndInputFocusCleared() { - View focus = findFocus(); - if (focus != null) { + View focused = findFocus(); + + if (focused != null && focused.isFocused()) { InputMethodManager imm = (InputMethodManager) mContext.getSystemService( Context.INPUT_METHOD_SERVICE); - if (imm.isActive(focus)) { + if (imm.isActive(focused)) { imm.hideSoftInputFromWindow(getWindowToken(), 0); } - focus.clearFocus(); + focused.clearFocus(); } } |