197d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung/*
297d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung * Copyright (C) 2011 The Android Open Source Project
397d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung *
497d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung * Licensed under the Apache License, Version 2.0 (the "License");
597d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung * you may not use this file except in compliance with the License.
697d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung * You may obtain a copy of the License at
797d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung *
897d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung *      http://www.apache.org/licenses/LICENSE-2.0
997d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung *
1097d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung * Unless required by applicable law or agreed to in writing, software
1197d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung * distributed under the License is distributed on an "AS IS" BASIS,
1297d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1397d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung * See the License for the specific language governing permissions and
1497d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung * limitations under the License.
1597d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung */
1697d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung
1797d85d23b013347bead4e2f5fa430a79ce69431eWinson Chungpackage com.android.launcher2;
1897d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung
1997d85d23b013347bead4e2f5fa430a79ce69431eWinson Chungimport android.content.Context;
2097d85d23b013347bead4e2f5fa430a79ce69431eWinson Chungimport android.util.AttributeSet;
2197d85d23b013347bead4e2f5fa430a79ce69431eWinson Chungimport android.view.KeyEvent;
2297d85d23b013347bead4e2f5fa430a79ce69431eWinson Chungimport android.widget.TextView;
2397d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung
24785d2eb2b8d7072c8124300dd9168ff51a91cf38Winson Chung/**
25785d2eb2b8d7072c8124300dd9168ff51a91cf38Winson Chung * We use a custom tab view to process our own focus traversals.
26785d2eb2b8d7072c8124300dd9168ff51a91cf38Winson Chung */
2797d85d23b013347bead4e2f5fa430a79ce69431eWinson Chungpublic class AccessibleTabView extends TextView {
2897d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung    public AccessibleTabView(Context context) {
2997d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung        super(context);
3097d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung    }
3197d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung
3297d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung    public AccessibleTabView(Context context, AttributeSet attrs) {
3397d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung        super(context, attrs);
3497d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung    }
3597d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung
3697d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung    public AccessibleTabView(Context context, AttributeSet attrs, int defStyle) {
3797d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung        super(context, attrs, defStyle);
3897d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung    }
3997d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung
4097d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung    @Override
4197d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung    public boolean onKeyDown(int keyCode, KeyEvent event) {
4297d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung        return FocusHelper.handleTabKeyEvent(this, keyCode, event)
4397d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung                || super.onKeyDown(keyCode, event);
4497d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung    }
4597d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung
4697d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung    @Override
4797d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung    public boolean onKeyUp(int keyCode, KeyEvent event) {
4897d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung        return FocusHelper.handleTabKeyEvent(this, keyCode, event)
4997d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung                || super.onKeyUp(keyCode, event);
5097d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung    }
5197d85d23b013347bead4e2f5fa430a79ce69431eWinson Chung}
52