SubscriptionTopicsActivity.java (4758B)
1 /** 2 * 3 */ 4 package de.mtbnews.android; 5 6 import java.io.IOException; 7 8 import android.content.Intent; 9 import android.content.SharedPreferences; 10 import android.os.Bundle; 11 import android.preference.PreferenceManager; 12 import android.view.ContextMenu; 13 import android.view.MenuInflater; 14 import android.view.MenuItem; 15 import android.view.View; 16 import android.view.ContextMenu.ContextMenuInfo; 17 import android.view.View.OnCreateContextMenuListener; 18 import android.widget.AdapterView; 19 import android.widget.ListAdapter; 20 import android.widget.ListView; 21 import android.widget.Toast; 22 import android.widget.AdapterView.OnItemClickListener; 23 import de.mtbnews.android.adapter.ListEntryContentAdapter; 24 import de.mtbnews.android.tapatalk.TapatalkClient; 25 import de.mtbnews.android.tapatalk.TapatalkException; 26 import de.mtbnews.android.tapatalk.wrapper.ListHolder; 27 import de.mtbnews.android.tapatalk.wrapper.Topic; 28 import de.mtbnews.android.util.ServerAsyncTask; 29 import de.mtbnews.android.util.Utils; 30 31 /** 32 * Anzeige aller Beiträge eines Themas. 33 * 34 * @author dankert 35 * 36 */ 37 public class SubscriptionTopicsActivity extends EndlessListActivity<Topic> 38 { 39 private int totalSize; 40 private SharedPreferences prefs; 41 42 /** 43 * Diese Liste immer von oben beginnen. 44 * 45 * @see de.mtbnews.android.EndlessListActivity#isAutoScrolldown() 46 */ 47 @Override 48 protected boolean isAutoScrolldown() 49 { 50 return false; 51 } 52 53 @Override 54 protected void onCreate(Bundle savedInstanceState) 55 { 56 super.onCreate(savedInstanceState); 57 prefs = PreferenceManager.getDefaultSharedPreferences(this); 58 59 setTheme(((IBCApplication) getApplication()).themeResId); 60 setContentView(R.layout.listing); 61 62 ListAdapter adapter = new ListEntryContentAdapter(SubscriptionTopicsActivity.this, entries); 63 setListAdapter(adapter); 64 65 initialLoad(); 66 67 final ListView list = getListView(); 68 list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() 69 { 70 71 @Override 72 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 73 { 74 MenuInflater menuInflater = new MenuInflater(getApplication()); 75 menuInflater.inflate(R.menu.topic_context, menu); 76 77 } 78 }); 79 list.setOnItemClickListener(new OnItemClickListener() 80 { 81 @Override 82 public void onItemClick(AdapterView<?> parent, View view, int position, long id) 83 { 84 // int aktPosition = displayFrom + position + 1; 85 final Intent intent = new Intent(SubscriptionTopicsActivity.this, TopicActivity.class); 86 Topic topic = SubscriptionTopicsActivity.super.entries.get(position); 87 intent.putExtra(TopicActivity.TOPIC_ID, topic.getId()); 88 startActivity(intent); 89 } 90 }); 91 92 } 93 94 @Override 95 public boolean onContextItemSelected(MenuItem item) 96 { 97 AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); 98 99 switch (item.getItemId()) 100 { 101 case R.id.menu_goto_top: 102 103 final Intent intent = new Intent(SubscriptionTopicsActivity.this, TopicActivity.class); 104 intent.putExtra(TopicActivity.TOPIC_ID, super.entries.get(menuInfo.position).getId()); 105 intent.putExtra(EndlessListActivity.FIRST_POST, true); 106 startActivity(intent); 107 return true; 108 109 case R.id.menu_goto_bottom: 110 111 final Intent intent2 = new Intent(SubscriptionTopicsActivity.this, TopicActivity.class); 112 intent2.putExtra(TopicActivity.TOPIC_ID, super.entries.get(menuInfo.position).getId()); 113 intent2.putExtra(EndlessListActivity.LAST_POST, true); 114 startActivity(intent2); 115 return true; 116 } 117 118 return super.onContextItemSelected(item); 119 } 120 121 @Override 122 protected int getTotalSize() 123 { 124 return this.totalSize; 125 } 126 127 @Override 128 protected void loadEntries(final OnListLoadedListener<Topic> onListLoadedListener, final int from, final int to, 129 final boolean firstLoad) 130 { 131 new ServerAsyncTask(SubscriptionTopicsActivity.this, firstLoad ? R.string.waitingfor_subscription_topics 132 : R.string.waitingfor_loadmore) 133 { 134 private ListHolder<Topic> topicHolder; 135 136 @Override 137 protected void callServer() throws IOException, TapatalkException 138 { 139 TapatalkClient client = ((IBCApplication) getApplication()).getTapatalkClient(); 140 141 // Login. 142 if (Utils.loginExceeded(client)) 143 client.login(prefs.getString("username", ""), prefs.getString("password", "")); 144 145 topicHolder = client.getSubscribedTopics(from, to, false); 146 147 totalSize = topicHolder.totalCount; 148 } 149 150 protected void doOnSuccess() 151 { 152 // SubscriptionTopicsActivity.this.setTitle(topicHolder.getTitle()); 153 onListLoadedListener.listLoaded(this.topicHolder.getChildren()); 154 155 if (firstLoad) 156 if (prefs.getBoolean("show_hints", true)) 157 Toast.makeText(SubscriptionTopicsActivity.this, R.string.hint_press_long, Toast.LENGTH_SHORT) 158 .show(); 159 160 } 161 162 }.execute(); 163 } 164 }