[mobile] support edit name for config

okjack
FongMi 2 years ago
parent 3e5a5987d6
commit d3745d4dd6
  1. 3
      app/src/main/java/com/fongmi/android/tv/bean/Config.java
  2. 3
      app/src/main/java/com/fongmi/android/tv/db/dao/ConfigDao.java
  3. 1
      app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java
  4. 1
      app/src/main/res/values-zh-rCN/strings.xml
  5. 1
      app/src/main/res/values-zh-rTW/strings.xml
  6. 1
      app/src/main/res/values/strings.xml
  7. 39
      app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ConfigDialog.java
  8. 22
      app/src/mobile/res/layout/dialog_config.xml

@ -172,7 +172,8 @@ public class Config {
}
public static void delete(String url, int type) {
AppDatabase.get().getConfigDao().delete(url, type);
if (type == 2) AppDatabase.get().getConfigDao().delete(type);
else AppDatabase.get().getConfigDao().delete(url, type);
}
public static Config vod() {

@ -32,4 +32,7 @@ public abstract class ConfigDao extends BaseDao<Config> {
@Query("DELETE FROM Config WHERE url = :url")
public abstract void delete(String url);
@Query("DELETE FROM Config WHERE type = :type")
public abstract void delete(int type);
}

@ -65,6 +65,7 @@ public class CustomWebView extends WebView {
getSettings().setDomStorageEnabled(true);
getSettings().setJavaScriptEnabled(true);
getSettings().setLoadWithOverviewMode(true);
getSettings().setMediaPlaybackRequiresUserGesture(false);
getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
setWebViewClient(webViewClient());

@ -101,6 +101,7 @@
<string name="dialog_positive">确定</string>
<string name="dialog_negative">取消</string>
<string name="dialog_config_hint">请输入接口…</string>
<string name="dialog_config_name">请输入名称…</string>
<string name="dialog_config_url">请输入地址…</string>
<!-- Error -->

@ -101,6 +101,7 @@
<string name="dialog_positive">確定</string>
<string name="dialog_negative">取消</string>
<string name="dialog_config_hint">請輸入接口…</string>
<string name="dialog_config_name">請輸入名稱…</string>
<string name="dialog_config_url">請輸入網址…</string>
<!-- Error -->

@ -101,6 +101,7 @@
<string name="dialog_positive">OK</string>
<string name="dialog_negative">Cancel</string>
<string name="dialog_config_hint">Please enter the config…</string>
<string name="dialog_config_name">Please enter the name…</string>
<string name="dialog_config_url">Please enter the url…</string>
<!-- Error -->

@ -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();
}

@ -12,12 +12,32 @@
android:id="@+id/input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:hint="@string/dialog_config_name"
android:visibility="gone">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone"
android:importantForAutofill="no"
android:inputType="text"
android:maxLength="10"
android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/choose"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/dialog_config_hint"
app:endIconDrawable="@drawable/ic_action_choose"
app:endIconMode="custom">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/text"
android:id="@+id/url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone"

Loading…
Cancel
Save