1 package expo.modules.devlauncher.launcher.errors
2 
3 import android.content.Context
4 import android.view.LayoutInflater
5 import android.view.View
6 import android.view.ViewGroup
7 import android.widget.BaseAdapter
8 import expo.modules.devlauncher.R
9 import expo.modules.devlauncher.databinding.ErrorConsoleListItemBinding
10 
11 class DevLauncherStackAdapter(
12   val context: Context,
13   var data: DevLauncherAppError?
14 ) : BaseAdapter() {
getCountnull15   override fun getCount(): Int {
16     return data?.error?.stackTrace?.size ?: 0
17   }
18 
getItemnull19   override fun getItem(position: Int): Any {
20     return data?.error?.stackTrace?.get(position) ?: 0
21   }
22 
getItemIdnull23   override fun getItemId(position: Int): Long {
24     return position.toLong()
25   }
26 
getViewnull27   override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
28     val stackTraceElement = getItem(position) as StackTraceElement
29 
30     val currentView = convertView
31       ?: LayoutInflater.from(context).inflate(R.layout.error_console_list_item, parent, false)
32     val binding = ErrorConsoleListItemBinding.bind(currentView)
33 
34     binding.rnFrameMethod.text = stackTraceElement.methodName
35     binding.rnFrameFile.text = stackTraceElement.fileName
36 
37     return binding.root
38   }
39 }
40