diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSAMA/OpenAPSAMAFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSAMA/OpenAPSAMAFragment.kt
index fcd78a9adc..ddb429d9fa 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSAMA/OpenAPSAMAFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSAMA/OpenAPSAMAFragment.kt
@@ -7,6 +7,7 @@ import android.view.View
import android.view.ViewGroup
import dagger.android.support.DaggerFragment
import info.nightscout.androidaps.R
+import info.nightscout.androidaps.databinding.OpenapsamaFragmentBinding
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.aps.events.EventOpenAPSUpdateGui
@@ -19,12 +20,12 @@ import info.nightscout.androidaps.utils.extensions.plusAssign
import info.nightscout.androidaps.utils.resources.ResourceHelper
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
-import kotlinx.android.synthetic.main.openapsama_fragment.*
import org.json.JSONArray
import org.json.JSONException
import javax.inject.Inject
class OpenAPSAMAFragment : DaggerFragment() {
+
private var disposable: CompositeDisposable = CompositeDisposable()
@Inject lateinit var aapsLogger: AAPSLogger
@@ -34,15 +35,22 @@ class OpenAPSAMAFragment : DaggerFragment() {
@Inject lateinit var openAPSAMAPlugin: OpenAPSAMAPlugin
@Inject lateinit var dateUtil: DateUtil
+ private var _binding: OpenapsamaFragmentBinding? = null
+
+ // This property is only valid between onCreateView and
+ // onDestroyView.
+ private val binding get() = _binding!!
+
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?): View? {
- return inflater.inflate(R.layout.openapsama_fragment, container, false)
+ savedInstanceState: Bundle?): View {
+ _binding = OpenapsamaFragmentBinding.inflate(inflater, container, false)
+ return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- openapsma_run.setOnClickListener {
+ binding.run.setOnClickListener {
openAPSAMAPlugin.invoke("OpenAPSAMA button", false)
}
}
@@ -73,47 +81,53 @@ class OpenAPSAMAFragment : DaggerFragment() {
disposable.clear()
}
+ @Synchronized
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+
@Synchronized
private fun updateGUI() {
- if (openapsma_result == null) return
+ if (_binding == null) return
openAPSAMAPlugin.lastAPSResult?.let { lastAPSResult ->
- openapsma_result.text = JSONFormatter.format(lastAPSResult.json)
- openapsma_request.text = lastAPSResult.toSpanned()
+ binding.result.text = JSONFormatter.format(lastAPSResult.json)
+ binding.request.text = lastAPSResult.toSpanned()
}
openAPSAMAPlugin.lastDetermineBasalAdapterAMAJS?.let { determineBasalAdapterAMAJS ->
- openapsma_glucosestatus.text = JSONFormatter.format(determineBasalAdapterAMAJS.glucoseStatusParam)
- openapsma_currenttemp.text = JSONFormatter.format(determineBasalAdapterAMAJS.currentTempParam)
+ binding.glucosestatus.text = JSONFormatter.format(determineBasalAdapterAMAJS.glucoseStatusParam)
+ binding.currenttemp.text = JSONFormatter.format(determineBasalAdapterAMAJS.currentTempParam)
try {
val iobArray = JSONArray(determineBasalAdapterAMAJS.iobDataParam)
- openapsma_iobdata.text = TextUtils.concat(resourceHelper.gs(R.string.array_of_elements, iobArray.length()) + "\n", JSONFormatter.format(iobArray.getString(0)))
+ binding.iobdata.text = TextUtils.concat(resourceHelper.gs(R.string.array_of_elements, iobArray.length()) + "\n", JSONFormatter.format(iobArray.getString(0)))
} catch (e: JSONException) {
aapsLogger.error(LTag.APS, "Unhandled exception", e)
@Suppress("SetTextI18n")
- openapsma_iobdata.text = "JSONException see log for details"
+ binding.iobdata.text = "JSONException see log for details"
}
- openapsma_profile.text = JSONFormatter.format(determineBasalAdapterAMAJS.profileParam)
- openapsma_mealdata.text = JSONFormatter.format(determineBasalAdapterAMAJS.mealDataParam)
- openapsma_scriptdebugdata.text = determineBasalAdapterAMAJS.scriptDebug
+ binding.profile.text = JSONFormatter.format(determineBasalAdapterAMAJS.profileParam)
+ binding.mealdata.text = JSONFormatter.format(determineBasalAdapterAMAJS.mealDataParam)
+ binding.scriptdebugdata.text = determineBasalAdapterAMAJS.scriptDebug
}
if (openAPSAMAPlugin.lastAPSRun != 0L) {
- openapsma_lastrun.text = dateUtil.dateAndTimeString(openAPSAMAPlugin.lastAPSRun)
+ binding.lastrun.text = dateUtil.dateAndTimeString(openAPSAMAPlugin.lastAPSRun)
}
openAPSAMAPlugin.lastAutosensResult?.let {
- openapsma_autosensdata.text = JSONFormatter.format(it.json())
+ binding.autosensdata.text = JSONFormatter.format(it.json())
}
}
private fun updateResultGUI(text: String) {
- openapsma_result.text = text
- openapsma_glucosestatus.text = ""
- openapsma_currenttemp.text = ""
- openapsma_iobdata.text = ""
- openapsma_profile.text = ""
- openapsma_mealdata.text = ""
- openapsma_autosensdata.text = ""
- openapsma_scriptdebugdata.text = ""
- openapsma_request.text = ""
- openapsma_lastrun.text = ""
+ binding.result.text = text
+ binding.glucosestatus.text = ""
+ binding.currenttemp.text = ""
+ binding.iobdata.text = ""
+ binding.profile.text = ""
+ binding.mealdata.text = ""
+ binding.autosensdata.text = ""
+ binding.scriptdebugdata.text = ""
+ binding.request.text = ""
+ binding.lastrun.text = ""
}
}
diff --git a/app/src/main/res/layout/openapsama_fragment.xml b/app/src/main/res/layout/openapsama_fragment.xml
index e82f395836..01757658e1 100644
--- a/app/src/main/res/layout/openapsama_fragment.xml
+++ b/app/src/main/res/layout/openapsama_fragment.xml
@@ -1,573 +1,567 @@
-
-
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+
+
+
+
+
+ android:orientation="horizontal">
-
-
-
-
-
-
-
+ android:layout_weight="2"
+ android:gravity="end"
+ android:paddingEnd="5dp"
+ android:text="@string/openapsma_lastrun_label"
+ android:textSize="14sp" />
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_weight="1"
+ android:gravity="start"
+ android:paddingStart="5dp"
+ android:textColor="@android:color/white"
+ android:textSize="14sp" />
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+