package sample.actionscontentview; import sample.actionscontentview.adapter.EffectsAdapter; import shared.ui.actionscontentview.ActionsContentView; import android.annotation.SuppressLint; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.text.Html; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; public class EffectsExampleActivity extends FragmentActivity { private static final String STATE_POSITION = "state:layout_id"; private static final String SCHEME = "settings"; private static final String AUTHORITY = "effects"; public static final Uri URI = new Uri.Builder() .scheme(SCHEME) .authority(AUTHORITY) .build(); private EffectsAdapter mAdapter; private ListView viewList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mAdapter = new EffectsAdapter(this); final int selectedPosition; if (savedInstanceState != null) { selectedPosition = savedInstanceState.getInt(STATE_POSITION, 0); } else { selectedPosition = 0; } init(selectedPosition); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); final int position = viewList.getSelectedItemPosition(); if (position != ListView.INVALID_POSITION) outState.putInt(STATE_POSITION, position); } @SuppressLint("DefaultLocale") private void init(int position) { final int layoutId = mAdapter.getItem(position); setContentView(layoutId); final String titleText = getString(R.string.action_effects); final TextView title = (TextView) findViewById(android.R.id.text1); title.setText(titleText.toUpperCase()); final ActionsContentView viewActionsContentView = (ActionsContentView) findViewById(R.id.actionsContentView); viewActionsContentView.setOnActionsContentListener(new ActionsContentView.OnActionsContentListener() { @Override public void onContentStateChanged(ActionsContentView v, boolean isContentShown) { v.getContentController().setIgnoreTouchEvents(!isContentShown); } @Override public void onContentStateInAction(ActionsContentView v, boolean isContentShowing) { } }); final TextView name = (TextView) findViewById(R.id.effect_name); name.setText(mAdapter.getEffectTitle(position)); final TextView actions = (TextView) findViewById(R.id.actions_html); final String actionsHtml = mAdapter.getActionsHtml(position); if (!TextUtils.isEmpty(actionsHtml)) { findViewById(R.id.effect_actions_layout).setVisibility(View.VISIBLE); actions.setText(Html.fromHtml(actionsHtml)); } final TextView content = (TextView) findViewById(R.id.content_html); final String contentHtml = mAdapter.getContentHtml(position); if (!TextUtils.isEmpty(contentHtml)) { findViewById(R.id.effect_content_layout).setVisibility(View.VISIBLE); content.setText(Html.fromHtml(contentHtml)); } viewList = (ListView) findViewById(R.id.actions); viewList.setAdapter(mAdapter); viewList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View v, int position, long flags) { init(position); } }); } }