This commit is contained in:
Yuriy Liskov
2020-10-06 22:02:58 +03:00
parent b42fac341d
commit 1ebe916248
7 changed files with 36 additions and 84 deletions

View File

@@ -73,9 +73,9 @@ public class PlayerUiManager extends PlayerEventListenerHelper implements Metada
if (KeyHelpers.isBackKey(keyCode)) {
enableSuggestionsResetTimeout();
} else {
enableUiAutoHideTimeout();
}
enableUiAutoHideTimeout();
}
@Override

View File

@@ -54,8 +54,6 @@ public class BrowseFragment extends BrowseSupportFragment implements BrowseView
setupAdapter();
setupUi();
// Prepare the manager that maintains the same background image between activities.
//prepareBackgroundManager();
setupEventListeners();
enableMainFragmentScaling(false);
@@ -102,7 +100,7 @@ public class BrowseFragment extends BrowseSupportFragment implements BrowseView
private int getHeaderResId(Object o) {
if (o instanceof PageRow) {
return ((BrowseHeaderItem) ((PageRow) o).getHeaderItem()).getResId();
return ((FragmentHeaderItem) ((PageRow) o).getHeaderItem()).getResId();
}
return -1;
@@ -113,28 +111,8 @@ public class BrowseFragment extends BrowseSupportFragment implements BrowseView
Intent intent = new Intent(getActivity(), SearchActivity.class);
startActivity(intent);
});
// Listener moved to PageRowFragmentFactory
//getHeadersSupportFragment().setOnHeaderViewSelectedListener(new HeaderViewSelectedListener());
}
//private void initSampleRow() {
// setOnItemViewClickedListener(new ItemViewClickedListener());
// setOnItemViewSelectedListener(new ItemViewSelectedListener());
//
// // Create a row for this special case with more samples.
// HeaderItem gridHeader = new HeaderItem(getString(R.string.more_samples));
// GridItemPresenter gridPresenter = new GridItemPresenter(this);
// ArrayObjectAdapter gridRowAdapter = new ArrayObjectAdapter(gridPresenter);
// gridRowAdapter.add(getString(R.string.grid_view));
// gridRowAdapter.add(getString(R.string.guidedstep_first_title));
// gridRowAdapter.add(getString(R.string.error_fragment));
// gridRowAdapter.add(getString(R.string.personal_settings));
// mCategoryRowAdapter.add(new ListRow(gridHeader, gridRowAdapter));
//
// startEntranceTransition(); // TODO: Move startEntranceTransition to after all
//}
@Override
public void updateHeaderIfEmpty(ErrorFragmentData data) {
mHandler.postDelayed(() -> showErrorIfEmpty(data), 500); // need delay because header may be not updated
@@ -181,7 +159,7 @@ public class BrowseFragment extends BrowseSupportFragment implements BrowseView
}
private void createHeader(Header header) {
HeaderItem headerItem = new BrowseHeaderItem(header.getId(), header.getTitle(), header.getType(), header.getResId());;
HeaderItem headerItem = new FragmentHeaderItem(header.getId(), header.getTitle(), header.getType(), header.getResId());;
PageRow pageRow = new PageRow(headerItem);
mCategoryRowAdapter.add(pageRow);
@@ -218,42 +196,6 @@ public class BrowseFragment extends BrowseSupportFragment implements BrowseView
}
}
//private final class ItemViewClickedListener implements OnItemViewClickedListener {
// @Override
// public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
// RowPresenter.ViewHolder rowViewHolder, Row row) {
//
// if (item instanceof String) {
// if (((String) item).contains(getString(R.string.grid_view))) {
// Intent intent = new Intent(getActivity(), VerticalGridActivity.class);
// Bundle bundle =
// ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
// .toBundle();
// startActivity(intent, bundle);
// } else if (((String) item).contains(getString(R.string.guidedstep_first_title))) {
// Intent intent = new Intent(getActivity(), GuidedStepActivity.class);
// Bundle bundle =
// ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
// .toBundle();
// startActivity(intent, bundle);
// } else if (((String) item).contains(getString(R.string.error_fragment))) {
// BrowseErrorFragment errorFragment = new BrowseErrorFragment();
// getFragmentManager().beginTransaction().replace(R.id.main_frame, errorFragment)
// .addToBackStack(null).commit();
// } else if(((String) item).contains(getString(R.string.personal_settings))) {
// Intent intent = new Intent(getActivity(), SettingsActivity.class);
// Bundle bundle =
// ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
// .toBundle();
// startActivity(intent, bundle);
// } else {
// Toast.makeText(getActivity(), ((String) item), Toast.LENGTH_SHORT)
// .show();
// }
// }
// }
//}
//private final class ItemViewSelectedListener implements OnItemViewSelectedListener {
// @Override
// public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,

