Proxy authenticaton support #376
This commit is contained in:
@@ -146,7 +146,7 @@ class ContentSettingsFragment :
|
||||
summary = if (type == Proxy.Type.DIRECT || address.isNullOrEmpty() || port == 0) {
|
||||
context.getString(R.string.disabled)
|
||||
} else {
|
||||
"$type $address:$port"
|
||||
"$address:$port"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,11 +6,13 @@ import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import androidx.preference.EditTextPreference
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceCategory
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import org.koitharu.kotatsu.R
|
||||
import org.koitharu.kotatsu.core.prefs.AppSettings
|
||||
import org.koitharu.kotatsu.core.ui.BasePreferenceFragment
|
||||
import org.koitharu.kotatsu.settings.utils.EditTextBindListener
|
||||
import org.koitharu.kotatsu.settings.utils.PasswordSummaryProvider
|
||||
import java.net.Proxy
|
||||
|
||||
@AndroidEntryPoint
|
||||
@@ -33,6 +35,16 @@ class ProxySettingsFragment : BasePreferenceFragment(R.string.proxy),
|
||||
validator = null,
|
||||
),
|
||||
)
|
||||
findPreference<EditTextPreference>(AppSettings.KEY_PROXY_PASSWORD)?.let { pref ->
|
||||
pref.setOnBindEditTextListener(
|
||||
EditTextBindListener(
|
||||
inputType = EditorInfo.TYPE_CLASS_TEXT or EditorInfo.TYPE_TEXT_VARIATION_PASSWORD,
|
||||
hint = null,
|
||||
validator = null,
|
||||
),
|
||||
)
|
||||
pref.summaryProvider = PasswordSummaryProvider()
|
||||
}
|
||||
updateDependencies()
|
||||
}
|
||||
|
||||
@@ -56,5 +68,8 @@ class ProxySettingsFragment : BasePreferenceFragment(R.string.proxy),
|
||||
val isProxyEnabled = settings.proxyType != Proxy.Type.DIRECT
|
||||
findPreference<Preference>(AppSettings.KEY_PROXY_ADDRESS)?.isEnabled = isProxyEnabled
|
||||
findPreference<Preference>(AppSettings.KEY_PROXY_PORT)?.isEnabled = isProxyEnabled
|
||||
findPreference<PreferenceCategory>(AppSettings.KEY_PROXY_AUTH)?.isEnabled = isProxyEnabled
|
||||
findPreference<Preference>(AppSettings.KEY_PROXY_LOGIN)?.isEnabled = isProxyEnabled
|
||||
findPreference<Preference>(AppSettings.KEY_PROXY_PASSWORD)?.isEnabled = isProxyEnabled
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.koitharu.kotatsu.settings.utils
|
||||
|
||||
import android.text.TextUtils
|
||||
import androidx.preference.EditTextPreference
|
||||
import androidx.preference.Preference
|
||||
|
||||
class PasswordSummaryProvider() : Preference.SummaryProvider<EditTextPreference> {
|
||||
|
||||
private val delegate = EditTextPreference.SimpleSummaryProvider.getInstance()
|
||||
|
||||
override fun provideSummary(preference: EditTextPreference): CharSequence? {
|
||||
val summary = delegate.provideSummary(preference)
|
||||
return if (summary != null && !TextUtils.isEmpty(preference.text)) {
|
||||
String(CharArray(summary.length) { '\u2022' })
|
||||
} else {
|
||||
summary
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user