Merge pull request #1889 from Andries-Smit/chore/watchface-databinding
Chore: watchface use databinding
This commit is contained in:
commit
0397308dad
|
@ -6,6 +6,7 @@ import info.nightscout.androidaps.comm.DataLayerListenerServiceWear
|
|||
import info.nightscout.androidaps.complications.*
|
||||
import info.nightscout.androidaps.tile.*
|
||||
import info.nightscout.androidaps.watchfaces.*
|
||||
import info.nightscout.androidaps.watchfaces.utils.BaseWatchFace
|
||||
|
||||
@Module
|
||||
@Suppress("unused")
|
||||
|
|
|
@ -1,116 +1,93 @@
|
|||
package info.nightscout.androidaps.watchfaces
|
||||
|
||||
import android.graphics.Color
|
||||
import androidx.annotation.LayoutRes
|
||||
import android.view.LayoutInflater
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.ustwo.clockwise.common.WatchMode
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.databinding.ActivityHomeLargeBinding
|
||||
import info.nightscout.androidaps.watchfaces.utils.BaseWatchFace
|
||||
|
||||
class AapsLargeWatchface : BaseWatchFace() {
|
||||
|
||||
@LayoutRes override fun layoutResource(): Int = R.layout.activity_home_large
|
||||
private lateinit var binding: ActivityHomeLargeBinding
|
||||
|
||||
override fun inflateLayout(inflater: LayoutInflater): ViewBinding {
|
||||
binding = ActivityHomeLargeBinding.inflate(inflater)
|
||||
return binding
|
||||
}
|
||||
|
||||
override fun setColorDark() {
|
||||
mLinearLayout?.setBackgroundColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_background else R.color.dark_mLinearLayout))
|
||||
mTime?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
}
|
||||
|
||||
0L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
}
|
||||
|
||||
-1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
}
|
||||
binding.secondaryLayout.setBackgroundColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_background else R.color.dark_mLinearLayout))
|
||||
binding.time.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
val color = when (singleBg.sgvLevel) {
|
||||
1L -> R.color.dark_highColor
|
||||
0L -> R.color.dark_midColor
|
||||
-1L -> R.color.dark_lowColor
|
||||
else -> R.color.dark_midColor
|
||||
}
|
||||
if (ageLevel == 1) mTimestamp?.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mTimestamp1_home))
|
||||
else mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_TimestampOld))
|
||||
|
||||
if (status.batteryLevel == 1) mUploaderBattery?.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_uploaderBattery))
|
||||
else mUploaderBattery?.setTextColor(ContextCompat.getColor(this, R.color.dark_uploaderBatteryEmpty))
|
||||
|
||||
mStatus?.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mStatus_home))
|
||||
binding.sgv.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.delta.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.direction.setTextColor(ContextCompat.getColor(this, color))
|
||||
val colorTime = if (ageLevel == 1) if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mTimestamp1_home else R.color.dark_TimestampOld
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, colorTime))
|
||||
val colourBat = if (status.batteryLevel == 1) if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_uploaderBattery else R.color.dark_uploaderBatteryEmpty
|
||||
binding.uploaderBattery.setTextColor(ContextCompat.getColor(this, colourBat))
|
||||
binding.status.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mStatus_home))
|
||||
}
|
||||
|
||||
override fun setColorBright() {
|
||||
if (currentWatchMode == WatchMode.INTERACTIVE) {
|
||||
mLinearLayout?.setBackgroundColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.light_background else R.color.light_stripe_background))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background))
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
}
|
||||
|
||||
0L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
}
|
||||
|
||||
-1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
}
|
||||
binding.secondaryLayout.setBackgroundColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.light_background else R.color.light_stripe_background))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background))
|
||||
val color = when (singleBg.sgvLevel) {
|
||||
1L -> R.color.light_highColor
|
||||
0L -> R.color.light_midColor
|
||||
-1L -> R.color.light_lowColor
|
||||
else -> R.color.light_midColor
|
||||
}
|
||||
if (ageLevel == 1) mTimestamp?.setTextColor(if (dividerMatchesBg) Color.BLACK else Color.WHITE)
|
||||
else mTimestamp?.setTextColor(Color.RED)
|
||||
binding.sgv.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.delta.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.direction.setTextColor(ContextCompat.getColor(this, color))
|
||||
|
||||
if (status.batteryLevel == 1) mUploaderBattery?.setTextColor(if (dividerMatchesBg) Color.BLACK else Color.WHITE)
|
||||
else mUploaderBattery?.setTextColor(Color.RED)
|
||||
val colorTime = if (ageLevel == 1) if (dividerMatchesBg) Color.BLACK else Color.WHITE else Color.RED
|
||||
binding.timestamp.setTextColor(colorTime)
|
||||
val colourBat = if (status.batteryLevel == 1) if (dividerMatchesBg) Color.BLACK else Color.WHITE else Color.RED
|
||||
binding.uploaderBattery.setTextColor(colourBat)
|
||||
|
||||
mStatus?.setTextColor(if (dividerMatchesBg) Color.BLACK else Color.WHITE)
|
||||
mTime?.setTextColor(Color.BLACK)
|
||||
binding.status.setTextColor(if (dividerMatchesBg) Color.BLACK else Color.WHITE)
|
||||
binding.time.setTextColor(Color.BLACK)
|
||||
} else {
|
||||
mRelativeLayout?.setBackgroundColor(Color.BLACK)
|
||||
mLinearLayout?.setBackgroundColor(if (dividerMatchesBg) Color.BLACK else Color.LTGRAY)
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mSgv?.setTextColor(Color.YELLOW)
|
||||
mDirection?.setTextColor(Color.YELLOW)
|
||||
mDelta?.setTextColor(Color.YELLOW)
|
||||
}
|
||||
|
||||
0L -> {
|
||||
mSgv?.setTextColor(Color.WHITE)
|
||||
mDirection?.setTextColor(Color.WHITE)
|
||||
mDelta?.setTextColor(Color.WHITE)
|
||||
}
|
||||
|
||||
-1L -> {
|
||||
mSgv?.setTextColor(Color.RED)
|
||||
mDirection?.setTextColor(Color.RED)
|
||||
mDelta?.setTextColor(Color.RED)
|
||||
}
|
||||
binding.mainLayout.setBackgroundColor(Color.BLACK)
|
||||
binding.secondaryLayout.setBackgroundColor(if (dividerMatchesBg) Color.BLACK else Color.LTGRAY)
|
||||
val color = when (singleBg.sgvLevel) {
|
||||
1L -> Color.YELLOW
|
||||
0L -> Color.WHITE
|
||||
-1L -> Color.RED
|
||||
else -> Color.WHITE
|
||||
}
|
||||
mUploaderBattery?.setTextColor(if (dividerMatchesBg) Color.WHITE else Color.BLACK)
|
||||
mTimestamp?.setTextColor(if (dividerMatchesBg) Color.WHITE else Color.BLACK)
|
||||
mStatus?.setTextColor(if (dividerMatchesBg) Color.WHITE else Color.BLACK)
|
||||
mTime?.setTextColor(Color.WHITE)
|
||||
binding.sgv.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.delta.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.direction.setTextColor(ContextCompat.getColor(this, color))
|
||||
|
||||
binding.uploaderBattery.setTextColor(if (dividerMatchesBg) Color.WHITE else Color.BLACK)
|
||||
binding.timestamp.setTextColor(if (dividerMatchesBg) Color.WHITE else Color.BLACK)
|
||||
binding.status.setTextColor(if (dividerMatchesBg) Color.WHITE else Color.BLACK)
|
||||
binding.time.setTextColor(Color.WHITE)
|
||||
}
|
||||
}
|
||||
|
||||
override fun setColorLowRes() {
|
||||
mLinearLayout?.setBackgroundColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_background else R.color.dark_mLinearLayout))
|
||||
mTime?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mTimestamp1_home))
|
||||
mUploaderBattery?.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_uploaderBattery))
|
||||
mStatus?.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mStatus_home))
|
||||
binding.secondaryLayout.setBackgroundColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_background else R.color.dark_mLinearLayout))
|
||||
binding.time.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
binding.sgv.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.delta.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.direction.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mTimestamp1_home))
|
||||
binding.uploaderBattery.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_uploaderBattery))
|
||||
binding.status.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mStatus_home))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,110 +1,109 @@
|
|||
package info.nightscout.androidaps.watchfaces
|
||||
|
||||
import android.graphics.Color
|
||||
import android.view.LayoutInflater
|
||||
import androidx.annotation.ColorInt
|
||||
import androidx.annotation.LayoutRes
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.ustwo.clockwise.common.WatchMode
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.databinding.ActivityHome2Binding
|
||||
import info.nightscout.androidaps.watchfaces.utils.BaseWatchFace
|
||||
|
||||
class AapsV2Watchface : BaseWatchFace() {
|
||||
|
||||
@LayoutRes override fun layoutResource(): Int = R.layout.activity_home_2
|
||||
private lateinit var binding: ActivityHome2Binding
|
||||
|
||||
override fun inflateLayout(inflater: LayoutInflater): ViewBinding {
|
||||
binding = ActivityHome2Binding.inflate(inflater)
|
||||
return binding
|
||||
}
|
||||
|
||||
override fun setColorDark() {
|
||||
@ColorInt val dividerTxtColor = if (dividerMatchesBg) ContextCompat.getColor(this, R.color.dark_midColor) else Color.BLACK
|
||||
@ColorInt val dividerBatteryOkColor = ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_uploaderBattery)
|
||||
@ColorInt val dividerBgColor = ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_background else R.color.dark_statusView)
|
||||
mLinearLayout?.setBackgroundColor(dividerBgColor)
|
||||
mLinearLayout2?.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
mTime?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mIOB1?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mIOB2?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mCOB1?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mCOB2?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDay?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mMonth?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mLoop?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.secondaryLayout.setBackgroundColor(dividerBgColor)
|
||||
binding.tertiaryLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
binding.time.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.iob1.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.iob2.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.cob1.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.cob2.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.day.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.month.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.loop.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
setTextSizes()
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
}
|
||||
|
||||
0L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
}
|
||||
|
||||
-1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
}
|
||||
val color = when (singleBg.sgvLevel) {
|
||||
1L -> R.color.dark_highColor
|
||||
0L -> R.color.dark_midColor
|
||||
-1L -> R.color.dark_lowColor
|
||||
else -> R.color.dark_midColor
|
||||
}
|
||||
if (ageLevel == 1) mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
else mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_TimestampOld))
|
||||
binding.sgv.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.direction.setTextColor(ContextCompat.getColor(this, color))
|
||||
|
||||
if (status.batteryLevel == 1) mUploaderBattery?.setTextColor(dividerBatteryOkColor)
|
||||
else mUploaderBattery?.setTextColor(ContextCompat.getColor(this, R.color.dark_uploaderBatteryEmpty))
|
||||
val colorTime = if (ageLevel == 1) R.color.dark_midColor else R.color.dark_TimestampOld
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, colorTime))
|
||||
val colourBat = if (status.batteryLevel == 1) dividerBatteryOkColor else ContextCompat.getColor(this, R.color.dark_uploaderBatteryEmpty)
|
||||
binding.uploaderBattery.setTextColor(colourBat)
|
||||
|
||||
mRigBattery?.setTextColor(dividerTxtColor)
|
||||
mDelta?.setTextColor(dividerTxtColor)
|
||||
mAvgDelta?.setTextColor(dividerTxtColor)
|
||||
mBasalRate?.setTextColor(dividerTxtColor)
|
||||
mBgi?.setTextColor(dividerTxtColor)
|
||||
binding.rigBattery.setTextColor(dividerTxtColor)
|
||||
binding.delta.setTextColor(dividerTxtColor)
|
||||
binding.avgDelta.setTextColor(dividerTxtColor)
|
||||
binding.basalRate?.setTextColor(dividerTxtColor)
|
||||
binding.bgi.setTextColor(dividerTxtColor)
|
||||
when (loopLevel) {
|
||||
-1 -> mLoop?.setBackgroundResource(R.drawable.loop_grey_25)
|
||||
1 -> mLoop?.setBackgroundResource(R.drawable.loop_green_25)
|
||||
else -> mLoop?.setBackgroundResource(R.drawable.loop_red_25)
|
||||
}
|
||||
if (chart != null) {
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
-1 -> binding.loop.setBackgroundResource(R.drawable.loop_grey_25)
|
||||
1 -> binding.loop.setBackgroundResource(R.drawable.loop_green_25)
|
||||
else -> binding.loop.setBackgroundResource(R.drawable.loop_red_25)
|
||||
}
|
||||
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
}
|
||||
|
||||
override fun setColorLowRes() {
|
||||
@ColorInt val dividerTxtColor = if (dividerMatchesBg) ContextCompat.getColor(this, R.color.dark_midColor) else Color.BLACK
|
||||
@ColorInt val dividerBgColor = ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_background else R.color.dark_statusView)
|
||||
mLinearLayout?.setBackgroundColor(dividerBgColor)
|
||||
mLinearLayout2?.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
mLoop?.setBackgroundResource(R.drawable.loop_grey_25)
|
||||
mLoop?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_Timestamp))
|
||||
mDelta?.setTextColor(dividerTxtColor)
|
||||
mAvgDelta?.setTextColor(dividerTxtColor)
|
||||
mRigBattery?.setTextColor(dividerTxtColor)
|
||||
mUploaderBattery?.setTextColor(dividerTxtColor)
|
||||
mBasalRate?.setTextColor(dividerTxtColor)
|
||||
mBgi?.setTextColor(dividerTxtColor)
|
||||
mIOB1?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mIOB2?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mCOB1?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mCOB2?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDay?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mMonth?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mTime?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
if (chart != null) {
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark_lowres)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light_lowres)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
}
|
||||
binding.secondaryLayout.setBackgroundColor(dividerBgColor)
|
||||
binding.tertiaryLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
binding.loop.setBackgroundResource(R.drawable.loop_grey_25)
|
||||
binding.loop.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.sgv.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.direction.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, R.color.dark_Timestamp))
|
||||
binding.delta.setTextColor(dividerTxtColor)
|
||||
binding.avgDelta.setTextColor(dividerTxtColor)
|
||||
binding.rigBattery.setTextColor(dividerTxtColor)
|
||||
binding.uploaderBattery.setTextColor(dividerTxtColor)
|
||||
binding.basalRate?.setTextColor(dividerTxtColor)
|
||||
binding.bgi.setTextColor(dividerTxtColor)
|
||||
binding.iob1.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.iob2.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.cob1.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.cob2.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.day.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.month.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.time.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark_lowres)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light_lowres)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
|
||||
setTextSizes()
|
||||
}
|
||||
|
||||
|
@ -112,58 +111,50 @@ class AapsV2Watchface : BaseWatchFace() {
|
|||
if (currentWatchMode == WatchMode.INTERACTIVE) {
|
||||
@ColorInt val dividerTxtColor = if (dividerMatchesBg) Color.BLACK else ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
@ColorInt val dividerBgColor = ContextCompat.getColor(this, if (dividerMatchesBg) R.color.light_background else R.color.light_stripe_background)
|
||||
mLinearLayout?.setBackgroundColor(dividerBgColor)
|
||||
mLinearLayout2?.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background))
|
||||
mTime?.setTextColor(Color.BLACK)
|
||||
mIOB1?.setTextColor(Color.BLACK)
|
||||
mIOB2?.setTextColor(Color.BLACK)
|
||||
mCOB1?.setTextColor(Color.BLACK)
|
||||
mCOB2?.setTextColor(Color.BLACK)
|
||||
mDay?.setTextColor(Color.BLACK)
|
||||
mMonth?.setTextColor(Color.BLACK)
|
||||
mLoop?.setTextColor(Color.BLACK)
|
||||
binding.secondaryLayout.setBackgroundColor(dividerBgColor)
|
||||
binding.tertiaryLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background))
|
||||
binding.time.setTextColor(Color.BLACK)
|
||||
binding.iob1.setTextColor(Color.BLACK)
|
||||
binding.iob2.setTextColor(Color.BLACK)
|
||||
binding.cob1.setTextColor(Color.BLACK)
|
||||
binding.cob2.setTextColor(Color.BLACK)
|
||||
binding.day.setTextColor(Color.BLACK)
|
||||
binding.month.setTextColor(Color.BLACK)
|
||||
binding.loop.setTextColor(Color.BLACK)
|
||||
setTextSizes()
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
}
|
||||
|
||||
0L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
}
|
||||
|
||||
-1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
}
|
||||
val color = when (singleBg.sgvLevel) {
|
||||
1L -> R.color.light_highColor
|
||||
0L -> R.color.light_midColor
|
||||
-1L -> R.color.light_lowColor
|
||||
else -> R.color.light_midColor
|
||||
}
|
||||
if (ageLevel == 1) mTimestamp?.setTextColor(Color.BLACK)
|
||||
else mTimestamp?.setTextColor(Color.RED)
|
||||
if (status.batteryLevel == 1) mUploaderBattery?.setTextColor(dividerTxtColor)
|
||||
else mUploaderBattery?.setTextColor(Color.RED)
|
||||
mRigBattery?.setTextColor(dividerTxtColor)
|
||||
mDelta?.setTextColor(dividerTxtColor)
|
||||
mAvgDelta?.setTextColor(dividerTxtColor)
|
||||
mBasalRate?.setTextColor(dividerTxtColor)
|
||||
mBgi?.setTextColor(dividerTxtColor)
|
||||
binding.sgv.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.direction.setTextColor(ContextCompat.getColor(this, color))
|
||||
val colorTime = if (ageLevel == 1) Color.BLACK else Color.RED
|
||||
binding.timestamp.setTextColor(colorTime)
|
||||
val colourBat = if (status.batteryLevel == 1) dividerTxtColor else Color.RED
|
||||
binding.uploaderBattery.setTextColor(colourBat)
|
||||
binding.rigBattery.setTextColor(dividerTxtColor)
|
||||
binding.delta.setTextColor(dividerTxtColor)
|
||||
binding.avgDelta.setTextColor(dividerTxtColor)
|
||||
binding.basalRate?.setTextColor(dividerTxtColor)
|
||||
binding.bgi.setTextColor(dividerTxtColor)
|
||||
when (loopLevel) {
|
||||
-1 -> mLoop?.setBackgroundResource(R.drawable.loop_grey_25)
|
||||
1 -> mLoop?.setBackgroundResource(R.drawable.loop_green_25)
|
||||
else -> mLoop?.setBackgroundResource(R.drawable.loop_red_25)
|
||||
}
|
||||
if (chart != null) {
|
||||
highColor = ContextCompat.getColor(this, R.color.light_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.light_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.light_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.light_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
-1 -> binding.loop.setBackgroundResource(R.drawable.loop_grey_25)
|
||||
1 -> binding.loop.setBackgroundResource(R.drawable.loop_green_25)
|
||||
else -> binding.loop.setBackgroundResource(R.drawable.loop_red_25)
|
||||
}
|
||||
|
||||
highColor = ContextCompat.getColor(this, R.color.light_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.light_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.light_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.light_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
|
||||
} else {
|
||||
setColorDark()
|
||||
}
|
||||
|
@ -171,11 +162,11 @@ class AapsV2Watchface : BaseWatchFace() {
|
|||
|
||||
private fun setTextSizes() {
|
||||
if (status.detailedIob) {
|
||||
mIOB1?.textSize = 14f
|
||||
mIOB2?.textSize = 10f
|
||||
binding.iob1.textSize = 14f
|
||||
binding.iob2.textSize = 10f
|
||||
} else {
|
||||
mIOB1?.textSize = 10f
|
||||
mIOB2?.textSize = 14f
|
||||
binding.iob1.textSize = 10f
|
||||
binding.iob2.textSize = 14f
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,114 +1,106 @@
|
|||
package info.nightscout.androidaps.watchfaces
|
||||
|
||||
import android.graphics.Color
|
||||
import androidx.annotation.LayoutRes
|
||||
import android.view.LayoutInflater
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.ustwo.clockwise.common.WatchMode
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.watchfaces.utils.BaseWatchFace
|
||||
import info.nightscout.androidaps.databinding.ActivityHomeBinding
|
||||
|
||||
class AapsWatchface : BaseWatchFace() {
|
||||
|
||||
@LayoutRes override fun layoutResource(): Int = R.layout.activity_home
|
||||
private lateinit var binding: ActivityHomeBinding
|
||||
|
||||
override fun inflateLayout(inflater: LayoutInflater): ViewBinding {
|
||||
binding = ActivityHomeBinding.inflate(inflater)
|
||||
return binding
|
||||
}
|
||||
|
||||
override fun setColorDark() {
|
||||
mLinearLayout?.setBackgroundColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_background else R.color.dark_statusView))
|
||||
mTime?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
}
|
||||
|
||||
0L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
}
|
||||
|
||||
-1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
}
|
||||
}
|
||||
if (ageLevel == 1) mTimestamp?.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mTimestamp1_home))
|
||||
else mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_TimestampOld))
|
||||
if (status.batteryLevel == 1) mUploaderBattery?.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_uploaderBattery))
|
||||
else mUploaderBattery?.setTextColor(ContextCompat.getColor(this, R.color.dark_uploaderBatteryEmpty))
|
||||
mStatus?.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mStatus_home))
|
||||
if (chart != null) {
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
binding.secondaryLayout.setBackgroundColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_background else R.color.dark_statusView))
|
||||
binding.time.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
val color = when (singleBg.sgvLevel) {
|
||||
1L -> R.color.dark_highColor
|
||||
0L -> R.color.dark_midColor
|
||||
-1L -> R.color.dark_lowColor
|
||||
else -> R.color.dark_midColor
|
||||
}
|
||||
binding.sgv.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.delta.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.direction.setTextColor(ContextCompat.getColor(this, color))
|
||||
|
||||
val colorTime = if (ageLevel == 1) if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mTimestamp1_home else R.color.dark_TimestampOld
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, colorTime))
|
||||
|
||||
val colourBat = if (status.batteryLevel == 1) if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_uploaderBattery else R.color.dark_uploaderBatteryEmpty
|
||||
binding.uploaderBattery.setTextColor(ContextCompat.getColor(this, colourBat))
|
||||
|
||||
binding.status.setTextColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.dark_midColor else R.color.dark_mStatus_home))
|
||||
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
|
||||
}
|
||||
|
||||
override fun setColorLowRes() {
|
||||
mTime?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_Timestamp))
|
||||
if (chart != null) {
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark_lowres)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light_lowres)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
}
|
||||
binding.time.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
binding.sgv.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.delta.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, R.color.dark_Timestamp))
|
||||
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark_lowres)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light_lowres)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
}
|
||||
|
||||
override fun setColorBright() {
|
||||
if (currentWatchMode == WatchMode.INTERACTIVE) {
|
||||
mLinearLayout?.setBackgroundColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.light_background else R.color.light_stripe_background))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background))
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
}
|
||||
|
||||
0L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
}
|
||||
|
||||
-1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
}
|
||||
}
|
||||
if (ageLevel == 1) mTimestamp?.setTextColor(if (dividerMatchesBg) Color.BLACK else Color.WHITE)
|
||||
else mTimestamp?.setTextColor(Color.RED)
|
||||
if (status.batteryLevel == 1) mUploaderBattery?.setTextColor(if (dividerMatchesBg) Color.BLACK else Color.WHITE)
|
||||
else mUploaderBattery?.setTextColor(Color.RED)
|
||||
mStatus?.setTextColor(if (dividerMatchesBg) Color.BLACK else Color.WHITE)
|
||||
mTime?.setTextColor(Color.BLACK)
|
||||
if (chart != null) {
|
||||
highColor = ContextCompat.getColor(this, R.color.light_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.light_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.light_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.light_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
binding.secondaryLayout.setBackgroundColor(ContextCompat.getColor(this, if (dividerMatchesBg) R.color.light_background else R.color.light_stripe_background))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background))
|
||||
val color = when (singleBg.sgvLevel) {
|
||||
1L -> R.color.light_highColor
|
||||
0L -> R.color.light_midColor
|
||||
-1L -> R.color.light_lowColor
|
||||
else -> R.color.light_midColor
|
||||
}
|
||||
binding.sgv.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.delta.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.direction.setTextColor(ContextCompat.getColor(this, color))
|
||||
|
||||
val colorTime = if (ageLevel == 1) if (dividerMatchesBg) Color.BLACK else Color.WHITE else Color.RED
|
||||
binding.timestamp.setTextColor(colorTime)
|
||||
|
||||
val colourBat = if (status.batteryLevel == 1) if (dividerMatchesBg) Color.BLACK else Color.WHITE else Color.RED
|
||||
binding.uploaderBattery.setTextColor(colourBat)
|
||||
|
||||
binding.status.setTextColor(if (dividerMatchesBg) Color.BLACK else Color.WHITE)
|
||||
binding.time.setTextColor(Color.BLACK)
|
||||
|
||||
highColor = ContextCompat.getColor(this, R.color.light_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.light_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.light_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.light_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
|
||||
} else {
|
||||
setColorDark()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,119 +3,110 @@
|
|||
package info.nightscout.androidaps.watchfaces
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import androidx.annotation.LayoutRes
|
||||
import android.view.LayoutInflater
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.ustwo.clockwise.common.WatchMode
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.databinding.ActivityBigchartBinding
|
||||
import info.nightscout.androidaps.databinding.ActivityBigchartSmallBinding
|
||||
import info.nightscout.androidaps.watchfaces.utils.BaseWatchFace
|
||||
import info.nightscout.androidaps.watchfaces.utils.WatchfaceViewAdapter
|
||||
|
||||
class BigChartWatchface : BaseWatchFace() {
|
||||
|
||||
@LayoutRes override fun layoutResource(): Int =
|
||||
if (resources.displayMetrics.widthPixels < SCREEN_SIZE_SMALL || resources.displayMetrics.heightPixels < SCREEN_SIZE_SMALL) R.layout.activity_bigchart_small
|
||||
else R.layout.activity_bigchart
|
||||
private lateinit var binding: WatchfaceViewAdapter
|
||||
|
||||
override fun inflateLayout(inflater: LayoutInflater): ViewBinding {
|
||||
if (resources.displayMetrics.widthPixels < SCREEN_SIZE_SMALL || resources.displayMetrics.heightPixels < SCREEN_SIZE_SMALL) {
|
||||
val layoutBinding = ActivityBigchartSmallBinding.inflate(inflater)
|
||||
binding = WatchfaceViewAdapter.getBinding(layoutBinding)
|
||||
return layoutBinding
|
||||
}
|
||||
val layoutBinding = ActivityBigchartBinding.inflate(inflater)
|
||||
binding = WatchfaceViewAdapter.getBinding(layoutBinding)
|
||||
return layoutBinding
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
override fun setDataFields() {
|
||||
super.setDataFields()
|
||||
mStatus?.text = status.externalStatus + if (sp.getBoolean(R.string.key_show_cob, true)) (" " + this.status.cob) else ""
|
||||
binding.status?.text = status.externalStatus + if (sp.getBoolean(R.string.key_show_cob, true)) (" " + this.status.cob) else ""
|
||||
}
|
||||
|
||||
override fun setColorLowRes() {
|
||||
mTime?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
mStatus?.setTextColor(ContextCompat.getColor(this, R.color.dark_statusView))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_Timestamp))
|
||||
if (chart != null) {
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark_lowres)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light_lowres)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
}
|
||||
binding.time?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
binding.status?.setTextColor(ContextCompat.getColor(this, R.color.dark_statusView))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
binding.sgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.delta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.avgDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, R.color.dark_Timestamp))
|
||||
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark_lowres)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light_lowres)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
}
|
||||
|
||||
override fun setColorDark() {
|
||||
mTime?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
mStatus?.setTextColor(ContextCompat.getColor(this, R.color.dark_statusView))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
}
|
||||
binding.time?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
binding.status?.setTextColor(ContextCompat.getColor(this, R.color.dark_statusView))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
val color = when (singleBg.sgvLevel) {
|
||||
1L -> R.color.dark_highColor
|
||||
0L -> R.color.dark_midColor
|
||||
-1L -> R.color.dark_lowColor
|
||||
else -> R.color.dark_midColor
|
||||
}
|
||||
binding.sgv?.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.delta?.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.avgDelta?.setTextColor(ContextCompat.getColor(this, color))
|
||||
|
||||
0L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
}
|
||||
val colorTime = if (ageLevel == 1) R.color.dark_Timestamp else R.color.dark_TimestampOld
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, colorTime))
|
||||
|
||||
-1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
}
|
||||
}
|
||||
if (ageLevel == 1) {
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_Timestamp))
|
||||
} else {
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_TimestampOld))
|
||||
}
|
||||
if (chart != null) {
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
}
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
}
|
||||
|
||||
override fun setColorBright() {
|
||||
if (currentWatchMode == WatchMode.INTERACTIVE) {
|
||||
mTime?.setTextColor(ContextCompat.getColor(this, R.color.light_bigchart_time))
|
||||
mStatus?.setTextColor(ContextCompat.getColor(this, R.color.light_bigchart_status))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background))
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
}
|
||||
|
||||
0L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
}
|
||||
|
||||
-1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
}
|
||||
}
|
||||
if (ageLevel == 1) mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.light_mTimestamp1))
|
||||
else mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.light_mTimestamp))
|
||||
if (chart != null) {
|
||||
highColor = ContextCompat.getColor(this, R.color.light_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.light_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.light_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.light_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
binding.time?.setTextColor(ContextCompat.getColor(this, R.color.light_bigchart_time))
|
||||
binding.status?.setTextColor(ContextCompat.getColor(this, R.color.light_bigchart_status))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background))
|
||||
val color = when (singleBg.sgvLevel) {
|
||||
1L -> R.color.light_highColor
|
||||
0L -> R.color.light_midColor
|
||||
-1L -> R.color.light_lowColor
|
||||
else -> R.color.light_midColor
|
||||
}
|
||||
binding.sgv?.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.delta?.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.avgDelta?.setTextColor(ContextCompat.getColor(this, color))
|
||||
|
||||
val colorTime = if (ageLevel == 1) R.color.light_mTimestamp1 else R.color.light_mTimestamp
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, colorTime))
|
||||
|
||||
highColor = ContextCompat.getColor(this, R.color.light_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.light_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.light_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.light_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
pointSize = 2
|
||||
setupCharts()
|
||||
|
||||
} else {
|
||||
setColorDark()
|
||||
}
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package info.nightscout.androidaps.watchfaces
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.annotation.LayoutRes
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.databinding.ActivityCockpitBinding
|
||||
import info.nightscout.androidaps.watchfaces.utils.BaseWatchFace
|
||||
|
||||
/**
|
||||
* Created by andrew-warrington on 18/11/2017.
|
||||
|
@ -10,37 +13,36 @@ import info.nightscout.androidaps.R
|
|||
*/
|
||||
class CockpitWatchface : BaseWatchFace() {
|
||||
|
||||
@LayoutRes override fun layoutResource(): Int = R.layout.activity_cockpit
|
||||
private lateinit var binding: ActivityCockpitBinding
|
||||
|
||||
override fun inflateLayout(inflater: LayoutInflater): ViewBinding {
|
||||
binding = ActivityCockpitBinding.inflate(inflater)
|
||||
return binding
|
||||
}
|
||||
|
||||
override fun setColorDark() {
|
||||
mRelativeLayout?.setBackgroundResource(R.drawable.airplane_cockpit_outside_clouds)
|
||||
binding.mainLayout.setBackgroundResource(R.drawable.airplane_cockpit_outside_clouds)
|
||||
setTextSizes()
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mHighLight?.setBackgroundResource(R.drawable.airplane_led_yellow_lit)
|
||||
mLowLight?.setBackgroundResource(R.drawable.airplane_led_grey_unlit)
|
||||
}
|
||||
|
||||
0L -> {
|
||||
mHighLight?.setBackgroundResource(R.drawable.airplane_led_grey_unlit)
|
||||
mLowLight?.setBackgroundResource(R.drawable.airplane_led_grey_unlit)
|
||||
}
|
||||
|
||||
-1L -> {
|
||||
mHighLight?.setBackgroundResource(R.drawable.airplane_led_grey_unlit)
|
||||
mLowLight?.setBackgroundResource(R.drawable.airplane_led_red_lit)
|
||||
}
|
||||
val led = when (singleBg.sgvLevel) {
|
||||
1L -> R.drawable.airplane_led_yellow_lit
|
||||
0L -> R.drawable.airplane_led_grey_unlit
|
||||
-1L -> R.drawable.airplane_led_red_lit
|
||||
else -> R.drawable.airplane_led_grey_unlit
|
||||
}
|
||||
|
||||
binding.highLight.setBackgroundResource(led)
|
||||
binding.lowLight.setBackgroundResource(led)
|
||||
|
||||
when (loopLevel) {
|
||||
-1 -> mLoop?.setBackgroundResource(R.drawable.loop_grey_25)
|
||||
1 -> mLoop?.setBackgroundResource(R.drawable.loop_green_25)
|
||||
else -> mLoop?.setBackgroundResource(R.drawable.loop_red_25)
|
||||
-1 -> binding.loop.setBackgroundResource(R.drawable.loop_grey_25)
|
||||
1 -> binding.loop.setBackgroundResource(R.drawable.loop_green_25)
|
||||
else -> binding.loop.setBackgroundResource(R.drawable.loop_red_25)
|
||||
}
|
||||
invalidate()
|
||||
}
|
||||
|
||||
override fun setColorLowRes() {
|
||||
mRelativeLayout?.setBackgroundResource(R.drawable.airplane_cockpit_outside_clouds_lowres)
|
||||
binding.mainLayout.setBackgroundResource(R.drawable.airplane_cockpit_outside_clouds_lowres)
|
||||
}
|
||||
|
||||
override fun setColorBright() {
|
||||
|
@ -49,28 +51,28 @@ class CockpitWatchface : BaseWatchFace() {
|
|||
|
||||
private fun setTextSizes() {
|
||||
if (status.detailedIob) {
|
||||
if (bIsRound) mIOB2?.textSize = 10f
|
||||
else mIOB2?.textSize = 9f
|
||||
if (bIsRound) binding.iob2.textSize = 10f
|
||||
else binding.iob2.textSize = 9f
|
||||
} else {
|
||||
if (bIsRound) mIOB2?.textSize = 13f
|
||||
else mIOB2?.textSize = 12f
|
||||
if (bIsRound) binding.iob2.textSize = 13f
|
||||
else binding.iob2.textSize = 12f
|
||||
}
|
||||
if (mUploaderBattery?.visibility != View.GONE && mRigBattery?.visibility != View.GONE) {
|
||||
if (binding.uploaderBattery.visibility != View.GONE && binding.rigBattery.visibility != View.GONE) {
|
||||
if (bIsRound) {
|
||||
mUploaderBattery?.textSize = 12f
|
||||
mRigBattery?.textSize = 12f
|
||||
binding.uploaderBattery.textSize = 12f
|
||||
binding.rigBattery.textSize = 12f
|
||||
} else {
|
||||
mUploaderBattery?.textSize = 10f
|
||||
mRigBattery?.textSize = 10f
|
||||
binding.uploaderBattery.textSize = 10f
|
||||
binding.rigBattery.textSize = 10f
|
||||
}
|
||||
} else {
|
||||
if (bIsRound) {
|
||||
mUploaderBattery?.textSize = 13f
|
||||
mRigBattery?.textSize = 13f
|
||||
binding.uploaderBattery.textSize = 13f
|
||||
binding.rigBattery.textSize = 13f
|
||||
} else {
|
||||
mUploaderBattery?.textSize = 12f
|
||||
mRigBattery?.textSize = 12f
|
||||
binding.uploaderBattery.textSize = 12f
|
||||
binding.rigBattery.textSize = 12f
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,18 +4,26 @@ package info.nightscout.androidaps.watchfaces
|
|||
|
||||
import android.annotation.SuppressLint
|
||||
import android.support.wearable.watchface.WatchFaceStyle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.annotation.LayoutRes
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.databinding.ActivityDigitalstyleBinding
|
||||
import info.nightscout.androidaps.extensions.toVisibility
|
||||
import info.nightscout.androidaps.watchfaces.utils.BaseWatchFace
|
||||
import info.nightscout.shared.logging.LTag
|
||||
|
||||
class DigitalStyleWatchface : BaseWatchFace() {
|
||||
|
||||
@LayoutRes override fun layoutResource(): Int = R.layout.activity_digitalstyle
|
||||
private lateinit var binding: ActivityDigitalstyleBinding
|
||||
|
||||
override fun inflateLayout(inflater: LayoutInflater): ViewBinding {
|
||||
binding = ActivityDigitalstyleBinding.inflate(inflater)
|
||||
return binding
|
||||
}
|
||||
|
||||
override fun getWatchFaceStyle(): WatchFaceStyle {
|
||||
return WatchFaceStyle.Builder(this)
|
||||
|
@ -26,39 +34,31 @@ class DigitalStyleWatchface : BaseWatchFace() {
|
|||
}
|
||||
|
||||
override fun setColorDark() {
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
}
|
||||
|
||||
0L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
}
|
||||
|
||||
-1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
mDirection?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
}
|
||||
val color = when (singleBg.sgvLevel) {
|
||||
1L -> R.color.dark_highColor
|
||||
0L -> R.color.dark_midColor
|
||||
-1L -> R.color.dark_lowColor
|
||||
else -> R.color.dark_midColor
|
||||
}
|
||||
if (ageLevel == 1) mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
else mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_TimestampOld))
|
||||
binding.sgv.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.direction.setTextColor(ContextCompat.getColor(this, color))
|
||||
|
||||
if (status.batteryLevel == 1) mUploaderBattery?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
else mUploaderBattery?.setTextColor(ContextCompat.getColor(this, R.color.dark_uploaderBatteryEmpty))
|
||||
val colorTime = if (ageLevel == 1) R.color.dark_midColor else R.color.dark_TimestampOld
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, colorTime))
|
||||
|
||||
val colorBat = if (status.batteryLevel == 1) R.color.dark_midColor else R.color.dark_uploaderBatteryEmpty
|
||||
binding.uploaderBattery.setTextColor(ContextCompat.getColor(this, colorBat))
|
||||
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
pointSize = 1
|
||||
setupCharts()
|
||||
setWatchfaceStyle()
|
||||
|
||||
if (chart != null) {
|
||||
highColor = ContextCompat.getColor(this, R.color.dark_highColor)
|
||||
lowColor = ContextCompat.getColor(this, R.color.dark_lowColor)
|
||||
midColor = ContextCompat.getColor(this, R.color.dark_midColor)
|
||||
gridColor = ContextCompat.getColor(this, R.color.dark_gridColor)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_light)
|
||||
pointSize = 1
|
||||
setupCharts()
|
||||
setWatchfaceStyle()
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
|
@ -103,19 +103,19 @@ class DigitalStyleWatchface : BaseWatchFace() {
|
|||
val isShowDate = sp.getBoolean(R.string.key_show_date, false)
|
||||
if (!isShowDate) {
|
||||
layoutView?.findViewById<View>(R.id.date_time)?.visibility = View.GONE
|
||||
mHour?.textSize = 62f
|
||||
mMinute?.textSize = 40f
|
||||
mHour?.letterSpacing = (-0.066).toFloat()
|
||||
mMinute?.letterSpacing = (-0.066).toFloat()
|
||||
binding.hour.textSize = 62f
|
||||
binding.minute.textSize = 40f
|
||||
binding.hour.letterSpacing = (-0.066).toFloat()
|
||||
binding.minute.letterSpacing = (-0.066).toFloat()
|
||||
} else {
|
||||
layoutView?.findViewById<View>(R.id.date_time)?.visibility = View.VISIBLE
|
||||
mHour?.textSize = 40f
|
||||
mMinute?.textSize = 26f
|
||||
mHour?.letterSpacing = 0.toFloat()
|
||||
mMinute?.letterSpacing = 0.toFloat()
|
||||
binding.hour.textSize = 40f
|
||||
binding.minute.textSize = 26f
|
||||
binding.hour.letterSpacing = 0.toFloat()
|
||||
binding.minute.letterSpacing = 0.toFloat()
|
||||
|
||||
/* display week number */
|
||||
val mWeekNumber = layoutView?.findViewById<TextView>(R.id.weeknumber)
|
||||
val mWeekNumber = layoutView?.findViewById<TextView>(R.id.week_number)
|
||||
mWeekNumber?.visibility = sp.getBoolean(R.string.key_show_week_number, false).toVisibility()
|
||||
mWeekNumber?.text = "(" + dateUtil.weekString() + ")"
|
||||
}
|
||||
|
@ -128,4 +128,4 @@ class DigitalStyleWatchface : BaseWatchFace() {
|
|||
override fun setColorBright() {
|
||||
setColorDark() /* getCurrentWatchMode() == WatchMode.AMBIENT or WatchMode.INTERACTIVE */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,87 +1,78 @@
|
|||
package info.nightscout.androidaps.watchfaces
|
||||
|
||||
import androidx.annotation.LayoutRes
|
||||
import android.view.LayoutInflater
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.ustwo.clockwise.common.WatchMode
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.databinding.ActivityBigchartBinding
|
||||
import info.nightscout.androidaps.databinding.ActivityBigchartSmallBinding
|
||||
import info.nightscout.androidaps.databinding.ActivityNochartBinding
|
||||
import info.nightscout.androidaps.databinding.ActivityNochartSmallBinding
|
||||
import info.nightscout.androidaps.watchfaces.utils.BaseWatchFace
|
||||
import info.nightscout.androidaps.watchfaces.utils.WatchfaceViewAdapter
|
||||
|
||||
class NoChartWatchface : BaseWatchFace() {
|
||||
|
||||
@LayoutRes override fun layoutResource(): Int =
|
||||
if (resources.displayMetrics.widthPixels < SCREEN_SIZE_SMALL || resources.displayMetrics.heightPixels < SCREEN_SIZE_SMALL) R.layout.activity_nochart_small
|
||||
else R.layout.activity_nochart
|
||||
private lateinit var binding: WatchfaceViewAdapter
|
||||
|
||||
override fun inflateLayout(inflater: LayoutInflater): ViewBinding {
|
||||
if (resources.displayMetrics.widthPixels < SCREEN_SIZE_SMALL || resources.displayMetrics.heightPixels < SCREEN_SIZE_SMALL) {
|
||||
val layoutBinding = ActivityNochartSmallBinding.inflate(inflater)
|
||||
binding = WatchfaceViewAdapter.getBinding(layoutBinding)
|
||||
return layoutBinding
|
||||
}
|
||||
val layoutBinding = ActivityNochartBinding.inflate(inflater)
|
||||
binding = WatchfaceViewAdapter.getBinding(layoutBinding)
|
||||
return layoutBinding
|
||||
}
|
||||
|
||||
override fun setColorLowRes() {
|
||||
mTime?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
mStatus?.setTextColor(ContextCompat.getColor(this, R.color.dark_statusView))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_Timestamp))
|
||||
binding.time?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
binding.status?.setTextColor(ContextCompat.getColor(this, R.color.dark_statusView))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
binding.sgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.delta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.avgDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, R.color.dark_Timestamp))
|
||||
}
|
||||
|
||||
override fun setColorDark() {
|
||||
mTime?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
mStatus?.setTextColor(ContextCompat.getColor(this, R.color.dark_statusView))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_highColor))
|
||||
}
|
||||
|
||||
0L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_midColor))
|
||||
}
|
||||
|
||||
-1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.dark_lowColor))
|
||||
}
|
||||
}
|
||||
if (ageLevel == 1) {
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_Timestamp))
|
||||
} else {
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.dark_TimestampOld))
|
||||
binding.time?.setTextColor(ContextCompat.getColor(this, R.color.dark_mTime))
|
||||
binding.status?.setTextColor(ContextCompat.getColor(this, R.color.dark_statusView))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.dark_background))
|
||||
val color = when (singleBg.sgvLevel) {
|
||||
1L -> R.color.dark_highColor
|
||||
0L -> R.color.dark_midColor
|
||||
-1L -> R.color.dark_lowColor
|
||||
else -> R.color.dark_midColor
|
||||
}
|
||||
binding.sgv?.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.delta?.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.avgDelta?.setTextColor(ContextCompat.getColor(this, color))
|
||||
val colorTime = if (ageLevel == 1) R.color.dark_Timestamp else R.color.dark_TimestampOld
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, colorTime))
|
||||
}
|
||||
|
||||
override fun setColorBright() {
|
||||
if (currentWatchMode == WatchMode.INTERACTIVE) {
|
||||
mTime?.setTextColor(ContextCompat.getColor(this, R.color.light_bigchart_time))
|
||||
mStatus?.setTextColor(ContextCompat.getColor(this, R.color.light_bigchart_status))
|
||||
mRelativeLayout?.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background))
|
||||
when (singleBg.sgvLevel) {
|
||||
1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_highColor))
|
||||
}
|
||||
|
||||
0L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_midColor))
|
||||
}
|
||||
|
||||
-1L -> {
|
||||
mSgv?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
mDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
mAvgDelta?.setTextColor(ContextCompat.getColor(this, R.color.light_lowColor))
|
||||
}
|
||||
}
|
||||
if (ageLevel == 1) {
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.light_mTimestamp1))
|
||||
} else {
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.light_mTimestamp))
|
||||
binding.time?.setTextColor(ContextCompat.getColor(this, R.color.light_bigchart_time))
|
||||
binding.status?.setTextColor(ContextCompat.getColor(this, R.color.light_bigchart_status))
|
||||
binding.mainLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.light_background))
|
||||
val color = when (singleBg.sgvLevel) {
|
||||
1L -> R.color.light_highColor
|
||||
0L -> R.color.light_midColor
|
||||
-1L -> R.color.light_lowColor
|
||||
else -> R.color.light_midColor
|
||||
}
|
||||
binding.sgv?.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.delta?.setTextColor(ContextCompat.getColor(this, color))
|
||||
binding.avgDelta?.setTextColor(ContextCompat.getColor(this, color))
|
||||
val colorTime = if (ageLevel == 1) R.color.light_mTimestamp1 else R.color.light_mTimestamp
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, colorTime))
|
||||
|
||||
} else {
|
||||
setColorDark()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,12 +2,15 @@
|
|||
|
||||
package info.nightscout.androidaps.watchfaces
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.animation.Animation
|
||||
import android.view.animation.LinearInterpolator
|
||||
import android.view.animation.RotateAnimation
|
||||
import androidx.annotation.LayoutRes
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.databinding.ActivitySteampunkBinding
|
||||
import info.nightscout.androidaps.watchfaces.utils.BaseWatchFace
|
||||
import info.nightscout.shared.SafeParse.stringToFloat
|
||||
import org.joda.time.TimeOfDay
|
||||
|
||||
|
@ -19,8 +22,12 @@ class SteampunkWatchface : BaseWatchFace() {
|
|||
|
||||
private var lastEndDegrees = 0f
|
||||
private var deltaRotationAngle = 0f
|
||||
private lateinit var binding: ActivitySteampunkBinding
|
||||
|
||||
@LayoutRes override fun layoutResource(): Int = R.layout.activity_steampunk
|
||||
override fun inflateLayout(inflater: LayoutInflater): ViewBinding {
|
||||
binding = ActivitySteampunkBinding.inflate(inflater)
|
||||
return binding
|
||||
}
|
||||
|
||||
override fun onCreate() {
|
||||
forceSquareCanvas = true
|
||||
|
@ -29,48 +36,48 @@ class SteampunkWatchface : BaseWatchFace() {
|
|||
|
||||
override fun setColorDark() {
|
||||
if (ageLevel() <= 0 && singleBg.timeStamp != 0L) {
|
||||
mLinearLayout2?.setBackgroundResource(R.drawable.redline)
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.red_600))
|
||||
binding.tertiaryLayout.setBackgroundResource(R.drawable.redline)
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, R.color.red_600))
|
||||
} else {
|
||||
mLinearLayout2?.setBackgroundResource(0)
|
||||
mTimestamp?.setTextColor(ContextCompat.getColor(this, R.color.black_86p))
|
||||
binding.tertiaryLayout.setBackgroundResource(0)
|
||||
binding.timestamp.setTextColor(ContextCompat.getColor(this, R.color.black_86p))
|
||||
}
|
||||
mLoop?.setTextColor(ContextCompat.getColor(this, if (loopLevel == 0) R.color.red_600 else R.color.black_86p))
|
||||
binding.loop.setTextColor(ContextCompat.getColor(this, if (loopLevel == 0) R.color.red_600 else R.color.black_86p))
|
||||
if (singleBg.sgvString != "---") {
|
||||
var rotationAngle = 0f //by default, show ? on the dial (? is at 0 degrees on the dial)
|
||||
var rotationAngle = 0f // by default, show ? on the dial (? is at 0 degrees on the dial)
|
||||
if (singleBg.glucoseUnits != "-") {
|
||||
|
||||
//ensure the glucose dial is the correct units
|
||||
mGlucoseDial?.setImageResource(if (singleBg.glucoseUnits == "mmol") R.drawable.steampunk_dial_mmol else R.drawable.steampunk_dial_mgdl)
|
||||
// ensure the glucose dial is the correct units
|
||||
binding.glucoseDial.setImageResource(if (singleBg.glucoseUnits == "mmol") R.drawable.steampunk_dial_mmol else R.drawable.steampunk_dial_mgdl)
|
||||
|
||||
//convert the Sgv to degrees of rotation
|
||||
// convert the Sgv to degrees of rotation
|
||||
rotationAngle =
|
||||
if (singleBg.glucoseUnits == "mmol") stringToFloat(singleBg.sgvString) * 18f //convert to mg/dL, which is equivalent to degrees
|
||||
else stringToFloat(singleBg.sgvString) //if glucose a value is received, use it to determine the amount of rotation of the dial.
|
||||
else stringToFloat(singleBg.sgvString) // if glucose a value is received, use it to determine the amount of rotation of the dial.
|
||||
}
|
||||
if (rotationAngle > 330) rotationAngle = 330f //if the glucose value is higher than 330 then show "HIGH" on the dial. ("HIGH" is at 330 degrees on the dial)
|
||||
if (rotationAngle != 0f && rotationAngle < 30) rotationAngle = 30f //if the glucose value is lower than 30 show "LOW" on the dial. ("LOW" is at 30 degrees on the dial)
|
||||
if (rotationAngle > 330) rotationAngle = 330f // if the glucose value is higher than 330 then show "HIGH" on the dial. ("HIGH" is at 330 degrees on the dial)
|
||||
if (rotationAngle != 0f && rotationAngle < 30) rotationAngle = 30f // if the glucose value is lower than 30 show "LOW" on the dial. ("LOW" is at 30 degrees on the dial)
|
||||
if (lastEndDegrees == 0f) lastEndDegrees = rotationAngle
|
||||
|
||||
//rotate glucose dial
|
||||
// rotate glucose dial
|
||||
val rotate = RotateAnimation(lastEndDegrees, rotationAngle - lastEndDegrees, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f).apply {
|
||||
fillAfter = true
|
||||
interpolator = LinearInterpolator()
|
||||
duration = 1
|
||||
}
|
||||
mGlucoseDial?.startAnimation(rotate)
|
||||
binding.glucoseDial.startAnimation(rotate)
|
||||
lastEndDegrees = rotationAngle //store the final angle as a starting point for the next rotation.
|
||||
}
|
||||
|
||||
//set the delta gauge and rotate the delta pointer
|
||||
var deltaIsNegative = 1f //by default go clockwise
|
||||
if (singleBg.avgDelta != "--") { //if a legitimate delta value is
|
||||
// set the delta gauge and rotate the delta pointer
|
||||
var deltaIsNegative = 1f // by default go clockwise
|
||||
if (singleBg.avgDelta != "--") { // if a legitimate delta value is
|
||||
// received,
|
||||
// then...
|
||||
if (singleBg.avgDelta[0] == '-') deltaIsNegative = -1f //if the delta is negative, go counter-clockwise
|
||||
val absAvgDelta = stringToFloat(singleBg.avgDelta.substring(1)) //get rid of the sign so it can be converted to float.
|
||||
var autoGranularity = "0" //auto-granularity off
|
||||
//ensure the delta gauge is the right units and granularity
|
||||
// ensure the delta gauge is the right units and granularity
|
||||
if (singleBg.glucoseUnits != "-") {
|
||||
if (singleBg.glucoseUnits == "mmol") {
|
||||
if (sp.getString("delta_granularity", "2") == "4") { //Auto granularity
|
||||
|
@ -82,15 +89,15 @@ class SteampunkWatchface : BaseWatchFace() {
|
|||
}
|
||||
}
|
||||
if (sp.getString("delta_granularity", "2") == "1" || autoGranularity == "1") { //low
|
||||
mLinearLayout?.setBackgroundResource(R.drawable.steampunk_gauge_mmol_10)
|
||||
binding.secondaryLayout.setBackgroundResource(R.drawable.steampunk_gauge_mmol_10)
|
||||
deltaRotationAngle = absAvgDelta * 30f
|
||||
}
|
||||
if (sp.getString("delta_granularity", "2") == "2" || autoGranularity == "2") { //medium
|
||||
mLinearLayout?.setBackgroundResource(R.drawable.steampunk_gauge_mmol_05)
|
||||
binding.secondaryLayout.setBackgroundResource(R.drawable.steampunk_gauge_mmol_05)
|
||||
deltaRotationAngle = absAvgDelta * 60f
|
||||
}
|
||||
if (sp.getString("delta_granularity", "2") == "3" || autoGranularity == "3") { //high
|
||||
mLinearLayout?.setBackgroundResource(R.drawable.steampunk_gauge_mmol_03)
|
||||
binding.secondaryLayout.setBackgroundResource(R.drawable.steampunk_gauge_mmol_03)
|
||||
deltaRotationAngle = absAvgDelta * 100f
|
||||
}
|
||||
} else {
|
||||
|
@ -103,44 +110,40 @@ class SteampunkWatchface : BaseWatchFace() {
|
|||
}
|
||||
}
|
||||
if (sp.getString("delta_granularity", "2") == "1" || autoGranularity == "1") { //low
|
||||
mLinearLayout?.setBackgroundResource(R.drawable.steampunk_gauge_mgdl_20)
|
||||
binding.secondaryLayout.setBackgroundResource(R.drawable.steampunk_gauge_mgdl_20)
|
||||
deltaRotationAngle = absAvgDelta * 1.5f
|
||||
}
|
||||
if (sp.getString("delta_granularity", "2") == "2" || autoGranularity == "2") { //medium
|
||||
mLinearLayout?.setBackgroundResource(R.drawable.steampunk_gauge_mgdl_10)
|
||||
binding.secondaryLayout.setBackgroundResource(R.drawable.steampunk_gauge_mgdl_10)
|
||||
deltaRotationAngle = absAvgDelta * 3f
|
||||
}
|
||||
if (sp.getString("delta_granularity", "2") == "3" || autoGranularity == "3") { //high
|
||||
mLinearLayout?.setBackgroundResource(R.drawable.steampunk_gauge_mgdl_5)
|
||||
binding.secondaryLayout.setBackgroundResource(R.drawable.steampunk_gauge_mgdl_5)
|
||||
deltaRotationAngle = absAvgDelta * 6f
|
||||
}
|
||||
}
|
||||
}
|
||||
if (deltaRotationAngle > 40) deltaRotationAngle = 40f
|
||||
mDeltaGauge?.rotation = deltaRotationAngle * deltaIsNegative
|
||||
binding.deltaPointer.rotation = deltaRotationAngle * deltaIsNegative
|
||||
}
|
||||
|
||||
//rotate the minute hand.
|
||||
mMinuteHand?.rotation = TimeOfDay().minuteOfHour * 6f
|
||||
// rotate the minute hand.
|
||||
binding.minuteHand.rotation = TimeOfDay().minuteOfHour * 6f
|
||||
|
||||
//rotate the hour hand.
|
||||
mHourHand?.rotation = TimeOfDay().hourOfDay * 30f + TimeOfDay().minuteOfHour * 0.5f
|
||||
// rotate the hour hand.
|
||||
binding.hourHand.rotation = TimeOfDay().hourOfDay * 30f + TimeOfDay().minuteOfHour * 0.5f
|
||||
setTextSizes()
|
||||
mLoop?.setBackgroundResource(0)
|
||||
if (chart != null) {
|
||||
highColor = ContextCompat.getColor(this, R.color.black)
|
||||
lowColor = ContextCompat.getColor(this, R.color.black)
|
||||
midColor = ContextCompat.getColor(this, R.color.black)
|
||||
gridColor = ContextCompat.getColor(this, R.color.grey_steampunk)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
pointSize = if (sp.getInt(R.string.key_chart_time_frame, 3) < 3) {
|
||||
2
|
||||
} else {
|
||||
1
|
||||
}
|
||||
setupCharts()
|
||||
}
|
||||
binding.loop.setBackgroundResource(0)
|
||||
|
||||
highColor = ContextCompat.getColor(this, R.color.black)
|
||||
lowColor = ContextCompat.getColor(this, R.color.black)
|
||||
midColor = ContextCompat.getColor(this, R.color.black)
|
||||
gridColor = ContextCompat.getColor(this, R.color.grey_steampunk)
|
||||
basalBackgroundColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
basalCenterColor = ContextCompat.getColor(this, R.color.basal_dark)
|
||||
pointSize = if (sp.getInt(R.string.key_chart_time_frame, 3) < 3) 2 else 1
|
||||
setupCharts()
|
||||
|
||||
invalidate()
|
||||
}
|
||||
|
||||
|
@ -162,36 +165,23 @@ class SteampunkWatchface : BaseWatchFace() {
|
|||
fontLarge = 13f
|
||||
}
|
||||
|
||||
//top row. large font unless text too big (i.e. detailedIOB)
|
||||
mCOB2?.textSize = fontLarge
|
||||
mBasalRate?.textSize = fontLarge
|
||||
if (status.iobDetail.length < 7) {
|
||||
mIOB2?.textSize = fontLarge
|
||||
} else {
|
||||
mIOB2?.textSize = fontSmall
|
||||
}
|
||||
// top row. large font unless text too big (i.e. detailedIOB)
|
||||
binding.cob2.textSize = fontLarge
|
||||
binding.basalRate.textSize = fontLarge
|
||||
val fontIob = if (status.iobDetail.length < 7) fontLarge else fontSmall
|
||||
binding.iob2.textSize = fontIob
|
||||
|
||||
//bottom row. font medium unless text too long (i.e. longer than 9' timestamp)
|
||||
mLoop?.let { mLoop ->
|
||||
mTimestamp?.let { mTimestamp ->
|
||||
if (mTimestamp.text.length < 3 || mLoop.text.length < 3) { //always resize these fields together, for symmetry.
|
||||
mTimestamp.textSize = fontMedium
|
||||
mLoop.textSize = fontMedium
|
||||
} else {
|
||||
mTimestamp.textSize = fontSmall
|
||||
mLoop.textSize = fontSmall
|
||||
}
|
||||
}
|
||||
}
|
||||
// bottom row. font medium unless text too long (i.e. longer than 9' timestamp)
|
||||
// always resize these fields together, for symmetry.
|
||||
val font = if (binding.timestamp.text.length < 3 || binding.loop.text.length < 3) fontMedium else fontSmall
|
||||
binding.loop.textSize = font
|
||||
binding.timestamp.textSize = font
|
||||
|
||||
// if both batteries are shown, make them smaller.
|
||||
val fontBat = if (sp.getBoolean(R.string.key_show_uploader_battery, true) && sp.getBoolean(R.string.key_show_rig_battery, false)) fontSmall else fontMedium
|
||||
binding.uploaderBattery.textSize = fontBat
|
||||
binding.rigBattery.textSize = fontBat
|
||||
|
||||
//if both batteries are shown, make them smaller.
|
||||
if (sp.getBoolean(R.string.key_show_uploader_battery, true) && sp.getBoolean(R.string.key_show_rig_battery, false)) {
|
||||
mUploaderBattery?.textSize = fontSmall
|
||||
mRigBattery?.textSize = fontSmall
|
||||
} else {
|
||||
mUploaderBattery?.textSize = fontMedium
|
||||
mRigBattery?.textSize = fontMedium
|
||||
}
|
||||
}
|
||||
|
||||
override fun changeChartTimeframe() {
|
||||
|
@ -200,4 +190,4 @@ class SteampunkWatchface : BaseWatchFace() {
|
|||
pointSize = if (timeframe < 3) 2 else 1
|
||||
sp.putString(R.string.key_chart_time_frame, timeframe.toString())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
@file:Suppress("DEPRECATION")
|
||||
|
||||
package info.nightscout.androidaps.watchfaces
|
||||
package info.nightscout.androidaps.watchfaces.utils
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.BroadcastReceiver
|
||||
|
@ -13,14 +12,10 @@ import android.os.Vibrator
|
|||
import android.support.wearable.watchface.WatchFaceStyle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowInsets
|
||||
import android.view.WindowManager
|
||||
import android.widget.ImageView
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.annotation.LayoutRes
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.ustwo.clockwise.common.WatchFaceTime
|
||||
import com.ustwo.clockwise.common.WatchMode
|
||||
import com.ustwo.clockwise.common.WatchShape
|
||||
|
@ -45,7 +40,6 @@ import info.nightscout.shared.weardata.EventData
|
|||
import info.nightscout.shared.weardata.EventData.ActionResendData
|
||||
import io.reactivex.rxjava3.disposables.CompositeDisposable
|
||||
import io.reactivex.rxjava3.kotlin.plusAssign
|
||||
import lecho.lib.hellocharts.view.LineChartView
|
||||
import javax.inject.Inject
|
||||
import kotlin.math.floor
|
||||
|
||||
|
@ -55,6 +49,7 @@ import kotlin.math.floor
|
|||
* Refactored by dlvoy on 2019-11-2019
|
||||
* Refactored by MilosKozak 24/04/2022
|
||||
*/
|
||||
|
||||
abstract class BaseWatchFace : WatchFace() {
|
||||
|
||||
@Inject lateinit var wearUtil: WearUtil
|
||||
|
@ -74,45 +69,10 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
private val graphData get() = rawData.graphData
|
||||
|
||||
// Layout
|
||||
@LayoutRes abstract fun layoutResource(): Int
|
||||
// @LayoutRes abstract fun layoutResource(): Int
|
||||
abstract fun inflateLayout(inflater: LayoutInflater): ViewBinding
|
||||
|
||||
private val displaySize = Point()
|
||||
var mTime: TextView? = null
|
||||
var mHour: TextView? = null
|
||||
var mMinute: TextView? = null
|
||||
var mSgv: TextView? = null
|
||||
var mDirection: TextView? = null
|
||||
var mTimestamp: TextView? = null
|
||||
var mUploaderBattery: TextView? = null
|
||||
var mRigBattery: TextView? = null
|
||||
var mDelta: TextView? = null
|
||||
var mAvgDelta: TextView? = null
|
||||
var mStatus: TextView? = null
|
||||
var mBasalRate: TextView? = null
|
||||
var mIOB1: TextView? = null
|
||||
var mIOB2: TextView? = null
|
||||
var mCOB1: TextView? = null
|
||||
var mCOB2: TextView? = null
|
||||
var mBgi: TextView? = null
|
||||
var mLoop: TextView? = null
|
||||
private var mTimePeriod: TextView? = null
|
||||
var mDay: TextView? = null
|
||||
private var mDayName: TextView? = null
|
||||
var mMonth: TextView? = null
|
||||
private var isAAPSv2: View? = null
|
||||
var mHighLight: TextView? = null
|
||||
var mLowLight: TextView? = null
|
||||
var mGlucoseDial: ImageView? = null
|
||||
var mDeltaGauge: ImageView? = null
|
||||
var mHourHand: ImageView? = null
|
||||
var mMinuteHand: ImageView? = null
|
||||
var mRelativeLayout: ViewGroup? = null
|
||||
var mLinearLayout: LinearLayout? = null
|
||||
var mLinearLayout2: LinearLayout? = null
|
||||
private var mDate: LinearLayout? = null
|
||||
private var mChartTap: LinearLayout? = null // Steampunk only
|
||||
private var mMainMenuTap: LinearLayout? = null // Steampunk,Digital only
|
||||
var chart: LineChartView? = null
|
||||
|
||||
var ageLevel = 1
|
||||
var loopLevel = -1
|
||||
|
@ -148,10 +108,12 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
private lateinit var mTimePaint: Paint
|
||||
private lateinit var mSvgPaint: Paint
|
||||
private lateinit var mDirectionPaint: Paint
|
||||
private lateinit var binding: WatchfaceViewAdapter
|
||||
|
||||
private var mLastSvg = ""
|
||||
private var mLastDirection = ""
|
||||
private var mYOffset = 0f
|
||||
|
||||
override fun onCreate() {
|
||||
// Not derived from DaggerService, do injection here
|
||||
AndroidInjection.inject(this)
|
||||
|
@ -188,13 +150,17 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
persistence.turnOff()
|
||||
setupBatteryReceiver()
|
||||
setupSimpleUi()
|
||||
layoutView = (getSystemService(LAYOUT_INFLATER_SERVICE) as LayoutInflater).inflate(layoutResource(), null)
|
||||
|
||||
val inflater = (getSystemService(LAYOUT_INFLATER_SERVICE) as LayoutInflater)
|
||||
val bindLayout = inflateLayout(inflater)
|
||||
binding = WatchfaceViewAdapter.getBinding(bindLayout)
|
||||
layoutView = binding.root
|
||||
performViewSetup()
|
||||
rxBus.send(EventWearToMobile(ActionResendData("BaseWatchFace::onCreate")))
|
||||
}
|
||||
|
||||
override fun onTapCommand(tapType: Int, x: Int, y: Int, eventTime: Long) {
|
||||
chart?.let { chart ->
|
||||
binding.chart?.let { chart ->
|
||||
if (tapType == TAP_TYPE_TAP && x >= chart.left && x <= chart.right && y >= chart.top && y <= chart.bottom) {
|
||||
if (eventTime - chartTapTime < 800) {
|
||||
changeChartTimeframe()
|
||||
|
@ -203,7 +169,7 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
return
|
||||
}
|
||||
}
|
||||
mSgv?.let { mSgv ->
|
||||
binding.sgv?.let { mSgv ->
|
||||
val extra = (mSgv.right - mSgv.left) / 2
|
||||
if (tapType == TAP_TYPE_TAP && x + extra >= mSgv.left && x - extra <= mSgv.right && y >= mSgv.top && y <= mSgv.bottom) {
|
||||
if (eventTime - sgvTapTime < 800) {
|
||||
|
@ -212,7 +178,7 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
sgvTapTime = eventTime
|
||||
}
|
||||
}
|
||||
mChartTap?.let { mChartTap ->
|
||||
binding.chartZoomTap?.let { mChartTap ->
|
||||
if (tapType == TAP_TYPE_TAP && x >= mChartTap.left && x <= mChartTap.right && y >= mChartTap.top && y <= mChartTap.bottom) {
|
||||
if (eventTime - chartTapTime < 800) {
|
||||
changeChartTimeframe()
|
||||
|
@ -221,7 +187,7 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
return
|
||||
}
|
||||
}
|
||||
mMainMenuTap?.let { mMainMenuTap ->
|
||||
binding.mainMenuTap?.let { mMainMenuTap ->
|
||||
if (tapType == TAP_TYPE_TAP && x >= mMainMenuTap.left && x <= mMainMenuTap.right && y >= mMainMenuTap.top && y <= mMainMenuTap.bottom) {
|
||||
if (eventTime - mainMenuTapTime < 800) {
|
||||
startActivity(Intent(this, MainMenuActivity::class.java).also { it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) })
|
||||
|
@ -288,42 +254,6 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
}
|
||||
|
||||
private fun performViewSetup() {
|
||||
mTime = layoutView?.findViewById(R.id.watch_time)
|
||||
mHour = layoutView?.findViewById(R.id.hour)
|
||||
mMinute = layoutView?.findViewById(R.id.minute)
|
||||
mDay = layoutView?.findViewById(R.id.day)
|
||||
mDayName = layoutView?.findViewById(R.id.dayname)
|
||||
mMonth = layoutView?.findViewById(R.id.month)
|
||||
mTimePeriod = layoutView?.findViewById(R.id.timePeriod)
|
||||
mDate = layoutView?.findViewById(R.id.date_time)
|
||||
mLoop = layoutView?.findViewById(R.id.loop)
|
||||
mSgv = layoutView?.findViewById(R.id.sgv)
|
||||
mDirection = layoutView?.findViewById(R.id.direction)
|
||||
mTimestamp = layoutView?.findViewById(R.id.timestamp)
|
||||
mIOB1 = layoutView?.findViewById(R.id.iob_text)
|
||||
mIOB2 = layoutView?.findViewById(R.id.iobView)
|
||||
mCOB1 = layoutView?.findViewById(R.id.cob_text)
|
||||
mCOB2 = layoutView?.findViewById(R.id.cobView)
|
||||
mBgi = layoutView?.findViewById(R.id.bgiView)
|
||||
mStatus = layoutView?.findViewById(R.id.externaltstatus)
|
||||
mBasalRate = layoutView?.findViewById(R.id.tmpBasal)
|
||||
mUploaderBattery = layoutView?.findViewById(R.id.uploader_battery)
|
||||
mRigBattery = layoutView?.findViewById(R.id.rig_battery)
|
||||
mDelta = layoutView?.findViewById(R.id.delta)
|
||||
mAvgDelta = layoutView?.findViewById(R.id.avgdelta)
|
||||
isAAPSv2 = layoutView?.findViewById(R.id.AAPSv2)
|
||||
mHighLight = layoutView?.findViewById(R.id.highLight)
|
||||
mLowLight = layoutView?.findViewById(R.id.lowLight)
|
||||
mRelativeLayout = layoutView?.findViewById(R.id.main_layout)
|
||||
mLinearLayout = layoutView?.findViewById(R.id.secondary_layout)
|
||||
mLinearLayout2 = layoutView?.findViewById(R.id.tertiary_layout)
|
||||
mGlucoseDial = layoutView?.findViewById(R.id.glucose_dial)
|
||||
mDeltaGauge = layoutView?.findViewById(R.id.delta_pointer)
|
||||
mHourHand = layoutView?.findViewById(R.id.hour_hand)
|
||||
mMinuteHand = layoutView?.findViewById(R.id.minute_hand)
|
||||
mChartTap = layoutView?.findViewById(R.id.chart_zoom_tap)
|
||||
mMainMenuTap = layoutView?.findViewById(R.id.main_menu_tap)
|
||||
chart = layoutView?.findViewById(R.id.chart)
|
||||
layoutSet = true
|
||||
setupCharts()
|
||||
setDataFields()
|
||||
|
@ -364,10 +294,10 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
onDrawSimpleUi(canvas)
|
||||
} else {
|
||||
if (layoutSet) {
|
||||
mRelativeLayout?.measure(specW, specH)
|
||||
binding.mainLayout.measure(specW, specH)
|
||||
val y = if (forceSquareCanvas) displaySize.x else displaySize.y // Square Steampunk
|
||||
mRelativeLayout?.layout(0, 0, displaySize.x, y)
|
||||
mRelativeLayout?.draw(canvas)
|
||||
binding.mainLayout.layout(0, 0, displaySize.x, y)
|
||||
binding.mainLayout.draw(canvas)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -417,6 +347,7 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
return status == BatteryManager.BATTERY_STATUS_CHARGING || status == BatteryManager.BATTERY_STATUS_FULL
|
||||
}
|
||||
|
||||
@SuppressLint("MissingPermission")
|
||||
@Suppress("DEPRECATION")
|
||||
private fun checkVibrateHourly(oldTime: WatchFaceTime, newTime: WatchFaceTime) {
|
||||
val hourlyVibratePref = sp.getBoolean(R.string.key_vibrate_hourly, false)
|
||||
|
@ -431,54 +362,54 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
@SuppressLint("SetTextI18n")
|
||||
open fun setDataFields() {
|
||||
setDateAndTime()
|
||||
mSgv?.text = singleBg.sgvString
|
||||
mSgv?.visibility = sp.getBoolean(R.string.key_show_bg, true).toVisibilityKeepSpace()
|
||||
binding.sgv?.text = singleBg.sgvString
|
||||
binding.sgv?.visibility = sp.getBoolean(R.string.key_show_bg, true).toVisibilityKeepSpace()
|
||||
strikeThroughSgvIfNeeded()
|
||||
mDirection?.text = "${singleBg.slopeArrow}\uFE0E"
|
||||
mDirection?.visibility = sp.getBoolean(R.string.key_show_direction, true).toVisibility()
|
||||
mDelta?.text = singleBg.delta
|
||||
mDelta?.visibility = sp.getBoolean(R.string.key_show_delta, true).toVisibility()
|
||||
mAvgDelta?.text = singleBg.avgDelta
|
||||
mAvgDelta?.visibility = sp.getBoolean(R.string.key_show_avg_delta, true).toVisibility()
|
||||
mCOB1?.visibility = sp.getBoolean(R.string.key_show_cob, true).toVisibility()
|
||||
mCOB2?.text = status.cob
|
||||
mCOB2?.visibility = sp.getBoolean(R.string.key_show_cob, true).toVisibility()
|
||||
mIOB1?.visibility = sp.getBoolean(R.string.key_show_iob, true).toVisibility()
|
||||
mIOB2?.visibility = sp.getBoolean(R.string.key_show_iob, true).toVisibility()
|
||||
mIOB1?.text = if (status.detailedIob) status.iobSum else getString(R.string.activity_IOB)
|
||||
mIOB2?.text = if (status.detailedIob) status.iobDetail else status.iobSum
|
||||
mTimestamp?.visibility = sp.getBoolean(R.string.key_show_ago, true).toVisibility()
|
||||
mTimestamp?.text = readingAge(if (isAAPSv2 != null) true else sp.getBoolean(R.string.key_show_external_status, true))
|
||||
mUploaderBattery?.visibility = sp.getBoolean(R.string.key_show_uploader_battery, true).toVisibility()
|
||||
mUploaderBattery?.text =
|
||||
binding.direction?.text = "${singleBg.slopeArrow}\uFE0E"
|
||||
binding.direction?.visibility = sp.getBoolean(R.string.key_show_direction, true).toVisibility()
|
||||
binding.delta?.text = singleBg.delta
|
||||
binding.delta?.visibility = sp.getBoolean(R.string.key_show_delta, true).toVisibility()
|
||||
binding.avgDelta?.text = singleBg.avgDelta
|
||||
binding.avgDelta?.visibility = sp.getBoolean(R.string.key_show_avg_delta, true).toVisibility()
|
||||
binding.cob1?.visibility = sp.getBoolean(R.string.key_show_cob, true).toVisibility()
|
||||
binding.cob2?.text = status.cob
|
||||
binding.cob2?.visibility = sp.getBoolean(R.string.key_show_cob, true).toVisibility()
|
||||
binding.iob1?.visibility = sp.getBoolean(R.string.key_show_iob, true).toVisibility()
|
||||
binding.iob2?.visibility = sp.getBoolean(R.string.key_show_iob, true).toVisibility()
|
||||
binding.iob1?.text = if (status.detailedIob) status.iobSum else getString(R.string.activity_IOB)
|
||||
binding.iob2?.text = if (status.detailedIob) status.iobDetail else status.iobSum
|
||||
binding.timestamp.visibility = sp.getBoolean(R.string.key_show_ago, true).toVisibility()
|
||||
binding.timestamp.text = readingAge(if (binding.AAPSv2 != null) true else sp.getBoolean(R.string.key_show_external_status, true))
|
||||
binding.uploaderBattery?.visibility = sp.getBoolean(R.string.key_show_uploader_battery, true).toVisibility()
|
||||
binding.uploaderBattery?.text =
|
||||
when {
|
||||
isAAPSv2 != null -> status.battery + "%"
|
||||
binding.AAPSv2 != null -> status.battery + "%"
|
||||
sp.getBoolean(R.string.key_show_external_status, true) -> "U: ${status.battery}%"
|
||||
else -> "Uploader: ${status.battery}%"
|
||||
}
|
||||
mRigBattery?.visibility = sp.getBoolean(R.string.key_show_rig_battery, false).toVisibility()
|
||||
mRigBattery?.text = status.rigBattery
|
||||
mBasalRate?.text = status.currentBasal
|
||||
mBasalRate?.visibility = sp.getBoolean(R.string.key_show_temp_basal, true).toVisibility()
|
||||
mBgi?.text = status.bgi
|
||||
mBgi?.visibility = status.showBgi.toVisibility()
|
||||
mStatus?.text = status.externalStatus
|
||||
mStatus?.visibility = sp.getBoolean(R.string.key_show_external_status, true).toVisibility()
|
||||
mLoop?.visibility = sp.getBoolean(R.string.key_show_external_status, true).toVisibility()
|
||||
binding.rigBattery?.visibility = sp.getBoolean(R.string.key_show_rig_battery, false).toVisibility()
|
||||
binding.rigBattery?.text = status.rigBattery
|
||||
binding.basalRate?.text = status.currentBasal
|
||||
binding.basalRate?.visibility = sp.getBoolean(R.string.key_show_temp_basal, true).toVisibility()
|
||||
binding.bgi?.text = status.bgi
|
||||
binding.bgi?.visibility = status.showBgi.toVisibility()
|
||||
binding.status?.text = status.externalStatus
|
||||
binding.status?.visibility = sp.getBoolean(R.string.key_show_external_status, true).toVisibility()
|
||||
binding.loop?.visibility = sp.getBoolean(R.string.key_show_external_status, true).toVisibility()
|
||||
if (status.openApsStatus != -1L) {
|
||||
val minutes = ((System.currentTimeMillis() - status.openApsStatus) / 1000 / 60).toInt()
|
||||
mLoop?.text = "$minutes'"
|
||||
binding.loop?.text = "$minutes'"
|
||||
if (minutes > 14) {
|
||||
loopLevel = 0
|
||||
mLoop?.setBackgroundResource(R.drawable.loop_red_25)
|
||||
binding.loop?.setBackgroundResource(R.drawable.loop_red_25)
|
||||
} else {
|
||||
loopLevel = 1
|
||||
mLoop?.setBackgroundResource(R.drawable.loop_green_25)
|
||||
binding.loop?.setBackgroundResource(R.drawable.loop_green_25)
|
||||
}
|
||||
} else {
|
||||
loopLevel = -1
|
||||
mLoop?.text = "-"
|
||||
mLoop?.setBackgroundResource(R.drawable.loop_grey_25)
|
||||
binding.loop?.text = "-"
|
||||
binding.loop?.setBackgroundResource(R.drawable.loop_grey_25)
|
||||
}
|
||||
setColor()
|
||||
}
|
||||
|
@ -491,15 +422,15 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
}
|
||||
|
||||
private fun setDateAndTime() {
|
||||
mTime?.text = dateUtil.timeString()
|
||||
mHour?.text = dateUtil.hourString()
|
||||
mMinute?.text = dateUtil.minuteString()
|
||||
mDate?.visibility = sp.getBoolean(R.string.key_show_date, false).toVisibility()
|
||||
mDayName?.text = dateUtil.dayNameString()
|
||||
mDay?.text = dateUtil.dayString()
|
||||
mMonth?.text = dateUtil.monthString()
|
||||
mTimePeriod?.visibility = android.text.format.DateFormat.is24HourFormat(this).not().toVisibility()
|
||||
mTimePeriod?.text = dateUtil.amPm()
|
||||
binding.time?.text = dateUtil.timeString()
|
||||
binding.hour?.text = dateUtil.hourString()
|
||||
binding.minute?.text = dateUtil.minuteString()
|
||||
binding.dateTime?.visibility = sp.getBoolean(R.string.key_show_date, false).toVisibility()
|
||||
binding.dayName?.text = dateUtil.dayNameString()
|
||||
binding.day?.text = dateUtil.dayString()
|
||||
binding.month?.text = dateUtil.monthString()
|
||||
binding.timePeriod?.visibility = android.text.format.DateFormat.is24HourFormat(this).not().toVisibility()
|
||||
binding.timePeriod?.text = dateUtil.amPm()
|
||||
}
|
||||
|
||||
private fun setColor() {
|
||||
|
@ -512,7 +443,8 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
}
|
||||
|
||||
private fun strikeThroughSgvIfNeeded() {
|
||||
mSgv?.let { mSgv ->
|
||||
@Suppress("DEPRECATION")
|
||||
binding.sgv?.let { mSgv ->
|
||||
if (ageLevel() <= 0 && singleBg.timeStamp > 0) mSgv.paintFlags = mSgv.paintFlags or Paint.STRIKE_THRU_TEXT_FLAG
|
||||
else mSgv.paintFlags = mSgv.paintFlags and Paint.STRIKE_THRU_TEXT_FLAG.inv()
|
||||
}
|
||||
|
@ -559,7 +491,7 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
if (isSimpleUi) {
|
||||
return
|
||||
}
|
||||
if (chart != null && graphData.entries.size > 0) {
|
||||
if (binding.chart != null && graphData.entries.size > 0) {
|
||||
val timeframe = sp.getInt(R.string.key_chart_time_frame, 3)
|
||||
val bgGraphBuilder =
|
||||
if (lowResMode)
|
||||
|
@ -572,8 +504,8 @@ abstract class BaseWatchFace : WatchFace() {
|
|||
sp, dateUtil, graphData.entries, treatmentData.predictions, treatmentData.temps, treatmentData.basals, treatmentData.boluses,
|
||||
pointSize, highColor, lowColor, midColor, gridColor, basalBackgroundColor, basalCenterColor, bolusColor, Color.GREEN, timeframe
|
||||
)
|
||||
chart?.lineChartData = bgGraphBuilder.lineData()
|
||||
chart?.isViewportCalculationEnabled = true
|
||||
binding.chart?.lineChartData = bgGraphBuilder.lineData()
|
||||
binding.chart?.isViewportCalculationEnabled = true
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.watchfaces
|
||||
package info.nightscout.androidaps.watchfaces.utils
|
||||
|
||||
import android.graphics.DashPathEffect
|
||||
import info.nightscout.androidaps.R
|
|
@ -0,0 +1,102 @@
|
|||
package info.nightscout.androidaps.watchfaces.utils
|
||||
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import info.nightscout.androidaps.databinding.ActivityHomeLargeBinding
|
||||
import info.nightscout.androidaps.databinding.ActivityHome2Binding
|
||||
import info.nightscout.androidaps.databinding.ActivityHomeBinding
|
||||
import info.nightscout.androidaps.databinding.ActivityBigchartBinding
|
||||
import info.nightscout.androidaps.databinding.ActivityBigchartSmallBinding
|
||||
import info.nightscout.androidaps.databinding.ActivityCockpitBinding
|
||||
import info.nightscout.androidaps.databinding.ActivityDigitalstyleBinding
|
||||
import info.nightscout.androidaps.databinding.ActivityNochartBinding
|
||||
import info.nightscout.androidaps.databinding.ActivitySteampunkBinding
|
||||
|
||||
/**
|
||||
* WatchfaceViewAdapter binds all WatchFace variants shared attributes to one common view adapter.
|
||||
* Requires at least one of the ViewBinding as a parameter. Recommended to use the factory object to create the binding.
|
||||
*/
|
||||
class WatchfaceViewAdapter(
|
||||
aL: ActivityHomeLargeBinding? = null,
|
||||
a2: ActivityHome2Binding? = null,
|
||||
aa: ActivityHomeBinding? = null,
|
||||
bC: ActivityBigchartBinding? = null,
|
||||
bCs: ActivityBigchartSmallBinding? = null,
|
||||
cp: ActivityCockpitBinding? = null,
|
||||
ds: ActivityDigitalstyleBinding? = null,
|
||||
nC: ActivityNochartBinding? = null,
|
||||
sP: ActivitySteampunkBinding? = null
|
||||
) {
|
||||
|
||||
init {
|
||||
if (aL == null && a2 == null && aa == null && bC == null && bCs == null && cp == null && ds == null && nC == null && sP == null) {
|
||||
throw IllegalArgumentException("Require at least on Binding parameter")
|
||||
}
|
||||
}
|
||||
|
||||
private val errorMessage = "Missing require View Binding parameter"
|
||||
// Required attributes
|
||||
val mainLayout =
|
||||
aL?.mainLayout ?: a2?.mainLayout ?: aa?.mainLayout ?: bC?.mainLayout ?: bC?.mainLayout ?: cp?.mainLayout ?: ds?.mainLayout ?: nC?.mainLayout ?: sP?.mainLayout
|
||||
?: throw IllegalArgumentException(errorMessage)
|
||||
val timestamp =
|
||||
aL?.timestamp ?: a2?.timestamp ?: aa?.timestamp ?: bC?.timestamp ?: bC?.timestamp ?: cp?.timestamp ?: ds?.timestamp ?: nC?.timestamp ?: sP?.timestamp
|
||||
?: throw IllegalArgumentException(errorMessage)
|
||||
val root =
|
||||
aL?.root ?: a2?.root ?: aa?.root ?: bC?.root ?: bC?.root ?: cp?.root ?: ds?.root ?: nC?.root ?: sP?.root
|
||||
?: throw IllegalArgumentException(errorMessage)
|
||||
|
||||
// Optional attributes
|
||||
val sgv = aL?.sgv ?: a2?.sgv ?: aa?.sgv ?: bC?.sgv ?: bC?.sgv ?: cp?.sgv ?: ds?.sgv ?: nC?.sgv
|
||||
val direction = aL?.direction ?: a2?.direction ?: aa?.direction ?: cp?.direction ?: ds?.direction
|
||||
val loop = a2?.loop ?: cp?.loop ?: sP?.loop
|
||||
val delta = aL?.delta ?: a2?.delta ?: aa?.delta ?: bC?.delta ?: bC?.delta ?: cp?.delta ?: ds?.delta ?: nC?.delta
|
||||
val avgDelta = a2?.avgDelta ?: bC?.avgDelta ?: bC?.avgDelta ?: cp?.avgDelta ?: ds?.avgDelta ?: nC?.avgDelta
|
||||
val uploaderBattery = aL?.uploaderBattery ?: a2?.uploaderBattery ?: aa?.uploaderBattery ?: cp?.uploaderBattery ?: ds?.uploaderBattery ?: sP?.uploaderBattery
|
||||
val rigBattery = a2?.rigBattery ?: cp?.rigBattery ?: ds?.rigBattery ?: sP?.rigBattery
|
||||
val basalRate = a2?.basalRate ?: cp?.basalRate ?: ds?.basalRate ?: sP?.basalRate
|
||||
val bgi = a2?.bgi ?: ds?.bgi
|
||||
val AAPSv2 = a2?.AAPSv2 ?: cp?.AAPSv2 ?: ds?.AAPSv2 ?: sP?.AAPSv2
|
||||
val cob1 = a2?.cob1 ?: ds?.cob1
|
||||
val cob2 = a2?.cob2 ?: cp?.cob2 ?: ds?.cob2 ?: sP?.cob2
|
||||
val time = aL?.time ?: a2?.time ?: aa?.time ?: bC?.time ?: bC?.time ?: cp?.time ?: nC?.time
|
||||
val minute = ds?.minute
|
||||
val hour = ds?.hour
|
||||
val day = a2?.day ?: ds?.day
|
||||
val month = a2?.month ?: ds?.month
|
||||
val iob1 = a2?.iob1 ?: ds?.iob1
|
||||
val iob2 = a2?.iob2 ?: cp?.iob2 ?: ds?.iob2 ?: sP?.iob2
|
||||
val chart = a2?.chart ?: aa?.chart ?: bC?.chart ?: bC?.chart ?: ds?.chart ?: sP?.chart
|
||||
val status = aL?.status ?: aa?.status ?: bC?.status ?: bC?.status ?: nC?.status
|
||||
val timePeriod = ds?.timePeriod
|
||||
val dayName = ds?.dayName
|
||||
val mainMenuTap = ds?.mainMenuTap ?: sP?.mainMenuTap
|
||||
val chartZoomTap = sP?.chartZoomTap
|
||||
val dateTime = ds?.dateTime ?: a2?.dateTime
|
||||
// val minuteHand = sP?.minuteHand
|
||||
// val secondaryLayout = aL?.secondaryLayout ?: a2?.secondaryLayout ?: aa?.secondaryLayout ?: ds?.secondaryLayout ?: sP?.secondaryLayout
|
||||
// val tertiaryLayout = a2?.tertiaryLayout ?: sP?.tertiaryLayout
|
||||
// val highLight = cp?.highLight
|
||||
// val lowLight = cp?.lowLight
|
||||
// val deltaGauge = sP?.deltaPointer
|
||||
// val hourHand = sP?.hourHand
|
||||
// val glucoseDial = sP?.glucoseDial
|
||||
|
||||
companion object {
|
||||
|
||||
fun getBinding(bindLayout: ViewBinding): WatchfaceViewAdapter {
|
||||
return when (bindLayout) {
|
||||
is ActivityHomeLargeBinding -> WatchfaceViewAdapter(bindLayout)
|
||||
is ActivityHome2Binding -> WatchfaceViewAdapter(null, bindLayout)
|
||||
is ActivityHomeBinding -> WatchfaceViewAdapter(null, null, bindLayout)
|
||||
is ActivityBigchartBinding -> WatchfaceViewAdapter(null, null, null, bindLayout)
|
||||
is ActivityBigchartSmallBinding -> WatchfaceViewAdapter(null, null, null, null, bindLayout)
|
||||
is ActivityCockpitBinding -> WatchfaceViewAdapter(null, null, null, null, null, bindLayout)
|
||||
is ActivityDigitalstyleBinding -> WatchfaceViewAdapter(null, null, null, null, null, null, bindLayout)
|
||||
is ActivityNochartBinding -> WatchfaceViewAdapter(null, null, null, null, null, null, null, bindLayout)
|
||||
is ActivitySteampunkBinding -> WatchfaceViewAdapter(null, null, null, null, null, null, null, null, bindLayout)
|
||||
else -> throw IllegalArgumentException("ViewBinding is not implement in WatchfaceViewAdapter")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -46,7 +46,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
|
@ -68,7 +68,7 @@
|
|||
android:gravity="center_horizontal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/externaltstatus"
|
||||
android:id="@+id/status"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
@ -85,7 +85,7 @@
|
|||
android:textAlignment="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|center_horizontal|center"
|
||||
|
@ -60,7 +60,7 @@
|
|||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/externaltstatus"
|
||||
android:id="@+id/status"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
@ -87,7 +87,7 @@
|
|||
android:textAlignment="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
|
|
@ -209,7 +209,7 @@
|
|||
android:layout_weight="0.020" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0px"
|
||||
android:layout_gravity="center"
|
||||
|
@ -222,7 +222,7 @@
|
|||
tools:text="12:00" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tmpBasal"
|
||||
android:id="@+id/basalRate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0px"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
|
@ -235,7 +235,7 @@
|
|||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iobView"
|
||||
android:id="@+id/iob2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0px"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
|
@ -248,7 +248,7 @@
|
|||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/cobView"
|
||||
android:id="@+id/cob2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0px"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
|
@ -370,7 +370,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="0px"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
android:weightSum="5">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/cob_text"
|
||||
android:id="@+id/cob1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="2"
|
||||
|
@ -76,7 +76,7 @@
|
|||
tools:ignore="SmallSp, NestedWeights" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/cobView"
|
||||
android:id="@+id/cob2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="3"
|
||||
|
@ -239,7 +239,7 @@
|
|||
android:weightSum="5">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iob_text"
|
||||
android:id="@+id/iob1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="2"
|
||||
|
@ -251,7 +251,7 @@
|
|||
tools:ignore="SmallSp, NestedWeights" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iobView"
|
||||
android:id="@+id/iob2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="3"
|
||||
|
@ -289,7 +289,7 @@
|
|||
android:orientation="vertical"
|
||||
android:weightSum="2">
|
||||
|
||||
<!-- right side 1/2 height - top halft -->
|
||||
<!-- right side 1/2 height - top half -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
|
@ -323,7 +323,7 @@
|
|||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/dayname"
|
||||
android:id="@+id/day_name"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="5"
|
||||
|
@ -335,7 +335,7 @@
|
|||
tools:text="DDD" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/weeknumber"
|
||||
android:id="@+id/week_number"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="4"
|
||||
|
@ -470,7 +470,7 @@
|
|||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- right side 1/2 height - bottom halft -->
|
||||
<!-- right side 1/2 height - bottom half -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
|
@ -482,7 +482,7 @@
|
|||
android:orientation="vertical"
|
||||
android:weightSum="10">
|
||||
|
||||
<!-- right side bottom - statusbar 2/10 -->
|
||||
<!-- right side bottom - status bar 2/10 -->
|
||||
<LinearLayout
|
||||
android:id="@+id/secondary_layout"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -505,7 +505,7 @@
|
|||
tools:ignore="HardcodedText, SmallSp, NestedWeights" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
|
@ -542,7 +542,7 @@
|
|||
tools:ignore="HardcodedText,SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tmpBasal"
|
||||
android:id="@+id/basalRate"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1.7"
|
||||
|
@ -554,7 +554,7 @@
|
|||
tools:ignore="SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/bgiView"
|
||||
android:id="@+id/bgi"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
|
|
|
@ -125,7 +125,7 @@
|
|||
tools:ignore="SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/externaltstatus"
|
||||
android:id="@+id/status"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="10sp"
|
||||
|
@ -139,7 +139,7 @@
|
|||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal|top"
|
||||
|
|
|
@ -122,7 +122,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="0px"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -164,7 +164,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tmpBasal"
|
||||
android:id="@+id/basal_rate"
|
||||
android:layout_width="0px"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -177,7 +177,7 @@
|
|||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/bgiView"
|
||||
android:id="@+id/bgi"
|
||||
android:layout_width="0px"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -223,7 +223,7 @@
|
|||
android:textAlignment="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/cob_text"
|
||||
android:id="@+id/cob1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -235,7 +235,7 @@
|
|||
tools:ignore="SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/cobView"
|
||||
android:id="@+id/cob2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -254,7 +254,7 @@
|
|||
android:layout_weight="1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -313,7 +313,7 @@
|
|||
android:textAlignment="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iob_text"
|
||||
android:id="@+id/iob1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -326,7 +326,7 @@
|
|||
tools:ignore="SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iobView"
|
||||
android:id="@+id/iob2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
|
|
@ -111,7 +111,7 @@
|
|||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/externaltstatus"
|
||||
android:id="@+id/status"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="10sp"
|
||||
|
@ -124,7 +124,7 @@
|
|||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal|top"
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
|
@ -60,7 +60,7 @@
|
|||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/externaltstatus"
|
||||
android:id="@+id/status"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
@ -77,7 +77,7 @@
|
|||
android:textAlignment="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
@ -67,7 +67,7 @@
|
|||
android:gravity="center_horizontal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/externaltstatus"
|
||||
android:id="@+id/status"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -86,7 +86,7 @@
|
|||
android:textAlignment="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
|
|
@ -90,7 +90,7 @@
|
|||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/cobView"
|
||||
android:id="@+id/cob2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
|
@ -112,7 +112,7 @@
|
|||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tmpBasal"
|
||||
android:id="@+id/basalRate"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
|
@ -134,7 +134,7 @@
|
|||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iobView"
|
||||
android:id="@+id/iob2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
|
@ -67,7 +67,7 @@
|
|||
android:gravity="center_horizontal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/externaltstatus"
|
||||
android:id="@+id/status"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
@ -83,7 +83,7 @@
|
|||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical|center_horizontal|center"
|
||||
|
@ -59,7 +59,7 @@
|
|||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/externaltstatus"
|
||||
android:id="@+id/status"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
@ -86,7 +86,7 @@
|
|||
android:textAlignment="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
|
|
@ -209,7 +209,7 @@
|
|||
android:layout_weight="0.020" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0px"
|
||||
android:layout_gravity="center"
|
||||
|
@ -222,7 +222,7 @@
|
|||
tools:text="12:00" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tmpBasal"
|
||||
android:id="@+id/basalRate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0px"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
|
@ -235,7 +235,7 @@
|
|||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iobView"
|
||||
android:id="@+id/iob2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0px"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
|
@ -248,7 +248,7 @@
|
|||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/cobView"
|
||||
android:id="@+id/cob2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0px"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
|
@ -370,7 +370,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="0px"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
|
|
@ -63,7 +63,7 @@
|
|||
android:weightSum="5">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/cob_text"
|
||||
android:id="@+id/cob1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="2"
|
||||
|
@ -75,7 +75,7 @@
|
|||
tools:ignore="SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/cobView"
|
||||
android:id="@+id/cob2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="3"
|
||||
|
@ -237,7 +237,7 @@
|
|||
android:weightSum="5">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iob_text"
|
||||
android:id="@+id/iob1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="2"
|
||||
|
@ -249,7 +249,7 @@
|
|||
tools:ignore="SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iobView"
|
||||
android:id="@+id/iob2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="3"
|
||||
|
@ -320,7 +320,7 @@
|
|||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/dayname"
|
||||
android:id="@+id/day_name"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="5"
|
||||
|
@ -332,7 +332,7 @@
|
|||
tools:text="DDD" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/weeknumber"
|
||||
android:id="@+id/week_number"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="4"
|
||||
|
@ -502,7 +502,7 @@
|
|||
tools:ignore="HardcodedText,SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
|
@ -539,7 +539,7 @@
|
|||
tools:ignore="HardcodedText,SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tmpBasal"
|
||||
android:id="@+id/basalRate"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1.7"
|
||||
|
@ -551,7 +551,7 @@
|
|||
tools:ignore="SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/bgiView"
|
||||
android:id="@+id/bgi"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
|
|
|
@ -127,7 +127,7 @@
|
|||
tools:ignore="SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/externaltstatus"
|
||||
android:id="@+id/status"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="10sp"
|
||||
|
@ -143,7 +143,7 @@
|
|||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
|
|
@ -132,7 +132,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="0px"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -174,7 +174,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tmpBasal"
|
||||
android:id="@+id/basalRate"
|
||||
android:layout_width="0px"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -187,7 +187,7 @@
|
|||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/bgiView"
|
||||
android:id="@+id/bgi"
|
||||
android:layout_width="0px"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -233,7 +233,7 @@
|
|||
android:textAlignment="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/cob_text"
|
||||
android:id="@+id/cob1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -245,7 +245,7 @@
|
|||
tools:ignore="SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/cobView"
|
||||
android:id="@+id/cob2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -265,7 +265,7 @@
|
|||
tools:ignore="NestedWeights" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -322,7 +322,7 @@
|
|||
android:textAlignment="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iob_text"
|
||||
android:id="@+id/iob1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -335,7 +335,7 @@
|
|||
tools:ignore="SmallSp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iobView"
|
||||
android:id="@+id/iob2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/externaltstatus"
|
||||
android:id="@+id/status"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="10sp"
|
||||
|
@ -126,7 +126,7 @@
|
|||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal|top"
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
|
@ -59,7 +59,7 @@
|
|||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/externaltstatus"
|
||||
android:id="@+id/status"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
@ -76,7 +76,7 @@
|
|||
android:textAlignment="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/avgdelta"
|
||||
android:id="@+id/avg_delta"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
@ -69,7 +69,7 @@
|
|||
android:gravity="center_horizontal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/externaltstatus"
|
||||
android:id="@+id/status"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
|
@ -88,7 +88,7 @@
|
|||
android:textAlignment="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/watch_time"
|
||||
android:id="@+id/time"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
|
|
@ -90,7 +90,7 @@
|
|||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/cobView"
|
||||
android:id="@+id/cob2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
|
@ -112,7 +112,7 @@
|
|||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tmpBasal"
|
||||
android:id="@+id/basalRate"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
|
@ -134,7 +134,7 @@
|
|||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iobView"
|
||||
android:id="@+id/iob2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
|
|
Loading…
Reference in a new issue