首页操作微调.

pull/1/head
SDL 4 years ago
parent 53cacf2d59
commit 2a3593d151
  1. 4
      app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java
  2. 122
      app/src/main/java/com/github/tvbox/osc/ui/activity/HomeActivity.java
  3. 4
      app/src/main/java/com/github/tvbox/osc/ui/adapter/GridAdapter.java
  4. 4
      app/src/main/java/com/github/tvbox/osc/ui/adapter/HistoryAdapter.java
  5. 1
      app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java
  6. 13
      app/src/main/res/layout/activity_home.xml

@ -268,8 +268,8 @@ public class DetailActivity extends BaseActivity {
.load(mVideo.pic)
.transform(new RoundTransformation(mVideo.pic)
.centerCorp(true)
.override(AutoSizeUtils.pt2px(mContext, 212), AutoSizeUtils.pt2px(mContext, 300))
.roundRadius(AutoSizeUtils.pt2px(mContext, 10), RoundTransformation.RoundType.ALL))
.override(AutoSizeUtils.mm2px(mContext, 212), AutoSizeUtils.mm2px(mContext, 300))
.roundRadius(AutoSizeUtils.mm2px(mContext, 10), RoundTransformation.RoundType.ALL))
.placeholder(R.drawable.error_all_loading)
.error(R.drawable.error_all_loading)
.into(ivThumb);

