1 /** <lambda>null2 * Copyright (C) 2022 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 * in compliance with the License. You may obtain a copy of the License at 6 * ``` 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * ``` 9 * Unless required by applicable law or agreed to in writing, software distributed under the License 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 * or implied. See the License for the specific language governing permissions and limitations under 12 * the License. 13 */ 14 package com.android.healthconnect.testapps.toolbox.ui 15 16 import android.os.Bundle 17 import android.view.LayoutInflater 18 import android.view.View 19 import android.view.ViewGroup 20 import androidx.core.os.bundleOf 21 import androidx.fragment.app.Fragment 22 import androidx.navigation.NavController 23 import androidx.navigation.fragment.findNavController 24 import androidx.recyclerview.widget.RecyclerView 25 import com.android.healthconnect.testapps.toolbox.Constants.HealthDataCategory 26 import com.android.healthconnect.testapps.toolbox.R 27 import com.android.healthconnect.testapps.toolbox.adapters.TextViewListAdapter 28 import com.android.healthconnect.testapps.toolbox.adapters.TextViewListViewHolder 29 30 class CategoryListFragment : Fragment() { 31 32 private lateinit var mDataSet: List<HealthDataCategory> 33 private lateinit var mNavigationController: NavController 34 35 override fun onCreateView( 36 inflater: LayoutInflater, 37 container: ViewGroup?, 38 savedInstanceState: Bundle?, 39 ): View { 40 return inflater.inflate(R.layout.fragment_list_screen, container, false) 41 } 42 43 override fun onViewCreated(view: View, savedInstanceState: Bundle?) { 44 val recyclerView: RecyclerView = view.requireViewById(R.id.list_recycler_view) 45 mDataSet = HealthDataCategory.values().asList() 46 mNavigationController = findNavController() 47 48 recyclerView.adapter = 49 TextViewListAdapter(mDataSet) { viewHolder: TextViewListViewHolder, position: Int -> 50 onBindViewHolderCallback(viewHolder, position) 51 } 52 } 53 54 private fun onBindViewHolderCallback(viewHolder: TextViewListViewHolder, position: Int) { 55 val textView = viewHolder.textView 56 textView.text = viewHolder.itemView.context.getString(mDataSet[position].title) 57 textView.setCompoundDrawablesWithIntrinsicBounds(mDataSet[position].icon, 0, 0, 0) 58 textView.setOnClickListener { 59 val bundle = bundleOf("category" to mDataSet[position]) 60 mNavigationController.navigate(R.id.action_categoryList_to_dataTypeList, bundle) 61 } 62 } 63 } 64