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