1
+ package com.google.android.fhir.engine.benchmarks.app
2
+
3
+ import android.os.Bundle
4
+ import android.view.View
5
+ import android.widget.TextView
6
+ import androidx.appcompat.app.AppCompatActivity
7
+ import androidx.core.view.ViewCompat
8
+ import androidx.core.view.WindowInsetsCompat
9
+ import androidx.lifecycle.ViewModel
10
+ import androidx.lifecycle.ViewModelProvider
11
+ import androidx.lifecycle.lifecycleScope
12
+ import kotlinx.coroutines.launch
13
+
14
+
15
+ class BenchmarkActivity : AppCompatActivity () {
16
+
17
+ private lateinit var viewModel: BenchmarkViewModel
18
+ private lateinit var createTextView: TextView
19
+ private lateinit var updateTextView: TextView
20
+
21
+ override fun onCreate (savedInstanceState : Bundle ? ) {
22
+ super .onCreate(savedInstanceState)
23
+ setContentView(R .layout.activity_benchmark)
24
+
25
+ ViewCompat .setOnApplyWindowInsetsListener(findViewById(R .id.main)) { v, insets ->
26
+ val systemBars = insets.getInsets(WindowInsetsCompat .Type .systemBars())
27
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
28
+ insets
29
+ }
30
+
31
+ val fhirEngine = BenchmarkApplication .fhirEngine(this )
32
+ viewModel = ViewModelProvider (
33
+ this ,
34
+ object : ViewModelProvider .Factory {
35
+ override fun <T : ViewModel > create (modelClass : Class <T >): T {
36
+ if (modelClass.isAssignableFrom(BenchmarkViewModel ::class .java)) {
37
+ @Suppress(" UNCHECKED_CAST" )
38
+ return BenchmarkViewModel (application, fhirEngine) as T
39
+ }
40
+ return super .create(modelClass)
41
+ }
42
+ })[BenchmarkViewModel ::class .java]
43
+
44
+ createTextView = findViewById(R .id.createTextView)
45
+ findViewById<View >(R .id.create).setOnClickListener {
46
+ lifecycleScope.launch {
47
+ createTextView.setText(R .string.creating)
48
+ viewModel.createResources()
49
+ createTextView.setText(R .string.createText)
50
+ }
51
+ }
52
+ updateTextView = findViewById(R .id.updateTextView)
53
+ findViewById<View >(R .id.update).setOnClickListener {
54
+ lifecycleScope.launch {
55
+ updateTextView.setText(R .string.updating)
56
+ viewModel.updateResources()
57
+ updateTextView.setText(R .string.updateText)
58
+ }
59
+ }
60
+ findViewById<View >(R .id.get).setOnClickListener { viewModel.getResource() }
61
+ findViewById<View >(R .id.delete).setOnClickListener { viewModel.deleteResources() }
62
+ }
63
+ }
0 commit comments