summaryrefslogtreecommitdiffstats
path: root/packages/PrintSpooler/src/com/android/printspooler/widget/PreviewPageFrame.java
diff options
context:
space:
mode:
authorSvetoslav <svetoslavganov@google.com>2014-09-09 22:11:10 -0700
committerSvetoslav <svetoslavganov@google.com>2014-09-10 11:54:37 -0700
commite652b02d45bbda11c9cb8f663fa7f25903b90225 (patch)
tree4f5d41fd4300e01538444c5b4c1ce831ba5cf2cd /packages/PrintSpooler/src/com/android/printspooler/widget/PreviewPageFrame.java
parentcd7955f66c3b1c47b477ae197ec15c586cec784e (diff)
downloadframeworks_base-e652b02d45bbda11c9cb8f663fa7f25903b90225.zip
frameworks_base-e652b02d45bbda11c9cb8f663fa7f25903b90225.tar.gz
frameworks_base-e652b02d45bbda11c9cb8f663fa7f25903b90225.tar.bz2
Accessibilty support for the print UI.
bug:15816751 Change-Id: I5dcdbdd0357843b870ddd47d7c41cfba114d194c
Diffstat (limited to 'packages/PrintSpooler/src/com/android/printspooler/widget/PreviewPageFrame.java')
-rw-r--r--packages/PrintSpooler/src/com/android/printspooler/widget/PreviewPageFrame.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/packages/PrintSpooler/src/com/android/printspooler/widget/PreviewPageFrame.java b/packages/PrintSpooler/src/com/android/printspooler/widget/PreviewPageFrame.java
new file mode 100644
index 0000000..feb0316
--- /dev/null
+++ b/packages/PrintSpooler/src/com/android/printspooler/widget/PreviewPageFrame.java
@@ -0,0 +1,89 @@
+/*
+ * 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.util.AttributeSet;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityNodeInfo;
+import android.widget.CompoundButton;
+import android.widget.LinearLayout;
+import com.android.printspooler.R;
+
+/**
+ * This class represents the frame of page in the print preview list
+ * that contains the page and a footer.
+ */
+public final class PreviewPageFrame extends LinearLayout {
+ private final float mSelectedElevation;
+ private final float mNotSelectedElevation;
+
+ private final float mSelectedPageAlpha;
+ private final float mNotSelectedAlpha;
+
+ public PreviewPageFrame(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ mSelectedElevation = mContext.getResources().getDimension(
+ R.dimen.selected_page_elevation);
+ mNotSelectedElevation = mContext.getResources().getDimension(
+ R.dimen.unselected_page_elevation);
+ mSelectedPageAlpha = mContext.getResources().getFraction(
+ R.fraction.page_selected_alpha, 1, 1);
+ mNotSelectedAlpha = mContext.getResources().getFraction(
+ R.fraction.page_unselected_alpha, 1, 1);
+ }
+
+ @Override
+ public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
+ super.onInitializeAccessibilityEvent(event);
+ event.setClassName(CompoundButton.class.getName());
+ event.setChecked(isSelected());
+ }
+
+ @Override
+ public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
+ super.onInitializeAccessibilityNodeInfo(info);
+ info.setClassName(CompoundButton.class.getName());
+ info.setSelected(false);
+ info.setCheckable(true);
+ info.setChecked(isSelected());
+ }
+
+ public void setSelected(boolean selected, boolean animate) {
+ if (isSelected() == selected) {
+ return;
+ }
+ setSelected(selected);
+ if (selected) {
+ if (animate) {
+ animate().translationZ(mSelectedElevation)
+ .alpha(mSelectedPageAlpha);
+ } else {
+ setTranslationZ(mSelectedElevation);
+ setAlpha(mSelectedPageAlpha);
+ }
+ } else {
+ if (animate) {
+ animate().translationZ(mNotSelectedElevation)
+ .alpha(mNotSelectedAlpha);
+ } else {
+ setTranslationZ(mNotSelectedElevation);
+ setAlpha(mNotSelectedAlpha);
+ }
+ }
+ }
+}