|
|
|
|
@ -29,7 +29,7 @@ public class ConfigDialog { |
|
|
|
|
private AlertDialog dialog; |
|
|
|
|
private boolean append; |
|
|
|
|
private boolean edit; |
|
|
|
|
private String url; |
|
|
|
|
private String ori; |
|
|
|
|
private int type; |
|
|
|
|
|
|
|
|
|
public static ConfigDialog create(Fragment fragment) { |
|
|
|
|
@ -66,34 +66,36 @@ public class ConfigDialog { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void initView() { |
|
|
|
|
binding.text.setText(url = getUrl()); |
|
|
|
|
binding.input.setEndIconOnClickListener(this::onChoose); |
|
|
|
|
binding.text.setSelection(TextUtils.isEmpty(url) ? 0 : url.length()); |
|
|
|
|
binding.name.setText(getConfig().getName()); |
|
|
|
|
binding.url.setText(ori = getConfig().getUrl()); |
|
|
|
|
binding.input.setVisibility(edit ? View.VISIBLE : View.GONE); |
|
|
|
|
binding.url.setSelection(TextUtils.isEmpty(ori) ? 0 : ori.length()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void initEvent() { |
|
|
|
|
binding.text.addTextChangedListener(new CustomTextListener() { |
|
|
|
|
binding.choose.setEndIconOnClickListener(this::onChoose); |
|
|
|
|
binding.url.addTextChangedListener(new CustomTextListener() { |
|
|
|
|
@Override |
|
|
|
|
public void onTextChanged(CharSequence s, int start, int before, int count) { |
|
|
|
|
detect(s.toString()); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
binding.text.setOnEditorActionListener((textView, actionId, event) -> { |
|
|
|
|
binding.url.setOnEditorActionListener((textView, actionId, event) -> { |
|
|
|
|
if (actionId == EditorInfo.IME_ACTION_DONE) dialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick(); |
|
|
|
|
return true; |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private String getUrl() { |
|
|
|
|
private Config getConfig() { |
|
|
|
|
switch (type) { |
|
|
|
|
case 0: |
|
|
|
|
return ApiConfig.getUrl(); |
|
|
|
|
return ApiConfig.get().getConfig(); |
|
|
|
|
case 1: |
|
|
|
|
return LiveConfig.getUrl(); |
|
|
|
|
return LiveConfig.get().getConfig(); |
|
|
|
|
case 2: |
|
|
|
|
return WallConfig.getUrl(); |
|
|
|
|
return WallConfig.get().getConfig(); |
|
|
|
|
default: |
|
|
|
|
return ""; |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -105,13 +107,13 @@ public class ConfigDialog { |
|
|
|
|
private void detect(String s) { |
|
|
|
|
if (append && s.equalsIgnoreCase("h")) { |
|
|
|
|
append = false; |
|
|
|
|
binding.text.append("ttp://"); |
|
|
|
|
binding.url.append("ttp://"); |
|
|
|
|
} else if (append && s.equalsIgnoreCase("f")) { |
|
|
|
|
append = false; |
|
|
|
|
binding.text.append("ile://"); |
|
|
|
|
binding.url.append("ile://"); |
|
|
|
|
} else if (append && s.equalsIgnoreCase("a")) { |
|
|
|
|
append = false; |
|
|
|
|
binding.text.append("ssets://"); |
|
|
|
|
binding.url.append("ssets://"); |
|
|
|
|
} else if (s.length() > 1) { |
|
|
|
|
append = false; |
|
|
|
|
} else if (s.length() == 0) { |
|
|
|
|
@ -120,10 +122,11 @@ public class ConfigDialog { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void onPositive(DialogInterface dialog, int which) { |
|
|
|
|
String text = UrlUtil.fixUrl(binding.text.getText().toString().trim()); |
|
|
|
|
if (edit) Config.find(url, type).url(text).update(); |
|
|
|
|
if (text.isEmpty()) Config.delete(url, type); |
|
|
|
|
callback.setConfig(Config.find(text, type)); |
|
|
|
|
String name = binding.name.getText().toString().trim(); |
|
|
|
|
String url = UrlUtil.fixUrl(binding.url.getText().toString().trim()); |
|
|
|
|
if (edit) Config.find(ori, type).url(url).name(name).update(); |
|
|
|
|
if (url.isEmpty()) Config.delete(ori, type); |
|
|
|
|
callback.setConfig(Config.find(url, type)); |
|
|
|
|
dialog.dismiss(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|