diff options
author | Svetoslav <svetoslavganov@google.com> | 2014-09-09 22:11:10 -0700 |
---|---|---|
committer | Svetoslav <svetoslavganov@google.com> | 2014-09-10 11:54:37 -0700 |
commit | e652b02d45bbda11c9cb8f663fa7f25903b90225 (patch) | |
tree | 4f5d41fd4300e01538444c5b4c1ce831ba5cf2cd /packages/PrintSpooler/src/com/android/printspooler/widget/PreviewPageFrame.java | |
parent | cd7955f66c3b1c47b477ae197ec15c586cec784e (diff) | |
download | frameworks_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.java | 89 |
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); + } + } + } +} |