Fix focus when no parse layout

pull/102/head
FongMi 3 years ago
parent 3edd8ca21d
commit 8586f0ebe0
  1. 8
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/ConfigDialog.java
  3. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/SiteDialog.java
  4. 2
      app/src/leanback/res/layout/adapter_parse.xml
  5. 12
      app/src/leanback/res/layout/adapter_site.xml
  6. 8
      app/src/leanback/res/layout/dialog_config.xml
  7. 1
      app/src/leanback/res/layout/view_controller_bottom.xml

@ -184,6 +184,7 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
boolean useParse = (result.getPlayUrl().isEmpty() && ApiConfig.get().getFlags().contains(result.getFlag())) || result.getJx() == 1; boolean useParse = (result.getPlayUrl().isEmpty() && ApiConfig.get().getFlags().contains(result.getFlag())) || result.getJx() == 1;
mControl.parseLayout.setVisibility(useParse ? View.VISIBLE : View.GONE); mControl.parseLayout.setVisibility(useParse ? View.VISIBLE : View.GONE);
Players.get().setMediaSource(result, useParse); Players.get().setMediaSource(result, useParse);
resetFocus(useParse);
}); });
mSiteViewModel.result.observe(this, result -> { mSiteViewModel.result.observe(this, result -> {
if (result.getList().isEmpty()) mBinding.progressLayout.showEmpty(); if (result.getList().isEmpty()) mBinding.progressLayout.showEmpty();
@ -191,6 +192,13 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
}); });
} }
private void resetFocus(boolean useParse) {
mControl.exoProgress.setNextFocusUpId(useParse ? R.id.parse : R.id.next);
for (int i = 0; i < mControl.playLayout.getChildCount(); i++) {
mControl.playLayout.getChildAt(i).setNextFocusDownId(useParse ? R.id.parse : com.google.android.exoplayer2.ui.R.id.exo_progress);
}
}
private void getDetail() { private void getDetail() {
mSiteViewModel.detailContent(getKey(), getId()); mSiteViewModel.detailContent(getKey(), getId());
} }

@ -44,7 +44,7 @@ public class ConfigDialog implements DialogInterface.OnDismissListener {
private void initDialog() { private void initDialog() {
WindowManager.LayoutParams params = dialog.getWindow().getAttributes(); WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width = (int) (ResUtil.getScreenWidthPx() * 0.65f); params.width = (int) (ResUtil.getScreenWidthPx() * 0.7f);
dialog.getWindow().setAttributes(params); dialog.getWindow().setAttributes(params);
dialog.getWindow().setDimAmount(0); dialog.getWindow().setDimAmount(0);
dialog.setOnDismissListener(this); dialog.setOnDismissListener(this);
@ -55,7 +55,7 @@ public class ConfigDialog implements DialogInterface.OnDismissListener {
String address = Server.get().getAddress(false); String address = Server.get().getAddress(false);
binding.text.setText(Prefers.getUrl()); binding.text.setText(Prefers.getUrl());
binding.text.setSelection(binding.text.getText().length()); binding.text.setSelection(binding.text.getText().length());
binding.code.setImageBitmap(QRCode.getBitmap(address, 180, 0)); binding.code.setImageBitmap(QRCode.getBitmap(address, 200, 0));
binding.info.setText(ResUtil.getString(R.string.dialog_config_info, address)); binding.info.setText(ResUtil.getString(R.string.dialog_config_info, address));
} }

@ -38,7 +38,7 @@ public class SiteDialog implements SitePresenter.OnClickListener {
private void initDialog() { private void initDialog() {
WindowManager.LayoutParams params = dialog.getWindow().getAttributes(); WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width = (int) (ResUtil.getScreenWidthPx() * 0.45f); params.width = (int) (ResUtil.getScreenWidthPx() * 0.45f);
params.height = (int) (ResUtil.getScreenHeightPx() * 0.8f); params.height = (int) (ResUtil.getScreenHeightPx() * 0.85f);
dialog.getWindow().setAttributes(params); dialog.getWindow().setAttributes(params);
dialog.getWindow().setDimAmount(0); dialog.getWindow().setDimAmount(0);
dialog.show(); dialog.show();

@ -8,7 +8,7 @@
android:focusable="true" android:focusable="true"
android:focusableInTouchMode="true" android:focusableInTouchMode="true"
android:gravity="center" android:gravity="center"
android:nextFocusUp="@id/next" android:nextFocusUp="@id/playLayout"
android:nextFocusDown="@id/exo_progress" android:nextFocusDown="@id/exo_progress"
android:singleLine="true" android:singleLine="true"
android:textColor="@color/white" android:textColor="@color/white"

@ -7,7 +7,7 @@
<TextView <TextView
android:id="@+id/text" android:id="@+id/text"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="48dp" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:background="@drawable/selector_text" android:background="@drawable/selector_text"
android:ellipsize="marquee" android:ellipsize="marquee"
@ -23,23 +23,25 @@
<ImageView <ImageView
android:id="@+id/search" android:id="@+id/search"
android:layout_width="48dp" android:layout_width="wrap_content"
android:layout_height="48dp" android:layout_height="wrap_content"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:layout_marginEnd="12dp" android:layout_marginEnd="12dp"
android:background="@drawable/selector_text" android:background="@drawable/selector_text"
android:focusable="true" android:focusable="true"
android:focusableInTouchMode="true" android:focusableInTouchMode="true"
android:padding="8dp"
android:scaleType="center" android:scaleType="center"
android:src="@drawable/ic_search_on" /> android:src="@drawable/ic_search_on" />
<ImageView <ImageView
android:id="@+id/filter" android:id="@+id/filter"
android:layout_width="48dp" android:layout_width="wrap_content"
android:layout_height="48dp" android:layout_height="wrap_content"
android:background="@drawable/selector_text" android:background="@drawable/selector_text"
android:focusable="true" android:focusable="true"
android:focusableInTouchMode="true" android:focusableInTouchMode="true"
android:padding="8dp"
android:scaleType="center" android:scaleType="center"
android:src="@drawable/ic_filter_on" /> android:src="@drawable/ic_filter_on" />

@ -6,22 +6,22 @@
<ImageView <ImageView
android:id="@+id/code" android:id="@+id/code"
android:layout_width="180dp" android:layout_width="200dp"
android:layout_height="180dp" android:layout_height="200dp"
android:scaleType="fitXY" /> android:scaleType="fitXY" />
<TextView <TextView
android:id="@+id/info" android:id="@+id/info"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="12dp" android:layout_marginStart="16dp"
android:layout_toEndOf="@+id/code" android:layout_toEndOf="@+id/code"
android:lineSpacingExtra="4dp" android:lineSpacingExtra="4dp"
android:paddingStart="4dp" android:paddingStart="4dp"
android:paddingEnd="4dp" android:paddingEnd="4dp"
android:text="@string/dialog_config_info" android:text="@string/dialog_config_info"
android:textColor="@color/grey_700" android:textColor="@color/grey_700"
android:textSize="16sp" /> android:textSize="18sp" />
<EditText <EditText
android:id="@+id/text" android:id="@+id/text"

@ -16,6 +16,7 @@
android:paddingBottom="8dp"> android:paddingBottom="8dp">
<LinearLayout <LinearLayout
android:id="@+id/playLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical" android:gravity="center_vertical"

Loading…
Cancel
Save