[mobile] optimize pip mode

pull/123/head
FongMi 3 years ago
parent 039e2dc81c
commit 70157d909c
  1. 9
      app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java
  2. 1
      app/src/mobile/AndroidManifest.xml
  3. 5
      app/src/mobile/java/com/fongmi/android/tv/Product.java
  4. 63
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  5. 12
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
  6. 8
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java
  7. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java

@ -1,5 +1,6 @@
package com.fongmi.android.tv.utils;
import android.app.Activity;
import android.content.res.Configuration;
import android.graphics.drawable.Drawable;
import android.util.DisplayMetrics;
@ -29,12 +30,12 @@ public class ResUtil {
return getDisplayMetrics().heightPixels;
}
public static boolean isLand() {
return App.get().getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
public static boolean isLand(Activity activity) {
return activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
}
public static boolean isPort() {
return App.get().getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
public static boolean isPort(Activity activity) {
return activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
}
public static int getEms() {

@ -25,6 +25,7 @@
<activity
android:name=".ui.activity.DetailActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:launchMode="singleTop"
android:resizeableActivity="true"
android:screenOrientation="fullSensor"
android:supportsPictureInPicture="true"

@ -1,5 +1,6 @@
package com.fongmi.android.tv;
import android.app.Activity;
import android.content.res.Resources;
import com.fongmi.android.tv.utils.ResUtil;
@ -10,7 +11,7 @@ public class Product {
return resources;
}
public static int getColumn() {
return ResUtil.isPort() ? 3 : 6;
public static int getColumn(Activity activity) {
return ResUtil.isPort(activity) ? 3 : 6;
}
}

@ -82,6 +82,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private boolean mAutoMode;
private boolean mUseParse;
private boolean mLock;
private boolean mStop;
private int mCurrent;
private Runnable mR1;
private Runnable mR2;
@ -169,11 +170,17 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
return mBinding = ActivityDetailBinding.inflate(getLayoutInflater());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
getIntent().putExtras(intent);
getDetail();
}
@Override
protected void initView() {
mKeyDown = CustomKeyDownVod.create(this);
mFrameParams = mBinding.video.getLayoutParams();
mBinding.progressLayout.showProgress();
mPlayers = new Players().init();
mR1 = this::hideControl;
mR2 = this::setTraffic;
@ -213,7 +220,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void checkOrientation() {
if (ResUtil.isLand()) enterFullscreen();
if (ResUtil.isLand(this)) enterFullscreen();
}
private void setRecyclerView() {
@ -274,6 +281,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void getDetail() {
mBinding.progressLayout.showProgress();
mViewModel.detailContent(getKey(), getId());
}
@ -402,7 +410,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
setR1Callback();
setLock(!isLock());
mBinding.control.lock.setImageResource(isLock() ? R.drawable.ic_lock_on : R.drawable.ic_lock_off);
setRequestedOrientation(isLock() ? (ResUtil.isLand() ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT) : ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
setRequestedOrientation(isLock() ? (ResUtil.isLand(this) ? ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT) : ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
}
private void onFull() {
@ -538,8 +546,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.video.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
App.post(mR3, 3000);
setFullscreen(true);
hideControl();
hideInfo();
hideAll();
}
private void exitFullscreen() {
@ -549,8 +556,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.video.setLayoutParams(mFrameParams);
App.post(mR3, 3000);
setFullscreen(false);
hideControl();
hideInfo();
hideAll();
}
private void showProgress() {
@ -602,6 +608,11 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
hideInfo();
}
private void hideAll() {
hideControl();
hideInfo();
}
private void setTraffic() {
Traffic.setSpeed(mBinding.widget.traffic);
App.post(mR2, Constant.INTERVAL_TRAFFIC);
@ -807,6 +818,14 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
this.mLock = lock;
}
public boolean isStop() {
return mStop;
}
public void setStop(boolean stop) {
this.mStop = stop;
}
private void notifyItemChanged(RecyclerView.Adapter<?> adapter) {
adapter.notifyItemRangeChanged(0, adapter.getItemCount());
}
@ -824,14 +843,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
hideControl();
}
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (isLock()) return;
if (ResUtil.isLand()) enterFullscreen();
if (ResUtil.isPort()) exitFullscreen();
}
@Override
protected void onUserLeaveHint() {
super.onUserLeaveHint();
@ -844,24 +855,31 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode);
mBinding.progressLayout.setVisibility(isInPictureInPictureMode ? View.GONE : View.VISIBLE);
if (isInPictureInPictureMode) {
hideControl();
hideInfo();
} else if (!mPlayers.isPlaying()) {
finish();
}
if (isInPictureInPictureMode) hideAll();
else if (isStop()) finish();
}
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (Utils.hasPIP() && isInPictureInPictureMode() || isLock()) return;
else if (ResUtil.isPort(this)) exitFullscreen();
else if (ResUtil.isLand(this)) enterFullscreen();
}
@Override
protected void onStart() {
super.onStart();
setStop(false);
onPlay();
}
@Override
protected void onStop() {
onPause(false);
super.onStop();
RefreshEvent.history();
onPause(false);
setStop(true);
}
@Override
@ -873,7 +891,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
@Override
protected void onPause() {
super.onPause();
RefreshEvent.history();
Clock.get().release();
}

@ -36,6 +36,12 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
return mBinding = ActivityMainBinding.inflate(getLayoutInflater());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
checkAction(intent);
}
@Override
protected void initView() {
Notify.progress(this);
@ -45,12 +51,6 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
initConfig();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
checkAction(intent);
}
private void checkAction(Intent intent) {
boolean hasPush = ApiConfig.get().getSite("push_agent") != null;
boolean hasAction = intent.getAction() != null && intent.getAction().equals(Intent.ACTION_SEND) && intent.getType().equals("text/plain");

@ -46,10 +46,10 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList
private void setRecyclerView() {
mBinding.history.setHasFixedSize(true);
mBinding.history.getItemAnimator().setChangeDuration(0);
mBinding.history.setLayoutManager(mHistoryManager = new GridLayoutManager(getContext(), Product.getColumn()));
mBinding.history.setLayoutManager(mHistoryManager = new GridLayoutManager(getContext(), Product.getColumn(getActivity())));
mBinding.history.setAdapter(mHistoryAdapter = new HistoryAdapter(this));
mBinding.recommend.setHasFixedSize(true);
mBinding.recommend.setLayoutManager(mRecommendManager = new GridLayoutManager(getContext(), Product.getColumn()));
mBinding.recommend.setLayoutManager(mRecommendManager = new GridLayoutManager(getContext(), Product.getColumn(getActivity())));
mBinding.recommend.setAdapter(mVodAdapter = new VodAdapter(this));
}
@ -107,7 +107,7 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mHistoryManager.setSpanCount(Product.getColumn());
mRecommendManager.setSpanCount(Product.getColumn());
mHistoryManager.setSpanCount(Product.getColumn(getActivity()));
mRecommendManager.setSpanCount(Product.getColumn(getActivity()));
}
}

@ -76,7 +76,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
private void setRecyclerView() {
mBinding.recycler.setHasFixedSize(true);
mBinding.recycler.setAdapter(mVodAdapter = new VodAdapter(this));
mBinding.recycler.setLayoutManager(mGridLayoutManager = new GridLayoutManager(getContext(), Product.getColumn()));
mBinding.recycler.setLayoutManager(mGridLayoutManager = new GridLayoutManager(getContext(), Product.getColumn(getActivity())));
}
private void setViewModel() {
@ -148,6 +148,6 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mGridLayoutManager.setSpanCount(Product.getColumn());
mGridLayoutManager.setSpanCount(Product.getColumn(getActivity()));
}
}

Loading…
Cancel
Save