package com.felkertech.cumulustv.tv.activities; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.icu.util.RangeValueIterator; import android.os.Bundle; import android.support.v17.leanback.widget.VerticalGridView; import android.support.v7.widget.RecyclerView; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.TextView; import android.widget.Toast; import com.felkertech.cumulustv.model.RecyclerViewItem; import com.felkertech.cumulustv.ui.RecyclerViewColumnAdapter; import com.felkertech.cumulustv.utils.ActivityUtils; import com.felkertech.n.cumulustv.R; import com.felkertech.cumulustv.exceptions.PlaybackIssueException; import com.felkertech.cumulustv.model.JsonChannel; import org.json.JSONException; /** * Activity that shows a simple side panel UI. * * @author Nick * @version 2016-09-02 */ public class PlaybackQuickSettingsActivity extends Activity { public static final String EXTRA_JSON_CHANNEL = "JSON_CHANNEL"; private VerticalGridView mAppLinkMenuList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getActionBar() != null) { getActionBar().hide(); } setContentView(R.layout.activity_quick_settings); RecyclerViewItem[] quickSettings = new RecyclerViewItem[3]; try { final JsonChannel jsonChannel = new JsonChannel.Builder(getIntent() .getStringExtra(EXTRA_JSON_CHANNEL)).build(); // Set the title ((TextView) findViewById(R.id.title)).setText(jsonChannel.getName()); // Open this channel in the editor quickSettings[0] = new RecyclerViewItem( getString(R.string.edit_channel_name, jsonChannel.getName())) { @Override public void onClick() { ActivityUtils.editChannel(PlaybackQuickSettingsActivity.this, jsonChannel.getMediaUrl()); } }; // Open CumulusTV quickSettings[1] = new RecyclerViewItem(getString(R.string.open_cumulus_tv)) { @Override public void onClick() { startActivity(new Intent(PlaybackQuickSettingsActivity.this, ActivityUtils.getMainActivity(PlaybackQuickSettingsActivity.this))); } }; // Sends a crash report quickSettings[2] = new RecyclerViewItem(getString(R.string.report_playback_issue)) { @Override public void onClick() { throw new PlaybackIssueException("Issue found with playback: " + jsonChannel.toString()); } }; } catch (JSONException e) { Toast.makeText(this, R.string.toast_error_sorry, Toast.LENGTH_SHORT).show(); finish(); return; } // Sets the size and position of dialog activity. WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); layoutParams.gravity = Gravity.END | Gravity.CENTER_VERTICAL; layoutParams.width = getResources().getDimensionPixelSize(R.dimen.side_panel_width); layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT; getWindow().setAttributes(layoutParams); mAppLinkMenuList = (VerticalGridView) findViewById(R.id.list); mAppLinkMenuList.setAdapter(new AppLinkMenuAdapter(this, quickSettings)); } public static Intent getIntent(Context context, JsonChannel jsonChannel) { Intent intent = new Intent(context, PlaybackQuickSettingsActivity.class); intent.putExtra(EXTRA_JSON_CHANNEL, jsonChannel.toString()); return intent; } /** * Adapter class that provides the app link menu list. */ private class AppLinkMenuAdapter extends RecyclerViewColumnAdapter { public AppLinkMenuAdapter(Activity activities, RecyclerViewItem[] quickSettings) { super(activities, quickSettings); } @Override public RecyclerView.ViewHolder createNewViewHolder(View view) { return new ViewHolder(view); } } private class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View itemView) { super(itemView); } } }