From d3745d4dd64d428f8ff0b2a2314e7e12e37f968b Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 26 Dec 2023 14:20:35 +0800 Subject: [PATCH] [mobile] support edit name for config --- .../com/fongmi/android/tv/bean/Config.java | 3 +- .../fongmi/android/tv/db/dao/ConfigDao.java | 3 ++ .../android/tv/ui/custom/CustomWebView.java | 1 + app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + .../android/tv/ui/dialog/ConfigDialog.java | 39 ++++++++++--------- app/src/mobile/res/layout/dialog_config.xml | 22 ++++++++++- 8 files changed, 51 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Config.java b/app/src/main/java/com/fongmi/android/tv/bean/Config.java index 48f72f4d8..1dc4d795c 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Config.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Config.java @@ -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() { diff --git a/app/src/main/java/com/fongmi/android/tv/db/dao/ConfigDao.java b/app/src/main/java/com/fongmi/android/tv/db/dao/ConfigDao.java index 4001280a7..376f840da 100644 --- a/app/src/main/java/com/fongmi/android/tv/db/dao/ConfigDao.java +++ b/app/src/main/java/com/fongmi/android/tv/db/dao/ConfigDao.java @@ -32,4 +32,7 @@ public abstract class ConfigDao extends BaseDao { @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); } diff --git a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java index 9d79ad8b0..747c9a2ec 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java @@ -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()); diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 566818973..5953c963b 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -101,6 +101,7 @@ 确定 取消 请输入接口… + 请输入名称… 请输入地址… diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 5d773d630..9c53bfa29 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -101,6 +101,7 @@ 確定 取消 請輸入接口… + 請輸入名稱… 請輸入網址… diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 99ff036ff..53ff02929 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -101,6 +101,7 @@ OK Cancel Please enter the config… + Please enter the name… Please enter the url… diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ConfigDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ConfigDialog.java index 4d80397b3..31d07e26e 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ConfigDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ConfigDialog.java @@ -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(); } diff --git a/app/src/mobile/res/layout/dialog_config.xml b/app/src/mobile/res/layout/dialog_config.xml index c9e90ab57..028b1bcc0 100644 --- a/app/src/mobile/res/layout/dialog_config.xml +++ b/app/src/mobile/res/layout/dialog_config.xml @@ -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"> + + + + + +