@ -23,7 +23,6 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.viewpager.widget.ViewPager;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.dueeeke.videoplayer.util.L;
import com.github.tvbox.osc.R;
import com.github.tvbox.osc.api.ApiConfig;
import com.github.tvbox.osc.base.BaseActivity;
@ -31,8 +30,6 @@ import com.github.tvbox.osc.base.BaseLazyFragment;
import com.github.tvbox.osc.bean.AbsSortXml;
import com.github.tvbox.osc.bean.MovieSort;
import com.github.tvbox.osc.event.RefreshEvent;
import com.github.tvbox.osc.event.ServerEvent;
import com.github.tvbox.osc.event.TopStateEvent;
import com.github.tvbox.osc.server.ControlManager;
import com.github.tvbox.osc.ui.adapter.HomePageAdapter;
import com.github.tvbox.osc.ui.adapter.SortAdapter;
@ -74,7 +71,7 @@ public class HomeActivity extends BaseActivity {
private List<BaseLazyFragment> fragments = new ArrayList<>();
private boolean isDownOrUp = false;
private boolean sortChange = false;
private int defaultSelected = 0;
private int currentSelected = 0;
private int sortFocused = 0;
public View sortFocusView = null;
private Handler mHandler = new Handler();
@ -158,7 +155,6 @@ public class HomeActivity extends BaseActivity {
if (!((GridFragment) baseLazyFragment).isLoad()) {
return true;
}
changeTop(true);
return false;
}
});
@ -172,9 +168,14 @@ public class HomeActivity extends BaseActivity {
sortFocusView = viewGroup;
viewGroup.requestFocus();
sortFocused = position;
if (position != defaultSelected) {
defaultSelected = position;
if (position != currentSelected) {
currentSelected = position;
mViewPager.setCurrentItem(position, false);
if (position == 0) {
changeTop(false);
} else {
changeTop(true);
}
}
}
}
@ -342,7 +343,7 @@ public class HomeActivity extends BaseActivity {
}
mViewPager.setPageTransformer(true, new DefaultTransformer());
mViewPager.setAdapter(pageAdapter);
mViewPager.setCurrentItem(defaultSelected, false);
mViewPager.setCurrentItem(currentSelected, false);
}
}
@ -357,8 +358,6 @@ public class HomeActivity extends BaseActivity {
if (baseLazyFragment instanceof GridFragment) {
View view = this.sortFocusView;
if (view != null && !view.isFocused()) {
// ((GridFragment) baseLazyFragment).scrollTop();
changeTop(false);
this.sortFocusView.requestFocus();
} else if (this.sortFocused != 0) {
this.mGridView.setSelection(0);
@ -392,13 +391,6 @@ public class HomeActivity extends BaseActivity {
mHandler.removeCallbacksAndMessages(null);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void changeTop(TopStateEvent event) {
if (event.type == TopStateEvent.TYPE_TOP) {
changeTop(false);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void refresh(RefreshEvent event) {
if (event.type == RefreshEvent.TYPE_API_URL_CHANGE) {
@ -406,40 +398,19 @@ public class HomeActivity extends BaseActivity {
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void server(ServerEvent event) {
// if (event.type == ServerEvent.SERVER_SUCCESS) {
// remoteDialog = new RemoteDialog().build(mContext);
// remoteDialog.show();
// } else if (event.type == ServerEvent.SERVER_CONNECTION) {
// if (remoteDialog != null && remoteDialog.isShowing()) {
// remoteDialog.dismiss();
// }
// }
}
private Runnable mFindFocus = new Runnable() {
@Override
public void run() {
View rootview = getWindow().getDecorView();
if (rootview != null) {
View focus = rootview.findFocus();
if (focus != null) {
L.i("id = 0x" + Integer.toHexString(focus.getId()));
}
}
mHandler.postDelayed(this, 500);
}
};
private Runnable mDataRunnable = new Runnable() {
@Override
public void run() {
if (sortChange) {
sortChange = false;
if (sortFocused != defaultSelected) {
defaultSelected = sortFocused;
if (sortFocused != currentSelected) {
currentSelected = sortFocused;
mViewPager.setCurrentItem(sortFocused, false);
if (sortFocused == 0) {
changeTop(false);
} else {
changeTop(true);
}
}
}
}
@ -447,6 +418,8 @@ public class HomeActivity extends BaseActivity {
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (topHide < 0)
return false;
if (event.getAction() == KeyEvent.ACTION_DOWN) {
mHandler.removeCallbacks(mDataRunnable);
} else if (event.getAction() == KeyEvent.ACTION_UP) {
@ -455,25 +428,66 @@ public class HomeActivity extends BaseActivity {
return super.dispatchKeyEvent(event);
}
byte topHide = 0;
private void changeTop(boolean hide) {
ViewObj viewObj = new ViewObj(mGridView, (ViewGroup.MarginLayoutParams) mGridView.getLayoutParams());
ViewObj viewObj = new ViewObj(topLayout, (ViewGroup.MarginLayoutParams) topLayout.getLayoutParams());
AnimatorSet animatorSet = new AnimatorSet();
if (hide) {
animatorSet.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
topHide = (byte) (hide ? 1 : 0);
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
if (hide && topHide == 0) {
animatorSet.playTogether(new Animator[]{
ObjectAnimator.ofObject(viewObj, "marginTop", new IntEvaluator(),
new Object[]{
Integer.valueOf(AutoSizeUtils.pt2px(this.mContext, 80.0f)),
Integer.valueOf(AutoSizeUtils.pt2px(this.mContext, -65.0f))
Integer.valueOf(AutoSizeUtils.mm2px(this.mContext, 10.0f)),
Integer.valueOf(AutoSizeUtils.mm2px(this.mContext, 0.0f))
}),
ObjectAnimator.ofObject(viewObj, "height", new IntEvaluator(),
new Object[]{
Integer.valueOf(AutoSizeUtils.mm2px(this.mContext, 50.0f)),
Integer.valueOf(AutoSizeUtils.mm2px(this.mContext, 1.0f))
}),
ObjectAnimator.ofFloat(this.mGridView, "alpha", new float[]{1.0f, 0.0f}),
ObjectAnimator.ofFloat(this.topLayout, "alpha", new float[]{1.0f, 0.0f})});
animatorSet.setDuration(300);
animatorSet.setDuration(200);
animatorSet.start();
return;
}
if (!hide && topHide == 1) {
animatorSet.playTogether(new Animator[]{
ObjectAnimator.ofObject(viewObj, "marginTop", new IntEvaluator(),
new Object[]{
Integer.valueOf(AutoSizeUtils.mm2px(this.mContext, 0.0f)),
Integer.valueOf(AutoSizeUtils.mm2px(this.mContext, 10.0f))
}),
ObjectAnimator.ofObject(viewObj, "height", new IntEvaluator(),
new Object[]{
Integer.valueOf(AutoSizeUtils.mm2px(this.mContext, 1.0f)),
Integer.valueOf(AutoSizeUtils.mm2px(this.mContext, 50.0f))
}),
ObjectAnimator.ofFloat(this.topLayout, "alpha", new float[]{0.0f, 1.0f})});
animatorSet.setDuration(200);
animatorSet.start();
return;
}
viewObj.setMarginTop(AutoSizeUtils.pt2px(this.mContext, 80.0f));
this.topLayout.setAlpha(1.0f);
this.mGridView.setAlpha(1.0f);
}
@Override

@ -65,8 +65,8 @@ public class GridAdapter extends BaseQuickAdapter<Movie.Video, BaseViewHolder> {
.load(item.pic)
.transform(new RoundTransformation(MD5.string2MD5(item.pic + "position=" + helper.getLayoutPosition()))
.centerCorp(true)
.override(AutoSizeUtils.pt2px(mContext, 212), AutoSizeUtils.pt2px(mContext, 300))
.roundRadius(AutoSizeUtils.pt2px(mContext, 10), RoundTransformation.RoundType.ALL))
.override(AutoSizeUtils.mm2px(mContext, 212), AutoSizeUtils.mm2px(mContext, 300))
.roundRadius(AutoSizeUtils.mm2px(mContext, 10), RoundTransformation.RoundType.ALL))
.placeholder(R.drawable.error_loading)
.error(R.drawable.error_loading)
.into(ivThumb);

@ -60,8 +60,8 @@ public class HistoryAdapter extends BaseQuickAdapter<VodInfo, BaseViewHolder> {
.load(item.pic)
.transform(new RoundTransformation(MD5.string2MD5(item.pic + item.note))
.centerCorp(true)
.override(AutoSizeUtils.pt2px(mContext, 212), AutoSizeUtils.pt2px(mContext, 300))
.roundRadius(AutoSizeUtils.pt2px(mContext, 10), RoundTransformation.RoundType.ALL))
.override(AutoSizeUtils.mm2px(mContext, 212), AutoSizeUtils.mm2px(mContext, 300))
.roundRadius(AutoSizeUtils.mm2px(mContext, 10), RoundTransformation.RoundType.ALL))
.placeholder(R.drawable.error_loading)
.error(R.drawable.error_loading)
.into(ivThumb);

@ -92,7 +92,6 @@ public class GridFragment extends BaseLazyFragment {
@Override
public boolean onInBorderKeyEvent(int direction, View focused) {
if (direction == View.FOCUS_UP) {
EventBus.getDefault().post(new TopStateEvent(TopStateEvent.TYPE_TOP));
}
return false;
}

@ -8,12 +8,13 @@
<LinearLayout
android:id="@+id/topLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/vs_5"
android:layout_height="@dimen/vs_50"
android:layout_marginTop="@dimen/vs_10"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="@dimen/vs_50"
android:paddingRight="@dimen/vs_50"
android:paddingBottom="@dimen/vs_10"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
@ -21,7 +22,7 @@
<TextView
android:id="@+id/tvName"
android:layout_width="@dimen/vs_0"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:focusable="false"
android:focusableInTouchMode="false"
@ -35,7 +36,7 @@
<TextView
android:id="@+id/tvDate"
android:layout_width="@dimen/vs_0"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:focusable="false"
android:focusableInTouchMode="false"
@ -62,8 +63,8 @@
android:id="@+id/mGridView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/vs_20"
android:layout_marginBottom="@dimen/vs_20"
android:layout_marginTop="@dimen/vs_10"
android:layout_marginBottom="@dimen/vs_10"
android:paddingLeft="@dimen/vs_50"
android:paddingRight="@dimen/vs_50"
app:tv_selectedItemIsCentered="true" />

Loading…
Cancel
Save