kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
commit
c4612f37b4
|
@ -136,6 +136,17 @@ class UIViewModel(private val app: Application) : AndroidViewModel(app), Logging
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var isAlwaysPowered: Boolean?
|
||||||
|
get() = radioConfig.value?.preferences?.isAlwaysPowered
|
||||||
|
set(value) {
|
||||||
|
val config = radioConfig.value
|
||||||
|
if (value != null && config != null) {
|
||||||
|
val builder = config.toBuilder()
|
||||||
|
builder.preferencesBuilder.isAlwaysPowered = value
|
||||||
|
setRadioConfig(builder.build())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var region: RadioConfigProtos.RegionCode
|
var region: RadioConfigProtos.RegionCode
|
||||||
get() = meshService?.region?.let { RadioConfigProtos.RegionCode.forNumber(it) }
|
get() = meshService?.region?.let { RadioConfigProtos.RegionCode.forNumber(it) }
|
||||||
?: RadioConfigProtos.RegionCode.Unset
|
?: RadioConfigProtos.RegionCode.Unset
|
||||||
|
|
|
@ -39,12 +39,14 @@ class AdvancedSettingsFragment : ScreenFragment("Advanced Settings"), Logging {
|
||||||
model.radioConfig.observe(viewLifecycleOwner, { _ ->
|
model.radioConfig.observe(viewLifecycleOwner, { _ ->
|
||||||
binding.positionBroadcastPeriodEditText.setText(model.positionBroadcastSecs.toString())
|
binding.positionBroadcastPeriodEditText.setText(model.positionBroadcastSecs.toString())
|
||||||
binding.lsSleepEditText.setText(model.lsSleepSecs.toString())
|
binding.lsSleepEditText.setText(model.lsSleepSecs.toString())
|
||||||
|
binding.isAlwaysPoweredCheckbox.isChecked = model.isAlwaysPowered?: false
|
||||||
})
|
})
|
||||||
|
|
||||||
model.isConnected.observe(viewLifecycleOwner, Observer { connectionState ->
|
model.isConnected.observe(viewLifecycleOwner, Observer { connectionState ->
|
||||||
val connected = connectionState == MeshService.ConnectionState.CONNECTED
|
val connected = connectionState == MeshService.ConnectionState.CONNECTED
|
||||||
binding.positionBroadcastPeriodView.isEnabled = connected
|
binding.positionBroadcastPeriodView.isEnabled = connected
|
||||||
binding.lsSleepView.isEnabled = connected
|
binding.lsSleepView.isEnabled = connected
|
||||||
|
binding.isAlwaysPoweredCheckbox.isEnabled = connected
|
||||||
})
|
})
|
||||||
|
|
||||||
binding.positionBroadcastPeriodEditText.on(EditorInfo.IME_ACTION_DONE) {
|
binding.positionBroadcastPeriodEditText.on(EditorInfo.IME_ACTION_DONE) {
|
||||||
|
@ -84,5 +86,12 @@ class AdvancedSettingsFragment : ScreenFragment("Advanced Settings"), Logging {
|
||||||
}
|
}
|
||||||
requireActivity().hideKeyboard()
|
requireActivity().hideKeyboard()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.isAlwaysPoweredCheckbox.setOnCheckedChangeListener { view, isChecked ->
|
||||||
|
if (view.isPressed) {
|
||||||
|
model.isAlwaysPowered = isChecked
|
||||||
|
debug("User changed isAlwaysPowered to $isChecked")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -47,4 +47,16 @@
|
||||||
android:inputType="number"
|
android:inputType="number"
|
||||||
android:singleLine="true" />
|
android:singleLine="true" />
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:id="@+id/isAlwaysPoweredCheckbox"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:text="isAlwaysPowered"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/lsSleepView" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
Ładowanie…
Reference in New Issue