16926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy/*
26926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy * Copyright (C) 2010 The Android Open Source Project
36926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy *
46926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy * Licensed under the Apache License, Version 2.0 (the "License");
56926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy * you may not use this file except in compliance with the License.
66926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy * You may obtain a copy of the License at
76926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy *
86926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy *      http://www.apache.org/licenses/LICENSE-2.0
96926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy *
106926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy * Unless required by applicable law or agreed to in writing, software
116926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy * distributed under the License is distributed on an "AS IS" BASIS,
126926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy * See the License for the specific language governing permissions and
146926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy * limitations under the License.
156926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy */
166926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy
17f607bdc167f66b3e7003acaa4736ae46d78c1492Romain Guypackage com.android.test.hwui;
186926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy
196926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guyimport android.app.Activity;
206926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guyimport android.content.Context;
216926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guyimport android.graphics.Bitmap;
226926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guyimport android.graphics.BitmapFactory;
236926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guyimport android.graphics.Canvas;
246926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guyimport android.graphics.Paint;
256926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guyimport android.os.Bundle;
268fb954263dd2f918ad339045cc6d82e346515599Romain Guyimport android.util.Log;
276926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guyimport android.view.View;
286926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy
296926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy@SuppressWarnings({"UnusedDeclaration"})
306926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guypublic class QuickRejectActivity extends Activity {
316926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy    @Override
326926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy    protected void onCreate(Bundle savedInstanceState) {
336926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy        super.onCreate(savedInstanceState);
346926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy        final QuickRejectView view = new QuickRejectView(this);
356926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy        setContentView(view);
366926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy    }
376926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy
386926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy    static class QuickRejectView extends View {
396926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy        private Paint mBitmapPaint;
406926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy        private final Bitmap mBitmap1;
416926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy
426926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy        QuickRejectView(Context c) {
436926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy            super(c);
446926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy
456926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy            mBitmap1 = BitmapFactory.decodeResource(c.getResources(), R.drawable.sunset1);
466926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy
476926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy            mBitmapPaint = new Paint();
486926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy            mBitmapPaint.setFilterBitmap(true);
496926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy        }
506926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy
516926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy        @Override
526926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy        protected void onDraw(Canvas canvas) {
536926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy            super.onDraw(canvas);
546926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy
558fb954263dd2f918ad339045cc6d82e346515599Romain Guy            int count = canvas.getSaveCount();
568fb954263dd2f918ad339045cc6d82e346515599Romain Guy            Log.d("OpenGLRenderer", "count=" + count);
578fb954263dd2f918ad339045cc6d82e346515599Romain Guy            count = canvas.save();
588fb954263dd2f918ad339045cc6d82e346515599Romain Guy            Log.d("OpenGLRenderer", "count after save=" + count);
598fb954263dd2f918ad339045cc6d82e346515599Romain Guy            count = canvas.getSaveCount();
608fb954263dd2f918ad339045cc6d82e346515599Romain Guy            Log.d("OpenGLRenderer", "getSaveCount after save=" + count);
618fb954263dd2f918ad339045cc6d82e346515599Romain Guy            canvas.restore();
628fb954263dd2f918ad339045cc6d82e346515599Romain Guy            count = canvas.getSaveCount();
638fb954263dd2f918ad339045cc6d82e346515599Romain Guy            Log.d("OpenGLRenderer", "count after restore=" + count);
648fb954263dd2f918ad339045cc6d82e346515599Romain Guy            canvas.save();
658fb954263dd2f918ad339045cc6d82e346515599Romain Guy            Log.d("OpenGLRenderer", "count after save=" + canvas.getSaveCount());
668fb954263dd2f918ad339045cc6d82e346515599Romain Guy            canvas.save();
678fb954263dd2f918ad339045cc6d82e346515599Romain Guy            Log.d("OpenGLRenderer", "count after save=" + canvas.getSaveCount());
688fb954263dd2f918ad339045cc6d82e346515599Romain Guy            canvas.save();
698fb954263dd2f918ad339045cc6d82e346515599Romain Guy            Log.d("OpenGLRenderer", "count after save=" + canvas.getSaveCount());
708fb954263dd2f918ad339045cc6d82e346515599Romain Guy            canvas.restoreToCount(count);
718fb954263dd2f918ad339045cc6d82e346515599Romain Guy            count = canvas.getSaveCount();
728fb954263dd2f918ad339045cc6d82e346515599Romain Guy            Log.d("OpenGLRenderer", "count after restoreToCount=" + count);
738fb954263dd2f918ad339045cc6d82e346515599Romain Guy            count = canvas.saveLayer(0, 0, 10, 10, mBitmapPaint, Canvas.ALL_SAVE_FLAG);
748fb954263dd2f918ad339045cc6d82e346515599Romain Guy            Log.d("OpenGLRenderer", "count after saveLayer=" + count);
758fb954263dd2f918ad339045cc6d82e346515599Romain Guy            count = canvas.getSaveCount();
768fb954263dd2f918ad339045cc6d82e346515599Romain Guy            Log.d("OpenGLRenderer", "getSaveCount after saveLayer=" + count);
778fb954263dd2f918ad339045cc6d82e346515599Romain Guy            canvas.restore();
788fb954263dd2f918ad339045cc6d82e346515599Romain Guy            count = canvas.getSaveCount();
798fb954263dd2f918ad339045cc6d82e346515599Romain Guy            Log.d("OpenGLRenderer", "count after restore=" + count);
808fb954263dd2f918ad339045cc6d82e346515599Romain Guy
816926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy            canvas.save();
826926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy            canvas.clipRect(0.0f, 0.0f, 40.0f, 40.0f);
836926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy            canvas.drawBitmap(mBitmap1, 0.0f, 0.0f, mBitmapPaint);
846926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy            canvas.drawBitmap(mBitmap1, -mBitmap1.getWidth(), 0.0f, mBitmapPaint);
856926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy            canvas.drawBitmap(mBitmap1, 50.0f, 0.0f, mBitmapPaint);
866926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy            canvas.restore();
876926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy        }
886926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy    }
896926c72e25b8dec3dd4b84af0819fa1937ae7296Romain Guy}