1*90c8c64dSAndroid Build Coastguard Worker /*
2*90c8c64dSAndroid Build Coastguard Worker  * Copyright (C) 2014 The Android Open Source Project
3*90c8c64dSAndroid Build Coastguard Worker  *
4*90c8c64dSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*90c8c64dSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*90c8c64dSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*90c8c64dSAndroid Build Coastguard Worker  *
8*90c8c64dSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*90c8c64dSAndroid Build Coastguard Worker  *
10*90c8c64dSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*90c8c64dSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*90c8c64dSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*90c8c64dSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*90c8c64dSAndroid Build Coastguard Worker  * limitations under the License.
15*90c8c64dSAndroid Build Coastguard Worker  */
16*90c8c64dSAndroid Build Coastguard Worker 
17*90c8c64dSAndroid Build Coastguard Worker package com.example.android.google.wearable.app;
18*90c8c64dSAndroid Build Coastguard Worker 
19*90c8c64dSAndroid Build Coastguard Worker import android.app.Activity;
20*90c8c64dSAndroid Build Coastguard Worker import android.app.Fragment;
21*90c8c64dSAndroid Build Coastguard Worker import android.app.FragmentManager;
22*90c8c64dSAndroid Build Coastguard Worker import android.content.Context;
23*90c8c64dSAndroid Build Coastguard Worker import android.graphics.Bitmap;
24*90c8c64dSAndroid Build Coastguard Worker import android.graphics.Canvas;
25*90c8c64dSAndroid Build Coastguard Worker import android.graphics.Color;
26*90c8c64dSAndroid Build Coastguard Worker import android.graphics.Paint;
27*90c8c64dSAndroid Build Coastguard Worker import android.graphics.Point;
28*90c8c64dSAndroid Build Coastguard Worker import android.graphics.Typeface;
29*90c8c64dSAndroid Build Coastguard Worker import android.graphics.Paint.Align;
30*90c8c64dSAndroid Build Coastguard Worker import android.graphics.drawable.BitmapDrawable;
31*90c8c64dSAndroid Build Coastguard Worker import android.graphics.drawable.Drawable;
32*90c8c64dSAndroid Build Coastguard Worker import android.os.Bundle;
33*90c8c64dSAndroid Build Coastguard Worker import android.support.wearable.view.CardFragment;
34*90c8c64dSAndroid Build Coastguard Worker import android.support.wearable.view.FragmentGridPagerAdapter;
35*90c8c64dSAndroid Build Coastguard Worker import android.support.wearable.view.GridViewPager;
36*90c8c64dSAndroid Build Coastguard Worker 
37*90c8c64dSAndroid Build Coastguard Worker import java.util.HashMap;
38*90c8c64dSAndroid Build Coastguard Worker import java.util.Map;
39*90c8c64dSAndroid Build Coastguard Worker 
40*90c8c64dSAndroid Build Coastguard Worker public class GridExampleActivity extends Activity {
41*90c8c64dSAndroid Build Coastguard Worker     private static final int NUM_ROWS = 10;
42*90c8c64dSAndroid Build Coastguard Worker     private static final int NUM_COLS = 3;
43*90c8c64dSAndroid Build Coastguard Worker 
44*90c8c64dSAndroid Build Coastguard Worker     MainAdapter mAdapter;
45*90c8c64dSAndroid Build Coastguard Worker     GridViewPager mPager;
46*90c8c64dSAndroid Build Coastguard Worker 
47*90c8c64dSAndroid Build Coastguard Worker 
48*90c8c64dSAndroid Build Coastguard Worker     @Override
onCreate(Bundle savedInstanceState)49*90c8c64dSAndroid Build Coastguard Worker     protected void onCreate(Bundle savedInstanceState) {
50*90c8c64dSAndroid Build Coastguard Worker         super.onCreate(savedInstanceState);
51*90c8c64dSAndroid Build Coastguard Worker         setContentView(R.layout.grid_activity);
52*90c8c64dSAndroid Build Coastguard Worker         mPager = (GridViewPager) findViewById(R.id.fragment_container);
53*90c8c64dSAndroid Build Coastguard Worker         mAdapter = new MainAdapter(this, getFragmentManager());
54*90c8c64dSAndroid Build Coastguard Worker         mPager.setAdapter(mAdapter);
55*90c8c64dSAndroid Build Coastguard Worker 
56*90c8c64dSAndroid Build Coastguard Worker     }
57*90c8c64dSAndroid Build Coastguard Worker 
58*90c8c64dSAndroid Build Coastguard Worker     private static class MainAdapter extends FragmentGridPagerAdapter{
59*90c8c64dSAndroid Build Coastguard Worker         Map<Point, Drawable> mBackgrounds = new HashMap<Point, Drawable>();
60*90c8c64dSAndroid Build Coastguard Worker         private Context mContext;
61*90c8c64dSAndroid Build Coastguard Worker 
MainAdapter(Context ctx, FragmentManager fm)62*90c8c64dSAndroid Build Coastguard Worker         public MainAdapter(Context ctx, FragmentManager fm) {
63*90c8c64dSAndroid Build Coastguard Worker             super(fm);
64*90c8c64dSAndroid Build Coastguard Worker             mContext = ctx;
65*90c8c64dSAndroid Build Coastguard Worker         }
66*90c8c64dSAndroid Build Coastguard Worker 
67*90c8c64dSAndroid Build Coastguard Worker         @Override
getRowCount()68*90c8c64dSAndroid Build Coastguard Worker         public int getRowCount() {
69*90c8c64dSAndroid Build Coastguard Worker             return NUM_ROWS;
70*90c8c64dSAndroid Build Coastguard Worker         }
71*90c8c64dSAndroid Build Coastguard Worker 
72*90c8c64dSAndroid Build Coastguard Worker         @Override
getColumnCount(int rowNum)73*90c8c64dSAndroid Build Coastguard Worker         public int getColumnCount(int rowNum) {
74*90c8c64dSAndroid Build Coastguard Worker             return NUM_COLS;
75*90c8c64dSAndroid Build Coastguard Worker         }
76*90c8c64dSAndroid Build Coastguard Worker 
77*90c8c64dSAndroid Build Coastguard Worker         @Override
getFragment(int rowNum, int colNum)78*90c8c64dSAndroid Build Coastguard Worker         public Fragment getFragment(int rowNum, int colNum) {
79*90c8c64dSAndroid Build Coastguard Worker             return MainFragment.newInstance(rowNum, colNum);
80*90c8c64dSAndroid Build Coastguard Worker         }
81*90c8c64dSAndroid Build Coastguard Worker 
82*90c8c64dSAndroid Build Coastguard Worker         @Override
getBackgroundForPage(int row, int column)83*90c8c64dSAndroid Build Coastguard Worker         public Drawable getBackgroundForPage(int row, int column) {
84*90c8c64dSAndroid Build Coastguard Worker             Point pt = new Point(column, row);
85*90c8c64dSAndroid Build Coastguard Worker             Drawable drawable = mBackgrounds.get(pt);
86*90c8c64dSAndroid Build Coastguard Worker             if (drawable == null) {
87*90c8c64dSAndroid Build Coastguard Worker                 Bitmap bm = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);
88*90c8c64dSAndroid Build Coastguard Worker                 Canvas c = new Canvas(bm);
89*90c8c64dSAndroid Build Coastguard Worker                 Paint p = new Paint();
90*90c8c64dSAndroid Build Coastguard Worker                 // Clear previous image.
91*90c8c64dSAndroid Build Coastguard Worker                 c.drawRect(0, 0, 200, 200, p);
92*90c8c64dSAndroid Build Coastguard Worker                 p.setAntiAlias(true);
93*90c8c64dSAndroid Build Coastguard Worker                 p.setTypeface(Typeface.DEFAULT);
94*90c8c64dSAndroid Build Coastguard Worker                 p.setTextSize(64);
95*90c8c64dSAndroid Build Coastguard Worker                 p.setColor(Color.LTGRAY);
96*90c8c64dSAndroid Build Coastguard Worker                 p.setTextAlign(Align.CENTER);
97*90c8c64dSAndroid Build Coastguard Worker                 c.drawText(column+ "-" + row, 100, 100, p);
98*90c8c64dSAndroid Build Coastguard Worker                 drawable = new BitmapDrawable(mContext.getResources(), bm);
99*90c8c64dSAndroid Build Coastguard Worker                 mBackgrounds.put(pt, drawable);
100*90c8c64dSAndroid Build Coastguard Worker             }
101*90c8c64dSAndroid Build Coastguard Worker             return drawable;
102*90c8c64dSAndroid Build Coastguard Worker         }
103*90c8c64dSAndroid Build Coastguard Worker     }
104*90c8c64dSAndroid Build Coastguard Worker 
105*90c8c64dSAndroid Build Coastguard Worker     public static class MainFragment extends CardFragment {
newInstance(int rowNum, int colNum)106*90c8c64dSAndroid Build Coastguard Worker         private static MainFragment newInstance(int rowNum, int colNum) {
107*90c8c64dSAndroid Build Coastguard Worker             Bundle args = new Bundle();
108*90c8c64dSAndroid Build Coastguard Worker             args.putString(CardFragment.KEY_TITLE, "Row:" + rowNum);
109*90c8c64dSAndroid Build Coastguard Worker             args.putString(CardFragment.KEY_TEXT, "Col:" + colNum);
110*90c8c64dSAndroid Build Coastguard Worker             MainFragment f = new MainFragment();
111*90c8c64dSAndroid Build Coastguard Worker             f.setArguments(args);
112*90c8c64dSAndroid Build Coastguard Worker             return f;
113*90c8c64dSAndroid Build Coastguard Worker         }
114*90c8c64dSAndroid Build Coastguard Worker     }
115*90c8c64dSAndroid Build Coastguard Worker }
116