mirror of
https://github.com/jellyfin/jellyfin-androidtv.git
synced 2026-10-26 16:45:23 +00:00
Pull settings row into home page
This commit is contained in:
1 parent
7a9643566f
commit
7fae856b93
2 files changed
+100
-47
No files matched your search
@@ -1,11 +1,28 @@
|
||||
package tv.mediabrowser.mediabrowsertv;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.support.v17.leanback.widget.ArrayObjectAdapter;
|
||||
import android.support.v17.leanback.widget.HeaderItem;
|
||||
import android.support.v17.leanback.widget.ListRow;
|
||||
import android.support.v17.leanback.widget.OnItemViewClickedListener;
|
||||
import android.support.v17.leanback.widget.Presenter;
|
||||
import android.support.v17.leanback.widget.Row;
|
||||
import android.support.v17.leanback.widget.RowPresenter;
|
||||
import android.view.Gravity;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import mediabrowser.apiinteraction.EmptyResponse;
|
||||
|
||||
/**
|
||||
* Created by Eric on 12/4/2014.
|
||||
*/
|
||||
public class HomeFragment extends StdBrowseFragment {
|
||||
private static final int GRID_ITEM_WIDTH = 200;
|
||||
private static final int GRID_ITEM_HEIGHT = 200;
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
@@ -13,4 +30,76 @@ public class HomeFragment extends StdBrowseFragment {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addAdditionalRows(ArrayObjectAdapter rowAdapter) {
|
||||
super.addAdditionalRows(rowAdapter);
|
||||
HeaderItem gridHeader = new HeaderItem(rowAdapter.size(), "SETTINGS", null);
|
||||
|
||||
GridItemPresenter mGridPresenter = new GridItemPresenter();
|
||||
ArrayObjectAdapter gridRowAdapter = new ArrayObjectAdapter(mGridPresenter);
|
||||
gridRowAdapter.add(getResources().getString(R.string.grid_view));
|
||||
gridRowAdapter.add(getResources().getString(R.string.error_fragment));
|
||||
gridRowAdapter.add(getResources().getString(R.string.personal_settings));
|
||||
gridRowAdapter.add("Logout " + TvApp.getApplication().getCurrentUser().getName());
|
||||
rowAdapter.add(new ListRow(gridHeader, gridRowAdapter));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setupEventListeners() {
|
||||
super.setupEventListeners();
|
||||
setOnItemViewClickedListener(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 String) {
|
||||
if (((String) item).indexOf(getString(R.string.error_fragment)) >= 0) {
|
||||
Intent intent = new Intent(getActivity(), BrowseErrorActivity.class);
|
||||
startActivity(intent);
|
||||
} else if (((String) item).indexOf("Logout ") >= 0) {
|
||||
apiClient = TvApp.getApplication().getConnectionManager().GetApiClient(TvApp.getApplication().getCurrentUser());
|
||||
apiClient.Logout(new EmptyResponse() {
|
||||
@Override
|
||||
public void onResponse() {
|
||||
super.onResponse();
|
||||
Intent intent = new Intent(getActivity(), StartupActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
} else
|
||||
{
|
||||
Toast.makeText(getActivity(), ((String) item), Toast.LENGTH_SHORT)
|
||||
.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class GridItemPresenter extends Presenter {
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(ViewGroup parent) {
|
||||
TextView view = new TextView(parent.getContext());
|
||||
view.setLayoutParams(new ViewGroup.LayoutParams(GRID_ITEM_WIDTH, GRID_ITEM_HEIGHT));
|
||||
view.setFocusable(true);
|
||||
view.setFocusableInTouchMode(true);
|
||||
view.setBackgroundColor(getResources().getColor(R.color.default_background));
|
||||
view.setTextColor(Color.WHITE);
|
||||
view.setGravity(Gravity.CENTER);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(ViewHolder viewHolder, Object item) {
|
||||
((TextView) viewHolder.view).setText((String) item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUnbindViewHolder(ViewHolder viewHolder) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+11
-47
@@ -38,6 +38,7 @@ import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Adapter;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
@@ -52,6 +53,7 @@ import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import mediabrowser.apiinteraction.ApiClient;
|
||||
import mediabrowser.apiinteraction.EmptyResponse;
|
||||
import mediabrowser.model.dto.BaseItemDto;
|
||||
|
||||
|
||||
@@ -59,10 +61,6 @@ public class StdBrowseFragment extends BrowseFragment {
|
||||
private static final String TAG = "StdBrowseFragment";
|
||||
|
||||
private static final int BACKGROUND_UPDATE_DELAY = 300;
|
||||
private static final int GRID_ITEM_WIDTH = 200;
|
||||
private static final int GRID_ITEM_HEIGHT = 200;
|
||||
private static final int NUM_ROWS = 6;
|
||||
private static final int NUM_COLS = 15;
|
||||
|
||||
protected String MainTitle;
|
||||
protected ApiClient apiClient;
|
||||
@@ -105,7 +103,7 @@ public class StdBrowseFragment extends BrowseFragment {
|
||||
}
|
||||
}
|
||||
|
||||
private void loadRows() {
|
||||
protected void loadRows() {
|
||||
|
||||
mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
|
||||
mCardPresenter = new CardPresenter();
|
||||
@@ -126,20 +124,16 @@ public class StdBrowseFragment extends BrowseFragment {
|
||||
// mRowsAdapter.add(new ListRow(header, listRowAdapter));
|
||||
// }
|
||||
|
||||
HeaderItem gridHeader = new HeaderItem(i, "SETTINGS", null);
|
||||
|
||||
GridItemPresenter mGridPresenter = new GridItemPresenter();
|
||||
ArrayObjectAdapter gridRowAdapter = new ArrayObjectAdapter(mGridPresenter);
|
||||
gridRowAdapter.add(getResources().getString(R.string.grid_view));
|
||||
gridRowAdapter.add(getResources().getString(R.string.error_fragment));
|
||||
gridRowAdapter.add(getResources().getString(R.string.personal_settings));
|
||||
gridRowAdapter.add("Logout " + TvApp.getApplication().getCurrentUser().getName());
|
||||
mRowsAdapter.add(new ListRow(gridHeader, gridRowAdapter));
|
||||
|
||||
addAdditionalRows(mRowsAdapter);
|
||||
|
||||
setAdapter(mRowsAdapter);
|
||||
|
||||
}
|
||||
|
||||
protected void addAdditionalRows(ArrayObjectAdapter rowAdapter) {
|
||||
|
||||
}
|
||||
|
||||
private void prepareBackgroundManager() {
|
||||
|
||||
BackgroundManager backgroundManager = BackgroundManager.getInstance(getActivity());
|
||||
@@ -152,7 +146,7 @@ public class StdBrowseFragment extends BrowseFragment {
|
||||
getActivity().getWindowManager().getDefaultDisplay().getMetrics(mMetrics);
|
||||
}
|
||||
|
||||
private void setupUIElements() {
|
||||
protected void setupUIElements() {
|
||||
setBadgeDrawable(getActivity().getResources().getDrawable(
|
||||
R.drawable.mblogo));
|
||||
setTitle(MainTitle); // Badge, when set, takes precedent
|
||||
@@ -166,7 +160,7 @@ public class StdBrowseFragment extends BrowseFragment {
|
||||
setSearchAffordanceColor(getResources().getColor(R.color.search_opaque));
|
||||
}
|
||||
|
||||
private void setupEventListeners() {
|
||||
protected void setupEventListeners() {
|
||||
setOnSearchClickedListener(new View.OnClickListener() {
|
||||
|
||||
@Override
|
||||
@@ -196,14 +190,6 @@ public class StdBrowseFragment extends BrowseFragment {
|
||||
((ImageCardView) itemViewHolder.view).getMainImageView(),
|
||||
DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
|
||||
getActivity().startActivity(intent, bundle);
|
||||
} else if (item instanceof String) {
|
||||
if (((String) item).indexOf(getString(R.string.error_fragment)) >= 0) {
|
||||
Intent intent = new Intent(getActivity(), BrowseErrorActivity.class);
|
||||
startActivity(intent);
|
||||
} else {
|
||||
Toast.makeText(getActivity(), ((String) item), Toast.LENGTH_SHORT)
|
||||
.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -271,27 +257,5 @@ public class StdBrowseFragment extends BrowseFragment {
|
||||
}
|
||||
}
|
||||
|
||||
private class GridItemPresenter extends Presenter {
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(ViewGroup parent) {
|
||||
TextView view = new TextView(parent.getContext());
|
||||
view.setLayoutParams(new ViewGroup.LayoutParams(GRID_ITEM_WIDTH, GRID_ITEM_HEIGHT));
|
||||
view.setFocusable(true);
|
||||
view.setFocusableInTouchMode(true);
|
||||
view.setBackgroundColor(getResources().getColor(R.color.default_background));
|
||||
view.setTextColor(Color.WHITE);
|
||||
view.setGravity(Gravity.CENTER);
|
||||
return new ViewHolder(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(ViewHolder viewHolder, Object item) {
|
||||
((TextView) viewHolder.view).setText((String) item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUnbindViewHolder(ViewHolder viewHolder) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user