[mobile] fix full screen logic

pull/123/head
FongMi 3 years ago
parent 49d747f17b
commit 760095c694
  1. 8
      app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java
  2. 10
      app/src/mobile/java/com/fongmi/android/tv/Product.java
  3. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java
  4. 24
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  5. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/HomeFragment.java
  6. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java
  7. 8
      app/src/mobile/res/layout/view_control_vod.xml

@ -62,6 +62,10 @@ public class ResUtil {
return getDisplayMetrics().widthPixels;
}
public static int getScreenWidth(Context context) {
return context.getResources().getDisplayMetrics().widthPixels;
}
public static int getScreenWidthNav() {
return getDisplayMetrics().widthPixels + getNavigationBarHeight(App.get());
}
@ -70,6 +74,10 @@ public class ResUtil {
return getDisplayMetrics().heightPixels;
}
public static int getScreenHeight(Context context) {
return context.getResources().getDisplayMetrics().heightPixels;
}
public static int getScreenHeightNav() {
return getDisplayMetrics().heightPixels + getNavigationBarHeight(App.get());
}

@ -1,5 +1,7 @@
package com.fongmi.android.tv;
import android.content.Context;
import com.fongmi.android.tv.utils.Prefers;
import com.fongmi.android.tv.utils.ResUtil;
@ -12,12 +14,12 @@ public class Product {
public static void bootLive() {
}
public static int[] getSpec() {
return getSpec(ResUtil.dp2px(32) + ResUtil.dp2px(16 * (getColumn() - 1)), getColumn());
public static int[] getSpec(Context context) {
return getSpec(context, ResUtil.dp2px(32) + ResUtil.dp2px(16 * (getColumn() - 1)), getColumn());
}
public static int[] getSpec(int space, int column) {
int base = ResUtil.getScreenWidth() - space;
public static int[] getSpec(Context context, int space, int column) {
int base = ResUtil.getScreenWidth(context) - space;
int width = base / column;
int height = (int) (width / 0.75f);
return new int[]{width, height};

@ -127,7 +127,7 @@ public class CollectActivity extends BaseActivity implements SiteCallback, WordA
mBinding.recordRecycler.setHasFixedSize(true);
mBinding.recordRecycler.setLayoutManager(new GridLayoutManager(this, 2));
mBinding.recordRecycler.setAdapter(mRecordAdapter = new RecordAdapter(this));
mVodAdapter.setSize(Product.getSpec(ResUtil.dp2px(64), 3));
mVodAdapter.setSize(Product.getSpec(this, ResUtil.dp2px(64), 3));
}
private void setLayoutSize() {

@ -183,7 +183,9 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT);
getIntent().putExtras(intent);
setOrient();
getDetail();
}
@ -398,6 +400,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void setEpisodeAdapter(List<Vod.Flag.Episode> items) {
mBinding.control.nextRoot.setVisibility(items.size() < 2 ? View.GONE : View.VISIBLE);
mBinding.control.prevRoot.setVisibility(items.size() < 2 ? View.GONE : View.VISIBLE);
mBinding.episode.setVisibility(items.isEmpty() ? View.GONE : View.VISIBLE);
mEpisodeAdapter.addAll(items);
}
@ -594,6 +598,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void enterFullscreen() {
if (isFullscreen()) return;
mBinding.video.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
getIjk().getSubtitleView().setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
@ -605,6 +610,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void exitFullscreen() {
if (!isFullscreen()) return;
getIjk().getSubtitleView().setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
mBinding.control.full.setImageResource(R.drawable.ic_control_full_on);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT);
@ -1073,18 +1079,22 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
@Override
public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode);
if (isInPictureInPictureMode) hideControl();
else if (isStop()) finish();
hideTrack();
if (isInPictureInPictureMode) {
enterFullscreen();
hideControl();
hideTrack();
} else {
exitFullscreen();
if (isStop()) finish();
}
}
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (isFullscreen()) Utils.hideSystemUI(this);
if (Utils.hasPIP() && isInPictureInPictureMode()) enterFullscreen();
else if (ResUtil.isLand(this) && !isFullscreen()) enterFullscreen();
else if (ResUtil.isPort(this) && isFullscreen() && !isRotate()) exitFullscreen();
if (ResUtil.isLand(this)) enterFullscreen();
else if (ResUtil.isPort(this) && !isRotate()) exitFullscreen();
else if (isFullscreen()) Utils.hideSystemUI(this);
}
@Override

@ -78,8 +78,8 @@ public class HomeFragment extends BaseFragment implements VodAdapter.OnClickList
mBinding.recommend.setHasFixedSize(true);
mBinding.recommend.setLayoutManager(new GridLayoutManager(getContext(), Product.getColumn()));
mBinding.recommend.setAdapter(mVodAdapter = new VodAdapter(this));
mHistoryAdapter.setSize(Product.getSpec());
mVodAdapter.setSize(Product.getSpec());
mHistoryAdapter.setSize(Product.getSpec(getActivity()));
mVodAdapter.setSize(Product.getSpec(getActivity()));
}
private void setViewModel() {

@ -93,7 +93,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
mBinding.recycler.setHasFixedSize(true);
mBinding.recycler.setAdapter(mVodAdapter = new VodAdapter(this));
mBinding.recycler.setLayoutManager(new GridLayoutManager(getContext(), Product.getColumn()));
mVodAdapter.setSize(Product.getSpec());
mVodAdapter.setSize(Product.getSpec(getActivity()));
}
private void setViewModel() {

@ -72,9 +72,11 @@
android:orientation="horizontal">
<FrameLayout
android:id="@+id/prevRoot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_control">
android:background="@drawable/shape_control"
android:visibility="gone">
<ImageView
android:id="@+id/prev"
@ -102,9 +104,11 @@
</FrameLayout>
<FrameLayout
android:id="@+id/nextRoot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_control">
android:background="@drawable/shape_control"
android:visibility="gone">
<ImageView
android:id="@+id/next"

Loading…
Cancel
Save