1105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project/*
2105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
3105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project *
4105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project * you may not use this file except in compliance with the License.
6105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project * You may obtain a copy of the License at
7105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project *
8105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project *
10105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project * See the License for the specific language governing permissions and
14105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project * limitations under the License.
15105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project */
16105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
17fd52b18d9bf3cd62c7a07058536e9f97db65beeaJoe Onoratopackage com.android.systemui.statusbar.phone;
18105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
19105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Projectimport android.content.Context;
20105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Projectimport android.content.res.TypedArray;
21105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Projectimport android.util.AttributeSet;
228a9b22056b13477f59df934928c00c58b5871c95Joe Onoratoimport android.util.Slog;
23105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Projectimport android.view.View;
24105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Projectimport android.graphics.BitmapFactory;
25105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Projectimport android.graphics.Bitmap;
26105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Projectimport android.graphics.Paint;
27105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Projectimport android.graphics.Canvas;
28105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
29105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Projectpublic class TrackingPatternView extends View {
30105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    private Bitmap mTexture;
31105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    private Paint mPaint;
32105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    private int mTextureWidth;
33105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    private int mTextureHeight;
34105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
35105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    public TrackingPatternView(Context context, AttributeSet attrs) {
36105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        super(context, attrs);
37105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
38105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        mTexture = BitmapFactory.decodeResource(getResources(),
39105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                com.android.internal.R.drawable.status_bar_background);
40105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        mTextureWidth = mTexture.getWidth();
41105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        mTextureHeight = mTexture.getHeight();
42105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
43105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        mPaint = new Paint();
44105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        mPaint.setDither(false);
45105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    }
46105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
47105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    @Override
48105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    public void onDraw(Canvas canvas) {
49105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        final Bitmap texture = mTexture;
50105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        final Paint paint = mPaint;
51105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
52105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        final int width = getWidth();
53105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        final int height = getHeight();
54105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
55105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        final int textureWidth = mTextureWidth;
56105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        final int textureHeight = mTextureHeight;
57105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
58105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        int x = 0;
59105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        int y;
60105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
61105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        while (x < width) {
62105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            y = 0;
63105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            while (y < height) {
64105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                canvas.drawBitmap(texture, x, y, paint);
65105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                y += textureHeight;
66105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
67105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            x += textureWidth;
68105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        }
69105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    }
70105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project}
71