@ -49,10 +49,10 @@ class SyncHostDialogFragment : AlertDialogFragment<PreferenceDialogAutocompletet
topMargin = binding . root . resources . getDimensionPixelOffset ( R . dimen . screen _padding )
bottomMargin = topMargin
}
binding . message . setText ( R . string . sync _ host _description )
val entries = binding . root . resources . getStringArray ( R . array . sync _ host _list )
binding . message . setText ( R . string . sync _ url _description )
val entries = binding . root . resources . getStringArray ( R . array . sync _ url _list )
val editText = binding . edit
editText . setText ( arguments ?. getString ( KEY _ HOST) . ifNullOrEmpty { syncSettings . host } )
editText . setText ( arguments ?. getString ( KEY _ SYNC_URL ) . ifNullOrEmpty { syncSettings . syncURL } )
editText . threshold = 0
editText . setAdapter ( ArrayAdapter ( binding . root . context , android . R . layout . simple _spinner _dropdown _item , entries ) )
binding . dropdown . setOnClickListener {
@ -65,8 +65,12 @@ class SyncHostDialogFragment : AlertDialogFragment<PreferenceDialogAutocompletet
when ( which ) {
DialogInterface . BUTTON _POSITIVE -> {
val result = requireViewBinding ( ) . edit . text ?. toString ( ) . orEmpty ( )
syncSettings . host = result
parentFragmentManager . setFragmentResult ( REQUEST _KEY , bundleOf ( KEY _HOST to result ) )
var scheme = " "
if ( ! result . startsWith ( " https:// " ) && ! result . startsWith ( " http:// " ) ) {
scheme = " http:// "
}
syncSettings . syncURL = " $scheme $result "
parentFragmentManager . setFragmentResult ( REQUEST _KEY , bundleOf ( KEY _SYNC _URL to " $scheme $result " ) )
}
}
dialog . dismiss ( )
@ -75,11 +79,11 @@ class SyncHostDialogFragment : AlertDialogFragment<PreferenceDialogAutocompletet
companion object {
private const val TAG = " SyncHostDialogFragment "
const val REQUEST _KEY = " sync_ host"
const val KEY _ HOST = " host "
const val REQUEST _KEY = " host"
const val KEY _ SYNC_URL = " host "
fun show ( fm : FragmentManager , host : String ? ) = SyncHostDialogFragment ( ) . withArgs ( 1 ) {
putString ( KEY _ HOST, host )
fun show ( fm : FragmentManager , syncURL : String ? ) = SyncHostDialogFragment ( ) . withArgs ( 1 ) {
putString ( KEY _ SYNC_URL , syncURL )
} . show ( fm , TAG )
}
}