165ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley/* 265ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * Copyright (C) 2017 The Android Open Source Project 365ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * 465ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * Licensed under the Apache License, Version 2.0 (the "License"); 565ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * you may not use this file except in compliance with the License. 665ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * You may obtain a copy of the License at 765ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * 865ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * http://www.apache.org/licenses/LICENSE-2.0 965ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * 1065ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * Unless required by applicable law or agreed to in writing, software 1165ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * distributed under the License is distributed on an "AS IS" BASIS, 1265ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1365ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * See the License for the specific language governing permissions and 1465ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley * limitations under the License. 1565ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley */ 1665ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley 1765ab191c2a396a77d24227719c7c1e7656b48084Sean Kelleypackage com.example.android.support.wear.app.drawers; 1865ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley 1965ab191c2a396a77d24227719c7c1e7656b48084Sean Kelleyimport android.app.Activity; 2065ab191c2a396a77d24227719c7c1e7656b48084Sean Kelleyimport android.app.Fragment; 2165ab191c2a396a77d24227719c7c1e7656b48084Sean Kelleyimport android.os.Bundle; 2265ab191c2a396a77d24227719c7c1e7656b48084Sean Kelleyimport android.util.Log; 2365ab191c2a396a77d24227719c7c1e7656b48084Sean Kelleyimport android.view.MenuItem; 2465ab191c2a396a77d24227719c7c1e7656b48084Sean Kelleyimport android.widget.Toast; 2565ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley 26def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.wear.widget.drawer.WearableActionDrawerView; 27def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.wear.widget.drawer.WearableNavigationDrawerView; 28def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas 2965ab191c2a396a77d24227719c7c1e7656b48084Sean Kelleyimport com.example.android.support.wear.R; 3065ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley 3165ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley/** Main {@link Activity} for demoing the Wearable Drawers. */ 3265ab191c2a396a77d24227719c7c1e7656b48084Sean Kelleypublic class WearableDrawersDemo extends Activity { 3365ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley private static final String TAG = "WearableDrawersDemo"; 3465ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley 3565ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley private WearableNavigationDrawerView mNavDrawer; 3665ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley private WearableActionDrawerView mActionDrawer; 3765ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley private NavItem[] mNavItems; 3865ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley 3965ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley @Override 4065ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley protected void onCreate(Bundle savedInstanceState) { 4165ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley super.onCreate(savedInstanceState); 4265ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley setContentView(R.layout.wearable_drawers_demo); 4365ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley mNavItems = new NavItem[] { 4465ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley new NavItem( 4565ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley ScrollViewFragment.class, 4665ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley "ScrollView", 4765ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley getDrawable(android.R.drawable.star_big_off)), 4865ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley new NavItem( 4965ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley FrameLayoutFragment.class, 5065ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley "FrameLayout", 5165ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley getDrawable(android.R.drawable.star_big_on)), 5265ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley }; 5365ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley 5465ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley onNavItemSelected(0); 5565ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley 5665ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley mNavDrawer = findViewById(R.id.nav_drawer); 5765ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley mNavDrawer.setAdapter(new DemoNavDrawerAdapter(mNavItems)); 5865ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley mNavDrawer.addOnItemSelectedListener(this::onNavItemSelected); 5965ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley mNavDrawer.getController().peekDrawer(); 6065ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley 6165ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley mActionDrawer = findViewById(R.id.action_drawer); 6265ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley mActionDrawer.setOnMenuItemClickListener(this::onActionClicked); 6365ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley mActionDrawer.getController().peekDrawer(); 6465ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley } 6565ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley 6665ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley private boolean onActionClicked(MenuItem menuItem) { 6765ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley Toast.makeText(this, menuItem.getTitle() + " clicked", Toast.LENGTH_SHORT).show(); 6865ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley mActionDrawer.getController().peekDrawer(); 6965ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley return true; 7065ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley } 7165ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley 7265ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley private void onNavItemSelected(int pos) { 7365ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley Fragment fragment; 7465ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley try { 7565ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley fragment = mNavItems[pos].getFragment().newInstance(); 7665ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley } catch (InstantiationException | IllegalAccessException e) { 7765ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley Log.e(TAG, "Failed to instantiate fragment", e); 7865ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley return; 7965ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley } 8065ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley 8165ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley getFragmentManager() 8265ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley .beginTransaction() 8365ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley .replace(R.id.fragment_container, fragment) 8465ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley .commit(); 8565ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley } 8665ab191c2a396a77d24227719c7c1e7656b48084Sean Kelley} 87