This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / tools / hermes-voice / android / src / us / lassul / assist / SessionsActivity.java
3.5 kB 95 lines
1package us.lassul.assist; 2 3import android.app.Activity; 4import android.content.Intent; 5import android.os.Bundle; 6import android.text.format.DateUtils; 7import android.view.Gravity; 8import android.view.View; 9import android.view.ViewGroup; 10import android.widget.AdapterView; 11import android.widget.ArrayAdapter; 12import android.widget.FrameLayout; 13import android.widget.ListView; 14import android.widget.TextView; 15import java.util.List; 16 17/** All conversations, newest first; one opens its transcript. */ 18public class SessionsActivity extends Activity { 19 private ListView list; 20 private final Runnable redraw = new Runnable() { 21 @Override 22 public void run() { 23 refresh(); 24 } 25 }; 26 27 @Override 28 protected void onCreate(Bundle state) { 29 super.onCreate(state); 30 getActionBar().setDisplayHomeAsUpEnabled(true); 31 list = new ListView(this); 32 list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 33 @Override 34 public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 35 Conversation conversation = (Conversation) parent.getItemAtPosition(position); 36 startActivity(new Intent(SessionsActivity.this, TranscriptActivity.class) 37 .putExtra(TranscriptActivity.SESSION, conversation.hermesSession)); 38 } 39 }); 40 TextView empty = new TextView(this); 41 empty.setText("No conversations yet."); 42 empty.setTextColor(Conversation.DIM); 43 empty.setGravity(Gravity.CENTER); 44 FrameLayout root = new FrameLayout(this); 45 root.addView(list); 46 root.addView(empty); 47 list.setEmptyView(empty); 48 Ui.fitBars(this, root, 0); 49 setContentView(root); 50 } 51 52 @Override 53 protected void onResume() { 54 super.onResume(); 55 Live.watch(redraw); 56 refresh(); 57 } 58 59 @Override 60 protected void onPause() { 61 Live.unwatch(redraw); 62 super.onPause(); 63 } 64 65 @Override 66 public boolean onNavigateUp() { 67 finish(); 68 return true; 69 } 70 71 private void refresh() { 72 List<Conversation> conversations = Conversation.all(this); 73 Conversation current = Conversation.current(this); 74 final String currentSession = current == null ? null : current.hermesSession; 75 list.setAdapter(new ArrayAdapter<Conversation>( 76 this, android.R.layout.simple_list_item_2, android.R.id.text1, conversations) { 77 @Override 78 public View getView(int position, View convertView, ViewGroup parent) { 79 View row = super.getView(position, convertView, parent); 80 Conversation conversation = getItem(position); 81 String when = DateUtils.formatDateTime(getContext(), conversation.started, 82 DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_TIME 83 | DateUtils.FORMAT_ABBREV_MONTH); 84 ((TextView) row.findViewById(android.R.id.text1)).setText( 85 conversation.hermesSession.equals(currentSession) 86 ? when + " · current" 87 : when); 88 TextView title = row.findViewById(android.R.id.text2); 89 title.setText(conversation.title()); 90 title.setMaxLines(2); 91 return row; 92 } 93 }); 94 } 95}