-
Notifications
You must be signed in to change notification settings - Fork 35
Expand file tree
/
Copy pathSettingsFragment.kt
More file actions
60 lines (45 loc) · 1.69 KB
/
Copy pathSettingsFragment.kt
File metadata and controls
60 lines (45 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.ipcamera
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.Fragment
import com.ipcamera.databinding.SettingsFragmentBinding
class SettingsFragment : Fragment() {
private lateinit var binding: SettingsFragmentBinding
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = SettingsFragmentBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
EdgeToEdge.setInsetsHandler(
root = binding.root,
handler = DefaultInsetsHandler(),
)
val prefs = SettingsPreferences(requireContext().applicationContext)
prefs.getIpAddress()?.let { ipAddress ->
binding.editTextIp.setText(ipAddress)
}
binding.editTextIp.addTextChangedListener {
if (binding.textInputIp.error != null) {
binding.textInputIp.error = null
}
}
binding.btnSave.setOnClickListener {
val input = binding.editTextIp.text?.toString() ?: ""
val portSeparatorCount = input.count { it == ':' }
if (portSeparatorCount != 1 || input.length <= 10) {
binding.textInputIp.error = "Invalid IP format provided"
return@setOnClickListener
}
prefs.saveIpAddress(input)
activity?.onBackPressed()
}
}
}