package com.uservoice.uservoicesdk.activity; import android.annotation.SuppressLint; import android.app.ActionBar; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.TextView; import com.uservoice.uservoicesdk.R; import com.uservoice.uservoicesdk.Session; import com.uservoice.uservoicesdk.babayaga.Babayaga; import com.uservoice.uservoicesdk.model.Article; import com.uservoice.uservoicesdk.model.Topic; import com.uservoice.uservoicesdk.rest.Callback; import com.uservoice.uservoicesdk.ui.LoadAllAdapter; import java.util.ArrayList; import java.util.List; public class TopicActivity extends BaseListActivity implements SearchActivity { @SuppressLint({"InlinedApi", "NewApi"}) protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (hasActionBar()) { ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); actionBar.setListNavigationCallbacks(new ArrayAdapter<Topic>(this, android.R.layout.simple_spinner_dropdown_item, Session.getInstance().getTopics()) { @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); ((TextView) view).setTextColor(Color.WHITE); return view; } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { View view = super.getDropDownView(position, convertView, parent); ((TextView) view).setTextColor(Color.WHITE); return view; } }, new ActionBar.OnNavigationListener() { @Override @SuppressWarnings("unchecked") public boolean onNavigationItemSelected(int itemPosition, long itemId) { Topic topic = Session.getInstance().getTopics().get(itemPosition); Session.getInstance().setTopic(topic); ((LoadAllAdapter<Article>) getListAdapter()).reload(); return true; } }); actionBar.setSelectedNavigationItem(Session.getInstance().getTopics().indexOf(Session.getInstance().getTopic())); } setTitle(null); getListView().setDivider(null); setListAdapter(new LoadAllAdapter<Article>(this, R.layout.uv_text_item, new ArrayList<Article>()) { @Override protected void loadPage(int page, Callback<List<Article>> callback) { Topic topic = Session.getInstance().getTopic(); if (topic == Topic.ALL_ARTICLES) { Article.loadAll(callback); } else { Article.loadForTopic(topic.getId(), callback); } } @Override protected void customizeLayout(View view, Article model) { TextView text = (TextView) view.findViewById(R.id.uv_text); TextView text2 = (TextView) view.findViewById(R.id.uv_text2); text.setText(model.getTitle()); if (Session.getInstance().getTopic() == Topic.ALL_ARTICLES && model.getTopicName() != null) { text2.setVisibility(View.VISIBLE); text2.setText(model.getTopicName()); } else { text2.setVisibility(View.GONE); } } }); getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Article article = (Article) getListAdapter().getItem(position); Session.getInstance().setArticle(article); startActivity(new Intent(TopicActivity.this, ArticleActivity.class)); } }); Babayaga.track(Babayaga.Event.VIEW_TOPIC, Session.getInstance().getTopic().getId()); } @Override public void hideSearch() { super.hideSearch(); getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.uv_portal, menu); setupScopedSearch(menu); return true; } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { if (item.getItemId() == R.id.uv_action_contact) { startActivity(new Intent(this, ContactActivity.class)); return true; } return super.onMenuItemSelected(featureId, item); } }