owenclave / app/src/main/java/io/nekohasekai/sagernet/ui/profile/OLCRTCSettingsActivity.kt

github - dev - back to tree - upstream
package io.nekohasekai.sagernet.ui.profile import android.os.Bundle import androidx.preference.EditTextPreference import androidx.preference.PreferenceFragmentCompat import io.nekohasekai.sagernet.Key import io.nekohasekai.sagernet.R import io.nekohasekai.sagernet.database.DataStore import io.nekohasekai.sagernet.database.preference.EditTextPreferenceModifiers import io.nekohasekai.sagernet.fmt.olcrtc.OLCRTCBean import io.nekohasekai.sagernet.ktx.applyDefaultValues class OLCRTCSettingsActivity : ProfileSettingsActivity() { override fun createEntity() = OLCRTCBean() override fun OLCRTCBean.init() { DataStore.profileName = name DataStore.serverOlcrtcAuthProvider = authProvider DataStore.serverOlcrtcTransport = transport DataStore.serverOlcrtcRoomId = roomId DataStore.serverOlcrtcEncryptionKey = encryptionKey DataStore.serverOlcrtcDnsServer = dnsServer DataStore.serverOlcrtcSocksHost = socksHost DataStore.serverOlcrtcSocksPort = socksPort } override fun OLCRTCBean.serialize() { name = DataStore.profileName authProvider = DataStore.serverOlcrtcAuthProvider transport = DataStore.serverOlcrtcTransport roomId = DataStore.serverOlcrtcRoomId encryptionKey = DataStore.serverOlcrtcEncryptionKey dnsServer = DataStore.serverOlcrtcDnsServer socksHost = DataStore.serverOlcrtcSocksHost socksPort = DataStore.serverOlcrtcSocksPort } override fun PreferenceFragmentCompat.createPreferences( savedInstanceState: Bundle?, rootKey: String?, ) { addPreferencesFromResource(R.xml.olcrtc_preferences) findPreference(Key.SERVER_OLCRTC_ENCRYPTION_KEY)?.apply { summaryProvider = PasswordSummaryProvider } findPreference(Key.SERVER_OLCRTC_SOCKS_PORT)?.apply { setOnBindEditTextListener(EditTextPreferenceModifiers.Port) } } }