View File

@@ -2,21 +2,21 @@ package com.liskovsoft.smartyoutubetv2.tv.ui.browse;
import androidx.leanback.widget.HeaderItem;
public class BrowseHeaderItem extends HeaderItem {
public class FragmentHeaderItem extends HeaderItem {
private int mType = -1;
private int mResId = -1;
public BrowseHeaderItem(long id, String name, int type, int resId) {
public FragmentHeaderItem(long id, String name, int type, int resId) {
super(id, name);
mType = type;
mResId = resId;
}
public BrowseHeaderItem(long id, String name) {
public FragmentHeaderItem(long id, String name) {
super(id, name);
}
public BrowseHeaderItem(String name) {
public FragmentHeaderItem(String name) {
super(name);
}

View File

@@ -38,8 +38,8 @@ public class HeaderFragmentFactory extends BrowseSupportFragment.FragmentFactory
HeaderItem header = row.getHeaderItem();
Fragment fragment = null;
if (header instanceof BrowseHeaderItem) {
int type = ((BrowseHeaderItem) header).getType();
if (header instanceof FragmentHeaderItem) {
int type = ((FragmentHeaderItem) header).getType();
if (type == Header.TYPE_ROW) {
fragment = new HeaderRowsFragment();

View File

@@ -31,7 +31,7 @@ import java.util.Map;
public abstract class DynamicRowsFragment extends RowsSupportFragment implements VideoGroupFragment {
private static final String TAG = DynamicRowsFragment.class.getSimpleName();
private static final int ZOOM_FACTOR = FocusHighlight.ZOOM_FACTOR_MEDIUM;
private static final int ZOOM_FACTOR = FocusHighlight.ZOOM_FACTOR_SMALL;
private UriBackgroundManager mBackgroundManager;
private Handler mHandler;
private ArrayObjectAdapter mRowsAdapter;

View File

@@ -8,6 +8,7 @@ import androidx.fragment.app.Fragment;
import android.view.KeyEvent;
import android.view.MotionEvent;
import com.liskovsoft.sharedutils.helpers.Helpers;
import com.liskovsoft.sharedutils.mylogger.Log;
import com.liskovsoft.smartyoutubetv2.tv.R;
import com.liskovsoft.smartyoutubetv2.tv.ui.common.LeanbackActivity;
@@ -81,27 +82,27 @@ public class PlaybackActivity extends LeanbackActivity {
// Also, avoid enter pip on stop!
// More info: https://developer.android.com/guide/topics/ui/picture-in-picture#continuing_playback
if (wannaEnterToPIP()) {
Log.d(TAG, "Entering PIP mode...");
if (Helpers.isPictureInPictureSupported(this)) {
if (wannaEnterToPIP()) {
Log.d(TAG, "Entering PIP mode...");
try {
if (Build.VERSION.SDK_INT >= 26) {
PictureInPictureParams.Builder params = new PictureInPictureParams.Builder();
enterPictureInPictureMode(params.build());
} else {
enterPictureInPictureMode();
try {
if (Build.VERSION.SDK_INT >= 26) {
PictureInPictureParams.Builder params = new PictureInPictureParams.Builder();
enterPictureInPictureMode(params.build());
} else {
enterPictureInPictureMode();
}
} catch (Exception e) {
// Device doesn't support picture-in-picture mode
Log.e(TAG, e.getMessage());
}
} catch (Exception e) {
// Device doesn't support picture-in-picture mode
Log.e(TAG, e.getMessage());
}
}
}
private boolean wannaEnterToPIP() {
boolean pipIsSupported = Build.VERSION.SDK_INT >= 24 && getPackageManager().hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE);
return pipIsSupported && !isInPictureInPictureMode() && mPlaybackFragment.isPIPEnabled();
return !isInPictureInPictureMode() && mPlaybackFragment.isPIPEnabled();
}
@Override

View File

@@ -286,7 +286,16 @@ public class PlaybackFragment extends VideoSupportFragment implements PlaybackVi
Row row) {
if (item instanceof Video) {
mEventListener.onSuggestionItemClicked((Video) item);
if (getActivity() instanceof LeanbackActivity) {
boolean longClick = ((LeanbackActivity) getActivity()).isLongClick();
Log.d(TAG, "Is long click: " + longClick);
if (longClick) {
mEventListener.onSuggestionItemLongClicked((Video) item);
} else {
mEventListener.onSuggestionItemClicked((Video) item);
}
}
}
}
}