Skip to content
This repository has been archived by the owner on Nov 7, 2019. It is now read-only.

Commit

Permalink
Minor UI modifications to the wave list activity.
Browse files Browse the repository at this point in the history
Also, start to add a context menu for each wave.
  • Loading branch information
Pablo Polvorin committed Jul 29, 2010
1 parent 165b384 commit 0c5198c
Show file tree
Hide file tree
Showing 5 changed files with 120 additions and 26 deletions.
4 changes: 2 additions & 2 deletions android-gui/AndroidManifest.xml
Expand Up @@ -2,8 +2,8 @@
<manifest package="net.processone.awc" android:versionCode="1"
android:versionName="1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="3" />
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:name="OneWave">
<application android:label="@string/app_name"
android:name="OneWave" android:icon="@drawable/wave_icon">
<activity android:label="@string/app_name"
android:launchMode="singleInstance" android:name="OAuthRedirect">
<intent-filter>
Expand Down
58 changes: 38 additions & 20 deletions android-gui/res/layout/wavelist.xml
@@ -1,27 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_width="fill_parent">
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<LinearLayout android:id="@+id/waveItemRow"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView android:id="@+id/imgWave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/wave_icon"
/>
<TextView android:text="@+id/title" android:textStyle="bold"
android:layout_width="wrap_content" android:layout_weight="1"
android:textSize="20dip" android:layout_marginLeft="4dip"
android:id="@+id/titleWave" android:layout_height="fill_parent"
android:gravity="center_vertical">
</TextView>
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip">
<ImageView android:id="@+id/imgWave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="6dip"
android:src="@drawable/wave_icon"/>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="fill_parent">

<TextView android:text="@+id/title"
android:layout_width="fill_parent"
android:layout_weight="1"
android:layout_height="0dip"
android:gravity="center_vertical"
android:ellipsize="marquee"
android:singleLine="true"
android:id="@+id/titleWave" />
<TextView android:id="@+id/participants"
android:layout_width="fill_parent"
android:layout_weight="1"
android:layout_height="0dip"
android:gravity="center_vertical"
android:ellipsize="marquee"
android:singleLine="true"/>


</LinearLayout>
</LinearLayout>
<ImageView android:id="@+id/throbber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_popup_sync_1"
android:visibility="gone"
/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_popup_sync_1"
android:visibility="gone"/>
</FrameLayout>

5 changes: 5 additions & 0 deletions android-gui/res/menu/wave_context_menu.xml
@@ -0,0 +1,5 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@+id/itemMarkAsRead" android:title="@string/mark_as_read"></item>
<item android:id="@+id/itemFollowWave" android:title="@string/follow_wave"></item>
<item android:id="@+id/itemRemoveFromInbox" android:title="@string/removeFromInbox"></item>
<item android:id="@+id/itemView" android:title="@string/view_wave"></item>
</menu>
6 changes: 5 additions & 1 deletion android-gui/res/values/strings.xml
@@ -1,5 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="view_wave">Open</string>
<string name="removeFromInbox">Remove from Inbox</string>
<string name="follow_wave">Follows</string>
<string name="mark_as_read">Mark as Read</string>
<string name="hello">Hello World, OauthTest!</string>
<string name="app_name">oauth-test</string>
<string name="app_name">OneWave for Android</string>
</resources>
73 changes: 70 additions & 3 deletions android-gui/src/net/processone/awc/WaveList.java
@@ -1,30 +1,40 @@
package net.processone.awc;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import android.app.Dialog;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.text.Html;
import android.util.Log;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemLongClickListener;

import com.commonsware.cwac.endless.EndlessAdapter;
import com.google.wave.api.SearchResult;
Expand Down Expand Up @@ -57,8 +67,10 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

ow = (OneWave) getApplication();

showDialog(PROGRESS_DIALOG);

this.registerForContextMenu(getListView()); // context menu, activated by long pressing
handler = new Handler() {
public void handleMessage(Message msg) {
dismissDialog(PROGRESS_DIALOG);
Expand All @@ -72,8 +84,40 @@ public void handleMessage(Message msg) {
};

}


/**
* This is for creating context menu of the items in the wave list.
* remove form inbox, show, reply? etc.
*/
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.wave_context_menu, menu);
Log.i(TAG, menuInfo.getClass().toString());
}

/**
* User selects one option of the conext menu
*/
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.itemFollowWave:
return true;
case R.id.itemRemoveFromInbox:
return true;
case R.id.itemMarkAsRead:
return true;
case R.id.itemView:
return true;
default:
return super.onContextItemSelected(item);
}
}


@Override
protected void onResume() {
super.onResume();
Expand Down Expand Up @@ -161,8 +205,29 @@ public View getView(int position, View convertView, ViewGroup parent) {
// wave.getSnippet();


TextView t = (TextView) view.findViewById(R.id.titleWave);
t.setText(wave.getTitle());
TextView title = (TextView) view.findViewById(R.id.titleWave);

if (wave.getUnreadCount() > 0) {
//Has new content,
title.setText((Html.fromHtml("<strong>" + wave.getTitle() + "</strong>")));
} else {
title.setText(wave.getTitle());
}
TextView participants = (TextView) view.findViewById(R.id.participants);
StringBuilder b = new StringBuilder("<small>");
Iterator<String> it = wave.getParticipants().iterator();
while(it.hasNext()) { //keep only the username
String contact = it.next();
int i = contact.indexOf("@");
if (i >= 0) {
contact = contact.substring(0, i);
}
b.append(contact);
if (it.hasNext())
b.append(",");
}

participants.setText(Html.fromHtml(b.append("</small>").toString()) );
return view;
}
}
Expand Down Expand Up @@ -224,6 +289,8 @@ protected View getPendingView(ViewGroup parent) {
protected void rebindPendingView(int position, View row) {
View child=row.findViewById(R.id.titleWave);
child.setVisibility(View.VISIBLE);
//MMM... this is probably wrong.. but didn't manage to test it. Probably it must be
// analog to what WaveAdapter do with his view
((TextView)child).setText(getWrappedAdapter().getItem(position).toString());
child=row.findViewById(R.id.throbber);
child.setVisibility(View.GONE);
Expand Down

0 comments on commit 0c5198c

Please sign in to comment.