17d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung/* 27d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * Copyright (C) 2011 The Android Open Source Project 37d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * 47d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * Licensed under the Apache License, Version 2.0 (the "License"); 57d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * you may not use this file except in compliance with the License. 67d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * You may obtain a copy of the License at 77d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * 87d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * http://www.apache.org/licenses/LICENSE-2.0 97d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * 107d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * Unless required by applicable law or agreed to in writing, software 117d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * distributed under the License is distributed on an "AS IS" BASIS, 127d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * See the License for the specific language governing permissions and 147d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung * limitations under the License. 157d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung */ 167d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung 177d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chungpackage com.android.launcher2; 187d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung 197d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chungimport android.content.Context; 207d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chungimport android.graphics.Canvas; 217d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chungimport android.util.AttributeSet; 227d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chungimport android.widget.ImageView; 237d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung 247d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chungpublic class HolographicImageView extends ImageView { 257d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung 267d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung private final HolographicViewHelper mHolographicHelper; 277d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung 287d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung public HolographicImageView(Context context) { 297d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung this(context, null); 307d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung } 317d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung 327d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung public HolographicImageView(Context context, AttributeSet attrs) { 337d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung this(context, attrs, 0); 347d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung } 357d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung 367d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung public HolographicImageView(Context context, AttributeSet attrs, int defStyle) { 377d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung super(context, attrs, defStyle); 387d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung 397d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung mHolographicHelper = new HolographicViewHelper(context); 407d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung } 417d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung 42bb185bdd57fcdb2c8ff9eee00347b116bab7db23Winson Chung void invalidatePressedFocusedStates() { 43bb185bdd57fcdb2c8ff9eee00347b116bab7db23Winson Chung mHolographicHelper.invalidatePressedFocusedStates(this); 44bb185bdd57fcdb2c8ff9eee00347b116bab7db23Winson Chung } 45bb185bdd57fcdb2c8ff9eee00347b116bab7db23Winson Chung 467d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung @Override 477d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung protected void onDraw(Canvas canvas) { 487d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung super.onDraw(canvas); 497d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung 507d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung // One time call to generate the pressed/focused state -- must be called after 517d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung // measure/layout 527d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung mHolographicHelper.generatePressedFocusedStates(this); 537d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung } 547d3810d8337e4f030796b566a2d562fcf79b0a22Winson Chung} 55