1c3683b552f592d8039a466c663f7de8c8286e975Chris Craik/* 2c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * Copyright (C) 2012 The Android Open Source Project 3c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * 4c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * Licensed under the Apache License, Version 2.0 (the "License"); 5c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * you may not use this file except in compliance with the License. 6c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * You may obtain a copy of the License at 7c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * 8c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * http://www.apache.org/licenses/LICENSE-2.0 9c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * 10c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * Unless required by applicable law or agreed to in writing, software 11c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * distributed under the License is distributed on an "AS IS" BASIS, 12c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * See the License for the specific language governing permissions and 14c3683b552f592d8039a466c663f7de8c8286e975Chris Craik * limitations under the License. 15c3683b552f592d8039a466c663f7de8c8286e975Chris Craik */ 16c3683b552f592d8039a466c663f7de8c8286e975Chris Craik 17c3683b552f592d8039a466c663f7de8c8286e975Chris Craikpackage com.android.test.hwuicompare; 18c3683b552f592d8039a466c663f7de8c8286e975Chris Craik 19c3683b552f592d8039a466c663f7de8c8286e975Chris Craikimport android.content.Context; 20c3683b552f592d8039a466c663f7de8c8286e975Chris Craikimport android.graphics.Canvas; 21c3683b552f592d8039a466c663f7de8c8286e975Chris Craikimport android.graphics.Paint; 22c3683b552f592d8039a466c663f7de8c8286e975Chris Craikimport android.util.AttributeSet; 23c3683b552f592d8039a466c663f7de8c8286e975Chris Craikimport android.view.View; 24c3683b552f592d8039a466c663f7de8c8286e975Chris Craik 25c3683b552f592d8039a466c663f7de8c8286e975Chris Craikpublic class MainView extends View { 26c3683b552f592d8039a466c663f7de8c8286e975Chris Craik Paint mPaint = new Paint(); 27c3683b552f592d8039a466c663f7de8c8286e975Chris Craik 28c3683b552f592d8039a466c663f7de8c8286e975Chris Craik public MainView(Context context) { 29c3683b552f592d8039a466c663f7de8c8286e975Chris Craik super(context); 30c3683b552f592d8039a466c663f7de8c8286e975Chris Craik } 31c3683b552f592d8039a466c663f7de8c8286e975Chris Craik 32c3683b552f592d8039a466c663f7de8c8286e975Chris Craik public MainView(Context context, AttributeSet attrs) { 33c3683b552f592d8039a466c663f7de8c8286e975Chris Craik super(context, attrs); 34c3683b552f592d8039a466c663f7de8c8286e975Chris Craik } 35c3683b552f592d8039a466c663f7de8c8286e975Chris Craik 36c3683b552f592d8039a466c663f7de8c8286e975Chris Craik public MainView(Context context, AttributeSet attrs, int defStyle) { 37c3683b552f592d8039a466c663f7de8c8286e975Chris Craik super(context, attrs, defStyle); 38c3683b552f592d8039a466c663f7de8c8286e975Chris Craik } 39c3683b552f592d8039a466c663f7de8c8286e975Chris Craik 40c3683b552f592d8039a466c663f7de8c8286e975Chris Craik @Override 41c3683b552f592d8039a466c663f7de8c8286e975Chris Craik protected void onDraw(Canvas canvas) { 42c3683b552f592d8039a466c663f7de8c8286e975Chris Craik super.onDraw(canvas); 43c3683b552f592d8039a466c663f7de8c8286e975Chris Craik 44c3683b552f592d8039a466c663f7de8c8286e975Chris Craik mPaint.reset(); 45c3683b552f592d8039a466c663f7de8c8286e975Chris Craik DisplayModifier.apply(mPaint, canvas); 46c3683b552f592d8039a466c663f7de8c8286e975Chris Craik 47c3683b552f592d8039a466c663f7de8c8286e975Chris Craik if (mDrawCallback != null) { 48c3683b552f592d8039a466c663f7de8c8286e975Chris Craik mDrawCallback.run(); 49c3683b552f592d8039a466c663f7de8c8286e975Chris Craik } 50c3683b552f592d8039a466c663f7de8c8286e975Chris Craik } 51c3683b552f592d8039a466c663f7de8c8286e975Chris Craik 52c3683b552f592d8039a466c663f7de8c8286e975Chris Craik private Runnable mDrawCallback; 53c3683b552f592d8039a466c663f7de8c8286e975Chris Craik public void addDrawCallback(Runnable drawCallback) { 54c3683b552f592d8039a466c663f7de8c8286e975Chris Craik mDrawCallback = drawCallback; 55c3683b552f592d8039a466c663f7de8c8286e975Chris Craik } 56c3683b552f592d8039a466c663f7de8c8286e975Chris Craik} 57