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.annotation.SuppressLint; 20 import android.app.Activity; 21 import android.content.Intent; 22 import android.os.Bundle; 23 import android.view.Gravity; 24 import android.view.View; 25 import android.view.ViewGroup; 26 import android.widget.Button; 27 28 import androidx.recyclerview.widget.LinearLayoutManager; 29 import androidx.recyclerview.widget.RecyclerView; 30 import androidx.wear.widget.WearableRecyclerView; 31 32 import com.example.android.support.wear.app.drawers.WearableDrawersDemo; 33 34 import java.util.LinkedHashMap; 35 import java.util.Map; 36 37 /** 38 * Main activity for the wear demos. 39 */ 40 public class MainDemoActivity extends Activity { 41 42 @Override onCreate(Bundle savedInstanceState)43 protected void onCreate(Bundle savedInstanceState) { 44 super.onCreate(savedInstanceState); 45 46 WearableRecyclerView demoList = new WearableRecyclerView(this); 47 demoList.setPadding(30, 0, 30, 0); 48 demoList.setLayoutManager( 49 new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); 50 demoList.setAdapter(new DemoAdapter(createContentMap())); 51 demoList.setEdgeItemsCenteringEnabled(true); 52 setContentView(demoList); 53 } 54 createContentMap()55 private Map<String, Intent> createContentMap() { 56 Map<String, Intent> contentMap = new LinkedHashMap<>(); 57 contentMap.put("Wearable Recycler View", new Intent( 58 this, SimpleWearableRecyclerViewDemo.class)); 59 contentMap.put("Recycler View", new Intent( 60 this, SimpleRecyclerViewDemo.class)); 61 contentMap.put("NestedScrollView View", new Intent( 62 this, SimpleNestedScrollViewDemo.class)); 63 contentMap.put("Wearable Switch", new Intent( 64 this, WearableSwitchDemo.class)); 65 contentMap.put("Circular Progress Layout", new Intent( 66 this, CircularProgressLayoutDemo.class)); 67 contentMap.put("Wearable Drawers", new Intent( 68 this, WearableDrawersDemo.class)); 69 contentMap.put("Rounded Drawable", new Intent( 70 this, RoundedDrawableDemo.class)); 71 contentMap.put("Ambient Fragment", new Intent( 72 this, AmbientModeDemo.class)); 73 contentMap.put("Alert Dialog (v7)", new Intent( 74 this, AlertDialogDemo.class)); 75 contentMap.put("Confirmation Overlay", new Intent( 76 this, ConfirmationOverlayDemo.class)); 77 78 return contentMap; 79 } 80 81 private static class ViewHolder extends RecyclerView.ViewHolder { 82 Button mView; 83 ViewHolder(Button itemView)84 ViewHolder(Button itemView) { 85 super(itemView); 86 mView = itemView; 87 } 88 } 89 90 private class DemoAdapter extends WearableRecyclerView.Adapter<ViewHolder> { 91 private final Object[] mKeys; 92 private final Map<String, Intent> mData; 93 DemoAdapter(Map<String, Intent> dataMap)94 DemoAdapter(Map<String, Intent> dataMap) { 95 mKeys = dataMap.keySet().toArray(); 96 mData = dataMap; 97 } 98 99 @Override onCreateViewHolder(ViewGroup parent, int viewType)100 public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 101 Button view = new Button(parent.getContext()); 102 view.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 103 ViewGroup.LayoutParams.WRAP_CONTENT)); 104 view.setPadding(10, 10, 10, 10); 105 view.setGravity(Gravity.CENTER); 106 return new ViewHolder(view); 107 } 108 109 @Override onBindViewHolder(ViewHolder holder, @SuppressLint("RecyclerView") final int position)110 public void onBindViewHolder(ViewHolder holder, 111 @SuppressLint("RecyclerView") final int position) { 112 holder.mView.setText(mKeys[position].toString()); 113 holder.mView.setOnClickListener(new View.OnClickListener() { 114 @Override 115 public void onClick(View v) { 116 Intent result = new Intent(); 117 result.setClass(MainDemoActivity.this, SimpleWearableRecyclerViewDemo.class); 118 startActivity(mData.get(mKeys[position])); 119 } 120 }); 121 } 122 123 124 @Override getItemCount()125 public int getItemCount() { 126 return mKeys.length; 127 } 128 } 129 } 130