NSProfileFragment -> jetpack
This commit is contained in:
parent
c6438f5df9
commit
99bf1567e2
3 changed files with 116 additions and 97 deletions
|
@ -8,8 +8,9 @@ import android.widget.AdapterView
|
|||
import android.widget.ArrayAdapter
|
||||
import dagger.android.support.DaggerFragment
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
|
||||
import info.nightscout.androidaps.databinding.NsprofileFragmentBinding
|
||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
|
||||
import info.nightscout.androidaps.plugins.profile.ns.events.EventNSProfileUpdateGUI
|
||||
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin
|
||||
import info.nightscout.androidaps.utils.DateUtil
|
||||
|
@ -20,9 +21,6 @@ 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.close.*
|
||||
import kotlinx.android.synthetic.main.nsprofile_fragment.*
|
||||
import kotlinx.android.synthetic.main.profileviewer_fragment.*
|
||||
import javax.inject.Inject
|
||||
|
||||
class NSProfileFragment : DaggerFragment() {
|
||||
|
@ -36,18 +34,25 @@ class NSProfileFragment : DaggerFragment() {
|
|||
|
||||
private var disposable: CompositeDisposable = CompositeDisposable()
|
||||
|
||||
private var _binding: NsprofileFragmentBinding? = 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.nsprofile_fragment, container, false)
|
||||
savedInstanceState: Bundle?): View {
|
||||
_binding = NsprofileFragmentBinding.inflate(inflater, container, false)
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
close.visibility = View.GONE // not needed for fragment
|
||||
binding.profileviewer.closeLayout.close.visibility = View.GONE // not needed for fragment
|
||||
|
||||
nsprofile_profileswitch.setOnClickListener {
|
||||
val name = nsprofile_spinner.selectedItem?.toString() ?: ""
|
||||
binding.profileswitch.setOnClickListener {
|
||||
val name = binding.spinner.selectedItem?.toString() ?: ""
|
||||
nsProfilePlugin.profile?.let { store ->
|
||||
store.getSpecificProfile(name)?.let {
|
||||
activity?.let { activity ->
|
||||
|
@ -60,43 +65,46 @@ class NSProfileFragment : DaggerFragment() {
|
|||
}
|
||||
}
|
||||
|
||||
nsprofile_spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
|
||||
binding.spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
|
||||
override fun onNothingSelected(parent: AdapterView<*>?) {
|
||||
profileview_invalidprofile.visibility = View.VISIBLE
|
||||
profileview_noprofile.visibility = View.VISIBLE
|
||||
profileview_units.text = ""
|
||||
profileview_dia.text = ""
|
||||
profileview_activeprofile.text = ""
|
||||
profileview_ic.text = ""
|
||||
profileview_isf.text = ""
|
||||
profileview_basal.text = ""
|
||||
profileview_basaltotal.text = ""
|
||||
profileview_target.text = ""
|
||||
nsprofile_profileswitch.visibility = View.GONE
|
||||
if (_binding == null) return
|
||||
binding.profileviewer.invalidprofile.visibility = View.VISIBLE
|
||||
binding.profileviewer.noprofile.visibility = View.VISIBLE
|
||||
binding.profileviewer.units.text = ""
|
||||
binding.profileviewer.dia.text = ""
|
||||
binding.profileviewer.activeprofile.text = ""
|
||||
binding.profileviewer.ic.text = ""
|
||||
binding.profileviewer.isf.text = ""
|
||||
binding.profileviewer.basal.text = ""
|
||||
binding.profileviewer.basaltotal.text = ""
|
||||
binding.profileviewer.target.text = ""
|
||||
binding.profileswitch.visibility = View.GONE
|
||||
}
|
||||
|
||||
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
|
||||
val name = nsprofile_spinner.getItemAtPosition(position).toString()
|
||||
if (_binding == null) return
|
||||
val name = binding.spinner.getItemAtPosition(position).toString()
|
||||
|
||||
nsprofile_profileswitch.visibility = View.GONE
|
||||
binding.profileswitch.visibility = View.GONE
|
||||
|
||||
nsProfilePlugin.profile?.let { store ->
|
||||
store.getSpecificProfile(name)?.let { profile ->
|
||||
profileview_units.text = profile.units
|
||||
profileview_dia.text = resourceHelper.gs(R.string.format_hours, profile.dia)
|
||||
profileview_activeprofile.text = name
|
||||
profileview_ic.text = profile.icList
|
||||
profileview_isf.text = profile.isfList
|
||||
profileview_basal.text = profile.basalList
|
||||
profileview_basaltotal.text = String.format(resourceHelper.gs(R.string.profile_total), DecimalFormatter.to2Decimal(profile.baseBasalSum()))
|
||||
profileview_target.text = profile.targetList
|
||||
basal_graph.show(profile)
|
||||
if (_binding == null) return
|
||||
binding.profileviewer.units.text = profile.units
|
||||
binding.profileviewer.dia.text = resourceHelper.gs(R.string.format_hours, profile.dia)
|
||||
binding.profileviewer.activeprofile.text = name
|
||||
binding.profileviewer.ic.text = profile.icList
|
||||
binding.profileviewer.isf.text = profile.isfList
|
||||
binding.profileviewer.basal.text = profile.basalList
|
||||
binding.profileviewer.basaltotal.text = String.format(resourceHelper.gs(R.string.profile_total), DecimalFormatter.to2Decimal(profile.baseBasalSum()))
|
||||
binding.profileviewer.target.text = profile.targetList
|
||||
binding.profileviewer.basalGraph.show(profile)
|
||||
if (profile.isValid("NSProfileFragment")) {
|
||||
profileview_invalidprofile.visibility = View.GONE
|
||||
nsprofile_profileswitch.visibility = View.VISIBLE
|
||||
binding.profileviewer.invalidprofile.visibility = View.GONE
|
||||
binding.profileswitch.visibility = View.VISIBLE
|
||||
} else {
|
||||
profileview_invalidprofile.visibility = View.VISIBLE
|
||||
nsprofile_profileswitch.visibility = View.GONE
|
||||
binding.profileviewer.invalidprofile.visibility = View.VISIBLE
|
||||
binding.profileswitch.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -120,21 +128,29 @@ class NSProfileFragment : DaggerFragment() {
|
|||
disposable.clear()
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
fun updateGUI() {
|
||||
if (profileview_noprofile == null) return
|
||||
profileview_noprofile.visibility = View.VISIBLE
|
||||
if (_binding == null) return
|
||||
binding.profileviewer.noprofile.visibility = View.VISIBLE
|
||||
|
||||
nsProfilePlugin.profile?.let { profileStore ->
|
||||
val profileList = profileStore.getProfileList()
|
||||
val adapter = ArrayAdapter(context!!, R.layout.spinner_centered, profileList)
|
||||
nsprofile_spinner.adapter = adapter
|
||||
// set selected to actual profile
|
||||
for (p in profileList.indices) {
|
||||
if (profileList[p] == profileFunction.getProfileName())
|
||||
nsprofile_spinner.setSelection(p)
|
||||
context?.let { context ->
|
||||
val profileList = profileStore.getProfileList()
|
||||
val adapter = ArrayAdapter(context, R.layout.spinner_centered, profileList)
|
||||
binding.spinner.adapter = adapter
|
||||
// set selected to actual profile
|
||||
for (p in profileList.indices) {
|
||||
if (profileList[p] == profileFunction.getProfileName())
|
||||
binding.spinner.setSelection(p)
|
||||
}
|
||||
binding.profileviewer.noprofile.visibility = View.GONE
|
||||
}
|
||||
profileview_noprofile.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
android:layout_height="match_parent">
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/nsprofile_spinner"
|
||||
android:id="@+id/spinner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginBottom="5dp" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/nsprofile_profileswitch"
|
||||
android:id="@+id/profileswitch"
|
||||
style="?android:attr/buttonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -20,6 +20,7 @@
|
|||
android:textColor="@color/colorProfileSwitchButton" />
|
||||
|
||||
<include
|
||||
android:id="@+id/profileviewer"
|
||||
layout="@layout/profileviewer_fragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/profileview_invalidprofile"
|
||||
android:id="@+id/invalidprofile"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
|
@ -21,7 +21,7 @@
|
|||
android:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/profileview_noprofile"
|
||||
android:id="@+id/noprofile"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
|
@ -48,20 +48,20 @@
|
|||
<TextView
|
||||
android:layout_width="5dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:text=":"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/profileview_activeprofile"
|
||||
android:id="@+id/activeprofile"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:layout_marginStart="5dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
|
@ -78,7 +78,7 @@
|
|||
android:visibility="gone" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/profileview_datelayout"
|
||||
android:id="@+id/datelayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
|
@ -87,29 +87,29 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="2"
|
||||
android:gravity="end"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:text="@string/date"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="5dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:text=":"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/profileview_date"
|
||||
android:id="@+id/date"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:layout_marginStart="5dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
|
@ -132,29 +132,29 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="2"
|
||||
android:gravity="end"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:text="@string/units_label"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="5dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:text=":"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/profileview_units"
|
||||
android:id="@+id/units"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:layout_marginStart="5dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
|
@ -177,29 +177,29 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="2"
|
||||
android:gravity="end"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:text="@string/dia_label"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="5dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:text=":"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/profileview_dia"
|
||||
android:id="@+id/dia"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:layout_marginStart="5dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
|
@ -222,29 +222,29 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="2"
|
||||
android:gravity="end"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:text="@string/ic_label"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="5dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:text=":"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/profileview_ic"
|
||||
android:id="@+id/ic"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:layout_marginStart="5dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
|
@ -267,29 +267,29 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="2"
|
||||
android:gravity="end"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:text="@string/isf_label"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="5dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:text=":"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/profileview_isf"
|
||||
android:id="@+id/isf"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:layout_marginStart="5dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
|
@ -312,29 +312,29 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="2"
|
||||
android:gravity="end"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:text="@string/basal_label"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="5dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:text=":"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/profileview_basal"
|
||||
android:id="@+id/basal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:layout_marginStart="5dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
|
@ -348,29 +348,29 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="2"
|
||||
android:gravity="end"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:text=""
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="5dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:text=""
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/profileview_basaltotal"
|
||||
android:id="@+id/basaltotal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="17dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:layout_marginStart="17dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
|
@ -399,29 +399,29 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_weight="2"
|
||||
android:gravity="end"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:text="@string/target_label"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="5dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_weight="0"
|
||||
android:gravity="center_horizontal"
|
||||
android:text=":"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/profileview_target"
|
||||
android:id="@+id/target"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="start"
|
||||
android:layout_marginStart="5dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
|
@ -437,14 +437,16 @@
|
|||
android:background="@color/listdelimiter" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/profileview_reload"
|
||||
android:id="@+id/reload"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:text="@string/reloadprofile"
|
||||
android:visibility="gone" />
|
||||
|
||||
<include layout="@layout/close" />
|
||||
<include
|
||||
android:id="@+id/close_layout"
|
||||
layout="@layout/close" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
Loading…
Reference in a new issue