• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2017 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.example.android.support.wear.app;
18 
19 import android.app.Activity;
20 import android.content.Intent;
21 import android.os.Bundle;
22 import android.view.Gravity;
23 import android.view.View;
24 import android.view.ViewGroup;
25 import android.widget.Button;
26 
27 import androidx.recyclerview.widget.LinearLayoutManager;
28 import androidx.recyclerview.widget.RecyclerView;
29 import androidx.wear.widget.WearableRecyclerView;
30 
31 import com.example.android.support.wear.app.drawers.WearableDrawersDemo;
32 
33 import java.util.LinkedHashMap;
34 import java.util.Map;
35 
36 /**
37  * Main activity for the wear demos.
38  */
39 public class MainDemoActivity extends Activity {
40 
41     @Override
onCreate(Bundle savedInstanceState)42     protected void onCreate(Bundle savedInstanceState) {
43         super.onCreate(savedInstanceState);
44 
45         WearableRecyclerView demoList = new WearableRecyclerView(this);
46         demoList.setPadding(30, 0, 30, 0);
47         demoList.setLayoutManager(
48                 new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
49         demoList.setAdapter(new DemoAdapter(createContentMap()));
50         demoList.setEdgeItemsCenteringEnabled(true);
51         setContentView(demoList);
52     }
53 
createContentMap()54     private Map<String, Intent> createContentMap() {
55         Map<String, Intent> contentMap = new LinkedHashMap<>();
56         contentMap.put("Wearable Recycler View", new Intent(
57                 this, SimpleWearableRecyclerViewDemo.class));
58         contentMap.put("Wearable Switch", new Intent(
59                 this, WearableSwitchDemo.class));
60         contentMap.put("Circular Progress Layout", new Intent(
61                 this, CircularProgressLayoutDemo.class));
62         contentMap.put("Wearable Drawers", new Intent(
63                 this, WearableDrawersDemo.class));
64         contentMap.put("Rounded Drawable", new Intent(
65                 this, RoundedDrawableDemo.class));
66         contentMap.put("Ambient Fragment", new Intent(
67                 this, AmbientModeDemo.class));
68         contentMap.put("Alert Dialog (v7)", new Intent(
69                 this, AlertDialogDemo.class));
70         contentMap.put("Confirmation Overlay", new Intent(
71                 this, ConfirmationOverlayDemo.class));
72 
73         return contentMap;
74     }
75 
76     private class ViewHolder extends RecyclerView.ViewHolder {
77         Button mView;
78 
ViewHolder(Button itemView)79         ViewHolder(Button itemView) {
80             super(itemView);
81             mView = itemView;
82         }
83     }
84 
85     private class DemoAdapter extends WearableRecyclerView.Adapter<ViewHolder> {
86         private final Object[] mKeys;
87         private final Map<String, Intent> mData;
88 
DemoAdapter(Map<String, Intent> dataMap)89         DemoAdapter(Map<String, Intent> dataMap) {
90             mKeys = dataMap.keySet().toArray();
91             mData = dataMap;
92         }
93 
94         @Override
onCreateViewHolder(ViewGroup parent, int viewType)95         public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
96             Button view = new Button(parent.getContext());
97             view.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
98                     ViewGroup.LayoutParams.WRAP_CONTENT));
99             view.setPadding(10, 10, 10, 10);
100             view.setGravity(Gravity.CENTER);
101             return new ViewHolder(view);
102         }
103 
104         @Override
onBindViewHolder(ViewHolder holder, final int position)105         public void onBindViewHolder(ViewHolder holder, final int position) {
106             holder.mView.setText(mKeys[position].toString());
107             holder.mView.setOnClickListener(new View.OnClickListener() {
108                 @Override
109                 public void onClick(View v) {
110                     Intent result = new Intent();
111                     result.setClass(MainDemoActivity.this, SimpleWearableRecyclerViewDemo.class);
112                     startActivity(mData.get(mKeys[position]));
113                 }
114             });
115         }
116 
117 
118         @Override
getItemCount()119         public int getItemCount() {
120             return mKeys.length;
121         }
122     }
123 }
124