blob: 27c642a064974aca9708a05dcda92664fa74d6ef [file] [log] [blame]
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.frameworktest.focus;
import com.android.frameworktest.R;
import com.google.android.collect.Lists;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.view.LayoutInflater;
import android.webkit.WebView;
import java.util.List;
public class ListWithMailMessages extends ListActivity {
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.list_with_button_above);
List<MailMessage> messages = Lists.newArrayList();
messages.add(new MailMessage("hello!", "<p>this is a test "
+ "message, with a bunch of text and stuff.</p>", true));
// String android = "android";
String android = "<a href=\"www.android.com\">android</a>";
String sentance = "all work and no play makes "
+ android + " a dull... robot!";
StringBuffer longBody = new StringBuffer().append("<ol>\n");
for (int i = 0; i < 12; i++) {
longBody.append("<li>").append(sentance).append("</li>");
}
longBody.append("</ol>");
messages.add(new MailMessage("hello2!", longBody.toString(), true));
messages.add(new MailMessage("phone number?", "<p>hey man, what's ur "
+ "contact info? i need to mail you this photo of my two"
+ " cats, they've gotten soooo fat!</p>", true));
setListAdapter(new MyAdapter(this, R.layout.mail_message, messages));
getListView().setItemsCanFocus(true);
}
/**
* POJO mail message.
*/
static class MailMessage {
private String mSubject;
private String mBody;
private boolean mFocusable;
public MailMessage(String subject, String body) {
this(subject, body, false);
}
public MailMessage(String subject, String body, boolean focusable) {
mSubject = subject;
mBody = body;
mFocusable = focusable;
}
public String getSubject() {
return mSubject;
}
public void setSubject(String subject) {
this.mSubject = subject;
}
public String getBody() {
return mBody;
}
public void setBody(String body) {
this.mBody = body;
}
public boolean isFocusable() {
return mFocusable;
}
public void setFocusable(boolean focusable) {
mFocusable = focusable;
}
}
public static class MyAdapter extends ArrayAdapter<MailMessage> {
public MyAdapter(Context context, int resource,
List<MailMessage> objects) {
super(context, resource, objects);
}
final String mimeType = "text/html";
final String encoding = "utf-8";
@Override
public View getView(int position, View convertView, ViewGroup parent) {
MailMessage message = getItem(position);
LayoutInflater inflater = (LayoutInflater)
getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout messageUi = (LinearLayout) inflater
.inflate(R.layout.mail_message, null);
TextView subject = (TextView) messageUi.findViewById(R.id.subject);
subject.setText(message.getSubject());
WebView body = (WebView) messageUi.findViewById(R.id.body);
body.loadData(message.getBody(), mimeType, encoding);
// body.setText(message.getBody());
body.setFocusable(message.isFocusable());
return messageUi;
}
}
}