diff options
author | Svetoslav <svetoslavganov@google.com> | 2014-08-27 18:37:16 -0700 |
---|---|---|
committer | Svetoslav <svetoslavganov@google.com> | 2014-08-27 18:46:23 -0700 |
commit | c404cacd3a480776dd625fb300810ffccc5f51b0 (patch) | |
tree | 4e7fd2370f334a9106bec45094a84930699d547f /packages/PrintSpooler/src/com/android/printspooler/widget | |
parent | f88c2569e94bc0fd2c88470a5d48e140eedf3fca (diff) | |
download | frameworks_base-c404cacd3a480776dd625fb300810ffccc5f51b0.zip frameworks_base-c404cacd3a480776dd625fb300810ffccc5f51b0.tar.gz frameworks_base-c404cacd3a480776dd625fb300810ffccc5f51b0.tar.bz2 |
Print UI polish.
1. Fixed an issue where input focus is given to the copies
edit text every other time we expand the options UI. We
want focus there only if the user touches the control.
bug:16966145
2. Fixed the all printers list view to have item dividers
reaching the left and right ends of the list view.
bug:17288761
3. Fixed an issue where the user can deselect all pages
which is not only an invalid state but also causes a crash.
bug:17286198
4. Tweaked the minimal size of the preview in landscape on
phone to better accomodate the page.
bug:17288904
5. Fixed a regression introduced by a change from the UI folks.
Change-Id: Ida7dad7eea413295a840028060810b2619c616e8
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(); } } |