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