diff --git a/app/build.gradle b/app/build.gradle index fbd3c5e90..320dcb334 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.fongmi.android.tv" minSdk 21 targetSdk 28 - versionCode 231 - versionName "0329" + versionCode 232 + versionName "2.3.2" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/MenuDialog.java b/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/MenuDialog.java index 038e307f0..a4d045392 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/MenuDialog.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/MenuDialog.java @@ -50,6 +50,14 @@ public class MenuDialog implements MenuAdapter.OnClickListener { initView(); } + private int getCount() { + return 2; + } + + private float getWidth() { + return 0.4f + (getCount() - 1) * 0.2f; + } + private void initView() { setRecyclerView(); setDialog(); @@ -61,14 +69,14 @@ public class MenuDialog implements MenuAdapter.OnClickListener { binding.recycler.setHasFixedSize(true); binding.recycler.setItemAnimator(null); binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 16)); - binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), 1)); + binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), getCount())); binding.recycler.post(() -> binding.recycler.scrollToPosition(0)); } private void setDialog() { WindowManager.LayoutParams params = dialog.getWindow().getAttributes(); - params.width = (int) (ResUtil.getScreenWidth() * 0.4f); + params.width = (int) (ResUtil.getScreenWidth() * getWidth()); dialog.getWindow().setAttributes(params); dialog.getWindow().setDimAmount(0); dialog.show(); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/MenuKeyDialog.java b/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/MenuKeyDialog.java index dff4c9537..6dbbc3983 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/MenuKeyDialog.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/MenuKeyDialog.java @@ -45,6 +45,14 @@ public class MenuKeyDialog implements MenuAdapter.OnClickListener { initView(); } + private int getCount() { + return 3; + } + + private float getWidth() { + return 0.4f + (getCount() - 1) * 0.2f; + } + private void initView() { setRecyclerView(); setDialog(); @@ -55,14 +63,14 @@ public class MenuKeyDialog implements MenuAdapter.OnClickListener { binding.recycler.setHasFixedSize(true); binding.recycler.setItemAnimator(null); binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 16)); - binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), 1)); + binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), getCount())); binding.recycler.post(() -> binding.recycler.scrollToPosition(Setting.getHomeMenuKey())); } private void setDialog() { WindowManager.LayoutParams params = dialog.getWindow().getAttributes(); - params.width = (int) (ResUtil.getScreenWidth() * 0.4f); + params.width = (int) (ResUtil.getScreenWidth() * getWidth()); dialog.getWindow().setAttributes(params); dialog.getWindow().setDimAmount(0); dialog.show(); 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 8d41fe079..99b939a9b 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 @@ -77,6 +77,11 @@ public class CustomWebView extends WebView { setWebViewClient(webViewClient()); } + private void addView() { + ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(1, 1); + if (App.activity() != null) App.activity().addContentView(this, params); + } + public CustomWebView start(String key, String from, Map headers, String url, String click, ParseCallback callback, boolean detect) { App.post(timer, Constant.TIMEOUT_PARSE_WEB); this.callback = callback; @@ -84,6 +89,7 @@ public class CustomWebView extends WebView { this.click = click; this.from = from; this.key = key; + addView(); start(url, headers); return this; } @@ -142,7 +148,7 @@ public class CustomWebView extends WebView { private void showDialog() { if (dialog != null || App.activity() == null) return; - if (getParent() != null) ((ViewGroup) getParent()).removeView(this); + removeView(); dialog = new AlertDialog.Builder(App.activity()).setView(this).show(); } @@ -200,8 +206,13 @@ public class CustomWebView extends WebView { callback = null; } + private void removeView() { + if (getParent() != null) ((ViewGroup) getParent()).removeView(this); + } + public void stop(boolean error) { hideDialog(); + removeView(); stopLoading(); loadUrl(BLANK); App.removeCallbacks(timer);