diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 55bab84c5..1cd18f9db 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -137,11 +137,7 @@ android:screenOrientation="landscape" /> - - - - diff --git a/app/src/main/java/org/jellyfin/androidtv/constant/Extras.kt b/app/src/main/java/org/jellyfin/androidtv/constant/Extras.kt index d111dbd45..61fe14b58 100644 --- a/app/src/main/java/org/jellyfin/androidtv/constant/Extras.kt +++ b/app/src/main/java/org/jellyfin/androidtv/constant/Extras.kt @@ -1,6 +1,6 @@ package org.jellyfin.androidtv.constant object Extras { - const val Folder = "Folder" - const val IncludeType = "IncludeType" + const val Folder = "folder" + const val IncludeType = "type_include" } diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/BrowseFolderFragment.java b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/BrowseFolderFragment.java index 4450f651b..55d3c0731 100644 --- a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/BrowseFolderFragment.java +++ b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/BrowseFolderFragment.java @@ -2,124 +2,27 @@ package org.jellyfin.androidtv.ui.browsing; import android.content.Intent; import android.os.Bundle; -import android.widget.Toast; -import androidx.leanback.widget.ArrayObjectAdapter; -import androidx.leanback.widget.HeaderItem; -import androidx.leanback.widget.ListRow; -import androidx.leanback.widget.OnItemViewClickedListener; -import androidx.leanback.widget.Presenter; -import androidx.leanback.widget.Row; -import androidx.leanback.widget.RowPresenter; - -import org.jellyfin.androidtv.R; -import org.jellyfin.androidtv.TvApp; -import org.jellyfin.androidtv.constant.Extras; -import org.jellyfin.androidtv.ui.GridButton; -import org.jellyfin.androidtv.ui.presentation.GridButtonPresenter; import org.jellyfin.sdk.model.api.BaseItemDto; import kotlinx.serialization.json.Json; +import timber.log.Timber; public class BrowseFolderFragment extends StdBrowseFragment { - - protected static final int BY_LETTER = 0; - protected static final int GENRES = 1; - protected static final int YEARS = 2; - protected static final int PERSONS = 3; - protected static final int SUGGESTED = 4; + protected String includeType; protected BaseItemDto mFolder; - protected String itemTypeString; - protected boolean showViews = true; @Override public void onCreate(Bundle savedInstanceState) { - mFolder = Json.Default.decodeFromString(BaseItemDto.Companion.serializer(), getActivity().getIntent().getStringExtra(Extras.Folder)); - if (MainTitle == null) MainTitle = mFolder.getName(); + Intent intent = requireActivity().getIntent(); + + mFolder = Json.Default.decodeFromString(BaseItemDto.Companion.serializer(), intent.getStringExtra(GroupedItemsActivity.EXTRA_FOLDER)); + includeType = intent.getStringExtra(GroupedItemsActivity.EXTRA_INCLUDE_TYPE); + MainTitle = mFolder.getName(); ShowBadge = false; - if (mFolder.getCollectionType() != null) { - switch (mFolder.getCollectionType()) { - case "movies": - itemTypeString = "Movie"; - break; - case "tvshows": - itemTypeString = "Series"; - break; - case "folders": - showViews = false; - break; - default: - showViews = false; - } - } else { - showViews = false; - } + + Timber.d("Item type: %s", includeType); super.onCreate(savedInstanceState); } - - @Override - protected void addAdditionalRows(ArrayObjectAdapter rowAdapter) { - super.addAdditionalRows(rowAdapter); - if (showViews) { - HeaderItem gridHeader = new HeaderItem(rowAdapter.size(), TvApp.getApplication().getString(R.string.lbl_views)); - - GridButtonPresenter mGridPresenter = new GridButtonPresenter(); - ArrayObjectAdapter gridRowAdapter = new ArrayObjectAdapter(mGridPresenter); - gridRowAdapter.add(new GridButton(BY_LETTER, TvApp.getApplication().getString(R.string.lbl_by_letter), R.drawable.tile_letters, null)); - if (itemTypeString != null && itemTypeString.equals("Movie")) - gridRowAdapter.add(new GridButton(SUGGESTED, TvApp.getApplication().getString(R.string.lbl_suggested), R.drawable.tile_suggestions, null)); - gridRowAdapter.add(new GridButton(GENRES, TvApp.getApplication().getString(R.string.lbl_genres), R.drawable.tile_genres, null)); - gridRowAdapter.add(new GridButton(PERSONS, TvApp.getApplication().getString(R.string.lbl_performers), R.drawable.tile_actors, null)); - rowAdapter.add(new ListRow(gridHeader, gridRowAdapter)); - } - } - - @Override - protected void setupEventListeners() { - super.setupEventListeners(); - if (showViews) mClickedListener.registerListener(new ItemViewClickedListener()); - } - - private final class ItemViewClickedListener implements OnItemViewClickedListener { - @Override - public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, - RowPresenter.ViewHolder rowViewHolder, Row row) { - if (item instanceof GridButton) { - switch (((GridButton) item).getId()) { - case BY_LETTER: - Intent intent = new Intent(getActivity(), ByLetterActivity.class); - intent.putExtra(Extras.Folder, Json.Default.encodeToString(BaseItemDto.Companion.serializer(), mFolder)); - intent.putExtra(Extras.IncludeType, itemTypeString); - - getActivity().startActivity(intent); - break; - case GENRES: - Intent genreIntent = new Intent(getActivity(), ByGenreActivity.class); - genreIntent.putExtra(Extras.Folder, Json.Default.encodeToString(BaseItemDto.Companion.serializer(), mFolder)); - genreIntent.putExtra(Extras.IncludeType, itemTypeString); - - getActivity().startActivity(genreIntent); - break; - case SUGGESTED: - Intent suggIntent = new Intent(getActivity(), SuggestedMoviesActivity.class); - suggIntent.putExtra(Extras.Folder, Json.Default.encodeToString(BaseItemDto.Companion.serializer(), mFolder)); - suggIntent.putExtra(Extras.IncludeType, itemTypeString); - - getActivity().startActivity(suggIntent); - break; - case PERSONS: - Intent personIntent = new Intent(getActivity(), BrowsePersonsActivity.class); - personIntent.putExtra(Extras.Folder, Json.Default.encodeToString(BaseItemDto.Companion.serializer(), mFolder)); - personIntent.putExtra(Extras.IncludeType, itemTypeString); - - getActivity().startActivity(personIntent); - break; - default: - Toast.makeText(getActivity(), item.toString() + TvApp.getApplication().getString(R.string.msg_not_implemented), Toast.LENGTH_SHORT).show(); - break; - } - } - } - } } diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/BrowsePersonsActivity.kt b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/BrowsePersonsActivity.kt deleted file mode 100644 index eaf3e343b..000000000 --- a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/BrowsePersonsActivity.kt +++ /dev/null @@ -1,15 +0,0 @@ -package org.jellyfin.androidtv.ui.browsing - -import android.os.Bundle -import androidx.fragment.app.FragmentActivity - -class BrowsePersonsActivity : FragmentActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - supportFragmentManager - .beginTransaction() - .replace(android.R.id.content, BrowsePersonsFragment()) - .commit() - } -} diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/BrowsePersonsFragment.java b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/BrowsePersonsFragment.java deleted file mode 100644 index b2f7252e5..000000000 --- a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/BrowsePersonsFragment.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.jellyfin.androidtv.ui.browsing; - -import org.jellyfin.androidtv.R; -import org.jellyfin.androidtv.TvApp; -import org.jellyfin.androidtv.util.Utils; -import org.jellyfin.apiclient.model.querying.ItemSortBy; -import org.jellyfin.apiclient.model.querying.PersonsQuery; - -public class BrowsePersonsFragment extends CustomViewFragment { - - private static String letters = TvApp.getApplication().getResources().getString(R.string.byletter_letters); - - @Override - protected void setupQueries(IRowLoader rowLoader) { - - if (Utils.getSafeValue(mFolder.getChildCount(), 0) > 0) { - //First add a '#' item - PersonsQuery numbers = new PersonsQuery(); - numbers.setParentId(mFolder.getId().toString()); - numbers.setSortBy(new String[]{ItemSortBy.SortName}); - if (includeType != null) numbers.setIncludeItemTypes(new String[]{includeType}); - numbers.setNameLessThan("A"); - numbers.setRecursive(true); - mRows.add(new BrowseRowDef("#", numbers, 25)); - - //Then all the defined letters - for (Character letter : letters.toCharArray()) { - PersonsQuery letterQuery = new PersonsQuery(); - letterQuery.setParentId(mFolder.getId().toString()); - letterQuery.setSortBy(new String[]{ItemSortBy.SortName}); - if (includeType != null) letterQuery.setIncludeItemTypes(new String[]{includeType}); - letterQuery.setNameStartsWith(letter.toString()); - letterQuery.setRecursive(true); - mRows.add(new BrowseRowDef(letter.toString(), letterQuery, 25)); - } - - if (mRows.size() < 2) setHeadersState(HEADERS_DISABLED); - - rowLoader.loadRows(mRows); - - } - else { - setHeadersState(HEADERS_DISABLED); - } - } - - -} diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByGenreActivity.kt b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByGenreActivity.kt deleted file mode 100644 index d1d5383b0..000000000 --- a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByGenreActivity.kt +++ /dev/null @@ -1,15 +0,0 @@ -package org.jellyfin.androidtv.ui.browsing - -import android.os.Bundle -import androidx.fragment.app.FragmentActivity - -class ByGenreActivity : FragmentActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - supportFragmentManager - .beginTransaction() - .replace(android.R.id.content, ByGenreFragment()) - .commit() - } -} diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByGenreFragment.java b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByGenreFragment.java index a4f905114..4ce61b18f 100644 --- a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByGenreFragment.java +++ b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByGenreFragment.java @@ -1,7 +1,5 @@ package org.jellyfin.androidtv.ui.browsing; -import android.os.Bundle; - import org.jellyfin.androidtv.TvApp; import org.jellyfin.androidtv.data.querying.StdItemQuery; import org.jellyfin.androidtv.util.Utils; @@ -13,12 +11,7 @@ import org.jellyfin.apiclient.model.querying.ItemsByNameQuery; import org.jellyfin.apiclient.model.querying.ItemsResult; import org.koin.java.KoinJavaComponent; -public class ByGenreFragment extends CustomViewFragment { - @Override - public void onActivityCreated(Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - } - +public class ByGenreFragment extends BrowseFolderFragment { @Override protected void setupQueries(final IRowLoader rowLoader) { if (Utils.getSafeValue(mFolder.getChildCount(), 0) > 0) { diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByLetterActivity.kt b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByLetterActivity.kt deleted file mode 100644 index 4dbf3c157..000000000 --- a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByLetterActivity.kt +++ /dev/null @@ -1,15 +0,0 @@ -package org.jellyfin.androidtv.ui.browsing - -import android.os.Bundle -import androidx.fragment.app.FragmentActivity - -class ByLetterActivity : FragmentActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - supportFragmentManager - .beginTransaction() - .replace(android.R.id.content, ByLetterFragment()) - .commit() - } -} diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByLetterFragment.java b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByLetterFragment.java index 8bfefa967..8aba75e41 100644 --- a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByLetterFragment.java +++ b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/ByLetterFragment.java @@ -6,20 +6,18 @@ import org.jellyfin.androidtv.data.querying.StdItemQuery; import org.jellyfin.androidtv.util.Utils; import org.jellyfin.apiclient.model.querying.ItemSortBy; -public class ByLetterFragment extends CustomViewFragment { - +public class ByLetterFragment extends BrowseFolderFragment { private static String letters = TvApp.getApplication().getResources().getString(R.string.byletter_letters); @Override protected void setupQueries(IRowLoader rowLoader) { - if (Utils.getSafeValue(mFolder.getChildCount(), 0) > 0) { //First add a '#' item StdItemQuery numbers = new StdItemQuery(); numbers.setParentId(mFolder.getId().toString()); numbers.setSortBy(new String[]{ItemSortBy.SortName}); if (includeType != null) numbers.setIncludeItemTypes(new String[]{includeType}); - numbers.setNameLessThan(letters.substring(0,1)); + numbers.setNameLessThan(letters.substring(0, 1)); numbers.setRecursive(true); mRows.add(new BrowseRowDef("#", numbers, 40)); @@ -37,12 +35,8 @@ public class ByLetterFragment extends CustomViewFragment { if (mRows.size() < 2) setHeadersState(HEADERS_DISABLED); rowLoader.loadRows(mRows); - - } - else { + } else { setHeadersState(HEADERS_DISABLED); } } - - } diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/CustomViewFragment.java b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/CustomViewFragment.java deleted file mode 100644 index fc94a4d86..000000000 --- a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/CustomViewFragment.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.jellyfin.androidtv.ui.browsing; - -import android.os.Bundle; - -import org.jellyfin.androidtv.constant.Extras; - -import timber.log.Timber; - -public class CustomViewFragment extends BrowseFolderFragment { - protected String includeType; - - @Override - public void onCreate(Bundle savedInstanceState) { - includeType = getActivity().getIntent().getStringExtra(Extras.IncludeType); - Timber.d("Item type: %s", includeType); - showViews = false; - - super.onCreate(savedInstanceState); - } -} diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/EnhancedBrowseFragment.java b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/EnhancedBrowseFragment.java index 285dc3668..54cad5ee3 100644 --- a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/EnhancedBrowseFragment.java +++ b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/EnhancedBrowseFragment.java @@ -71,7 +71,6 @@ public class EnhancedBrowseFragment extends Fragment implements IRowLoader { protected static final int BY_LETTER = 0; protected static final int GENRES = 1; - protected static final int PERSONS = 3; protected static final int SUGGESTED = 4; protected static final int GRID = 6; protected static final int ALBUMS = 7; @@ -388,23 +387,25 @@ public class EnhancedBrowseFragment extends Fragment implements IRowLoader { mFolder.setDisplayPreferencesId(mFolder.getId() + "AR"); Intent artistsIntent = new Intent(getActivity(), GenericGridActivity.class); - artistsIntent.putExtra(Extras.Folder, serializer.getValue().SerializeToString(mFolder)); - artistsIntent.putExtra(Extras.IncludeType, "AlbumArtist"); + artistsIntent.putExtra(GroupedItemsActivity.EXTRA_FOLDER, serializer.getValue().SerializeToString(mFolder)); + artistsIntent.putExtra(GroupedItemsActivity.EXTRA_INCLUDE_TYPE, "AlbumArtist"); requireActivity().startActivity(artistsIntent); break; case BY_LETTER: - Intent intent = new Intent(getActivity(), ByLetterActivity.class); - intent.putExtra(Extras.Folder, serializer.getValue().SerializeToString(mFolder)); - intent.putExtra(Extras.IncludeType, itemTypeString); + Intent letterIntent = new Intent(getActivity(), GroupedItemsActivity.class); + letterIntent.putExtra(GroupedItemsActivity.EXTRA_GROUPING_TYPE, GroupedItemsActivity.GroupingType.LETTER.toString()); + letterIntent.putExtra(GroupedItemsActivity.EXTRA_FOLDER, serializer.getValue().SerializeToString(mFolder)); + letterIntent.putExtra(GroupedItemsActivity.EXTRA_INCLUDE_TYPE, itemTypeString); - requireActivity().startActivity(intent); + requireActivity().startActivity(letterIntent); break; case GENRES: - Intent genreIntent = new Intent(getActivity(), ByGenreActivity.class); - genreIntent.putExtra(Extras.Folder, serializer.getValue().SerializeToString(mFolder)); - genreIntent.putExtra(Extras.IncludeType, itemTypeString); + Intent genreIntent = new Intent(getActivity(), GroupedItemsActivity.class); + genreIntent.putExtra(GroupedItemsActivity.EXTRA_GROUPING_TYPE, GroupedItemsActivity.GroupingType.GENRE.toString()); + genreIntent.putExtra(GroupedItemsActivity.EXTRA_FOLDER, serializer.getValue().SerializeToString(mFolder)); + genreIntent.putExtra(GroupedItemsActivity.EXTRA_INCLUDE_TYPE, itemTypeString); requireActivity().startActivity(genreIntent); break; @@ -417,14 +418,6 @@ public class EnhancedBrowseFragment extends Fragment implements IRowLoader { requireActivity().startActivity(suggIntent); break; - case PERSONS: - Intent personIntent = new Intent(getActivity(), BrowsePersonsActivity.class); - personIntent.putExtra(Extras.Folder, serializer.getValue().SerializeToString(mFolder)); - personIntent.putExtra(Extras.IncludeType, itemTypeString); - - requireActivity().startActivity(personIntent); - break; - case FAVSONGS: Intent favIntent = new Intent(getActivity(), ItemListActivity.class); favIntent.putExtra("ItemId", ItemListActivity.FAV_SONGS); diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/GroupedItemsActivity.kt b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/GroupedItemsActivity.kt new file mode 100644 index 000000000..4e3bbd580 --- /dev/null +++ b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/GroupedItemsActivity.kt @@ -0,0 +1,32 @@ +package org.jellyfin.androidtv.ui.browsing + +import android.os.Bundle +import androidx.fragment.app.FragmentActivity +import androidx.fragment.app.commit +import androidx.fragment.app.replace + +class GroupedItemsActivity : FragmentActivity() { + private val groupingType get() = intent.extras?.getString(EXTRA_GROUPING_TYPE)?.let { GroupingType.valueOf(it) } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + supportFragmentManager.commit { + when (groupingType) { + GroupingType.GENRE -> replace(android.R.id.content) + GroupingType.LETTER -> replace(android.R.id.content) + } + } + } + + enum class GroupingType { + GENRE, + LETTER, + } + + companion object { + const val EXTRA_GROUPING_TYPE = "type_grouping" + const val EXTRA_FOLDER = "folder" + const val EXTRA_INCLUDE_TYPE = "type_include" + } +} diff --git a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/StdBrowseFragment.java b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/StdBrowseFragment.java index 8f23c8bd3..0a0737074 100644 --- a/app/src/main/java/org/jellyfin/androidtv/ui/browsing/StdBrowseFragment.java +++ b/app/src/main/java/org/jellyfin/androidtv/ui/browsing/StdBrowseFragment.java @@ -3,9 +3,7 @@ package org.jellyfin.androidtv.ui.browsing; import static org.koin.java.KoinJavaComponent.inject; import android.os.Bundle; -import android.os.Handler; import android.view.Gravity; -import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; @@ -25,7 +23,6 @@ import androidx.leanback.widget.Row; import androidx.leanback.widget.RowPresenter; import org.jellyfin.androidtv.R; -import org.jellyfin.androidtv.constant.CustomMessage; import org.jellyfin.androidtv.constant.QueryType; import org.jellyfin.androidtv.data.model.DataRefreshService; import org.jellyfin.androidtv.data.querying.ViewQuery; @@ -38,10 +35,6 @@ import org.jellyfin.androidtv.ui.itemhandling.ItemLauncher; import org.jellyfin.androidtv.ui.itemhandling.ItemRowAdapter; import org.jellyfin.androidtv.ui.presentation.CardPresenter; import org.jellyfin.androidtv.ui.presentation.PositionableListRowPresenter; -import org.jellyfin.androidtv.ui.shared.BaseActivity; -import org.jellyfin.androidtv.ui.shared.IKeyListener; -import org.jellyfin.androidtv.ui.shared.IMessageListener; -import org.jellyfin.androidtv.util.KeyProcessor; import org.jellyfin.androidtv.util.Utils; import org.jellyfin.apiclient.interaction.EmptyResponse; import org.jellyfin.apiclient.model.dto.BaseItemType; @@ -56,7 +49,6 @@ import timber.log.Timber; public class StdBrowseFragment extends BrowseSupportFragment implements IRowLoader { protected String MainTitle; protected boolean ShowBadge = true; - protected BaseActivity mActivity; protected BaseRowItem mCurrentItem; protected ListRow mCurrentRow; protected CompositeClickedListener mClickedListener = new CompositeClickedListener(); @@ -74,8 +66,6 @@ public class StdBrowseFragment extends BrowseSupportFragment implements IRowLoad public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (getActivity() instanceof BaseActivity) mActivity = (BaseActivity)getActivity(); - backgroundService.getValue().attach(requireActivity()); setupUIElements(); @@ -111,7 +101,6 @@ public class StdBrowseFragment extends BrowseSupportFragment implements IRowLoad //Re-retrieve anything that needs it but delay slightly so we don't take away gui landing if (mRowsAdapter != null) { refreshCurrentItem(); - refreshRows(); } } else { @@ -119,22 +108,6 @@ public class StdBrowseFragment extends BrowseSupportFragment implements IRowLoad } } - protected void refreshRows() { - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - if (mActivity == null || mActivity.isFinishing()) return; - for (int i = 0; i < mRowsAdapter.size(); i++) { - if (mRowsAdapter.get(i) instanceof ListRow) { - if (((ListRow) mRowsAdapter.get(i)).getAdapter() instanceof ItemRowAdapter) { - ((ItemRowAdapter) ((ListRow) mRowsAdapter.get(i)).getAdapter()).ReRetrieveIfNeeded(); - } - } - } - } - },1500); - } - public void loadRows(List rows) { mRowsAdapter = new ArrayObjectAdapter(new PositionableListRowPresenter()); mCardPresenter = new CardPresenter(); @@ -246,27 +219,6 @@ public class StdBrowseFragment extends BrowseSupportFragment implements IRowLoad setOnItemViewSelectedListener(mSelectedListener); mSelectedListener.registerListener(new ItemViewSelectedListener()); - - if (mActivity != null) { - mActivity.registerKeyListener(new IKeyListener() { - @Override - public boolean onKeyUp(int key, KeyEvent event) { - return KeyProcessor.HandleKey(key, mCurrentItem, mActivity); - } - }); - - mActivity.registerMessageListener(new IMessageListener() { - @Override - public void onMessageReceived(CustomMessage message) { - switch (message) { - - case RefreshCurrentItem: - refreshCurrentItem(); - break; - } - } - }); - } } private void refreshCurrentItem() {