1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-08-13 17:03:48 -04:00

Introduced setting to change the font size of the message preview in the message list.

Fixes issue 2788
This commit is contained in:
cketti 2010-12-30 00:52:00 +00:00
parent 605a0bdc93
commit a1e059e871
6 changed files with 65 additions and 29 deletions

View File

@ -79,7 +79,7 @@
android:layout_marginRight="0dip"
android:singleLine="false"
android:bufferType="spannable"
android:textColor="?android:attr/textColorPrimary"
android:textColor="?android:attr/textColorTertiary"
android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>

View File

@ -124,7 +124,7 @@
<string name="folder_context_menu_title">Folder options</string>
<string name="general_no_subject">(No subject)</string> <!-- Shown in place of the subject when a message has no subject. Showing this in parentheses is customary. -->
<string name="general_no_date">No date</string>
<string name="general_no_sender">No sender</string>
<string name="status_loading">Polling</string>
<string name="status_loading_folder">(Poll <xliff:g id="folder">%s</xliff:g><xliff:g id="progress">%s</xliff:g>)</string>
@ -937,6 +937,7 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin
<string name="font_size_message_list_subject">Subject</string>
<string name="font_size_message_list_sender">Sender</string>
<string name="font_size_message_list_date">Date</string>
<string name="font_size_message_list_preview">Preview</string>
<string name="font_size_message_view">Messages</string>
<string name="font_size_message_view_sender">Sender</string>

View File

@ -80,6 +80,14 @@
android:entryValues="@array/font_values"
android:dialogTitle="@string/font_size_message_list_date" />
<ListPreference
android:persistent="false"
android:key="message_list_preview_font"
android:title="@string/font_size_message_list_preview"
android:entries="@array/font_entries"
android:entryValues="@array/font_values"
android:dialogTitle="@string/font_size_message_list_preview" />
</PreferenceScreen>
<PreferenceScreen
@ -134,7 +142,7 @@
android:entryValues="@array/font_values"
android:dialogTitle="@string/font_size_message_view_date" />
<ListPreference
<ListPreference
android:persistent="false"
android:key="message_view_additional_headers_font"
android:title="@string/font_size_message_view_additional_headers"

View File

@ -19,6 +19,7 @@ public class FontSizes
private static final String MESSAGE_LIST_SUBJECT = "fontSizeMessageListSubject";
private static final String MESSAGE_LIST_SENDER = "fontSizeMessageListSender";
private static final String MESSAGE_LIST_DATE = "fontSizeMessageListDate";
private static final String MESSAGE_LIST_PREVIEW = "fontSizeMessageListPreview";
private static final String MESSAGE_VIEW_SENDER = "fontSizeMessageViewSender";
private static final String MESSAGE_VIEW_TO = "fontSizeMessageViewTo";
private static final String MESSAGE_VIEW_CC = "fontSizeMessageViewCC";
@ -75,6 +76,11 @@ public class FontSizes
*/
private int messageListDate;
/**
* Font size of message preview in the message list activity.
*/
private int messageListPreview;
/**
* Font size of the message sender in the message view activity.
*/
@ -131,6 +137,7 @@ public class FontSizes
messageListSubject = SMALL;
messageListSender = SMALL;
messageListDate = SMALL;
messageListPreview = SMALL;
messageViewSender = SMALL;
messageViewTo = FONT_12DIP;
@ -157,6 +164,7 @@ public class FontSizes
editor.putInt(MESSAGE_LIST_SUBJECT, messageListSubject);
editor.putInt(MESSAGE_LIST_SENDER, messageListSender);
editor.putInt(MESSAGE_LIST_DATE, messageListDate);
editor.putInt(MESSAGE_LIST_PREVIEW, messageListPreview);
editor.putInt(MESSAGE_VIEW_SENDER, messageViewSender);
editor.putInt(MESSAGE_VIEW_TO, messageViewTo);
@ -184,6 +192,7 @@ public class FontSizes
messageListSubject = prefs.getInt(MESSAGE_LIST_SUBJECT, messageListSubject);
messageListSender = prefs.getInt(MESSAGE_LIST_SENDER, messageListSender);
messageListDate = prefs.getInt(MESSAGE_LIST_DATE, messageListDate);
messageListPreview = prefs.getInt(MESSAGE_LIST_PREVIEW, messageListPreview);
messageViewSender = prefs.getInt(MESSAGE_VIEW_SENDER, messageViewSender);
messageViewTo = prefs.getInt(MESSAGE_VIEW_TO, messageViewTo);
@ -265,6 +274,16 @@ public class FontSizes
this.messageListDate = messageListDate;
}
public int getMessageListPreview()
{
return messageListPreview;
}
public void setMessageListPreview(int messageListPreview)
{
this.messageListPreview = messageListPreview;
}
public int getMessageViewSender()
{
return messageViewSender;

View File

@ -13,14 +13,13 @@ import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.content.res.ColorStateList;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
import android.text.style.StyleSpan;
import android.text.style.TextAppearanceSpan;
import android.util.Log;
import android.util.TypedValue;
import android.view.animation.Animation;
@ -69,12 +68,9 @@ import com.fsck.k9.helper.Utility;
import com.fsck.k9.mail.Flag;
import com.fsck.k9.mail.Folder;
import com.fsck.k9.mail.Message;
import com.fsck.k9.mail.MessagingException;
import com.fsck.k9.mail.store.LocalStore;
import com.fsck.k9.mail.store.StorageManager;
import com.fsck.k9.mail.store.LocalStore.LocalFolder;
import com.fsck.k9.mail.store.LocalStore.LocalMessage;
import com.fsck.k9.view.ColorChip;
/**
@ -2665,7 +2661,7 @@ public class MessageList
if (mTouchView)
{
holder.preview.setLines(mPreviewLines);
holder.preview.setTextSize(TypedValue.COMPLEX_UNIT_DIP, mFontSizes.getMessageListSender());
holder.preview.setTextSize(TypedValue.COMPLEX_UNIT_DIP, mFontSizes.getMessageListPreview());
}
else
@ -2686,22 +2682,30 @@ public class MessageList
// hands us an invalid message
holder.chip.getBackground().setAlpha(0);
holder.subject.setText("No subject");
holder.subject.setText(getString(R.string.general_no_subject));
holder.subject.setTypeface(null, Typeface.NORMAL);
String noSender = getString(R.string.general_no_sender);
if (holder.preview != null)
{
holder.preview.setText("No sender");
holder.preview.setTypeface(null, Typeface.NORMAL);
holder.preview.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
holder.preview.setText(noSender, TextView.BufferType.SPANNABLE);
Spannable str = (Spannable) holder.preview.getText();
ColorStateList color = holder.subject.getTextColors();
ColorStateList linkColor = holder.subject.getLinkTextColors();
str.setSpan(new TextAppearanceSpan(null, Typeface.NORMAL, mFontSizes.getMessageListSender(), color, linkColor),
0,
noSender.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
}
else
{
holder.from.setText("No sender");
holder.from.setText(noSender);
holder.from.setTypeface(null, Typeface.NORMAL);
holder.from.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
}
holder.date.setText("No date");
holder.date.setText(getString(R.string.general_no_date));
//WARNING: Order of the next 2 lines matter
holder.position = -1;
@ -2777,21 +2781,19 @@ public class MessageList
* from.
*/
holder.preview.setText(new SpannableStringBuilder(recipientSigil(message)).append(message.sender).append(" ").append(message.message.getPreview()),
TextView.BufferType.SPANNABLE);
holder.preview.setText(new SpannableStringBuilder(recipientSigil(message))
.append(message.sender).append(" ").append(message.message.getPreview()),
TextView.BufferType.SPANNABLE);
Spannable str = (Spannable)holder.preview.getText();
// Create our span sections, and assign a format to each.
str.setSpan(new StyleSpan(senderTypeface),
0,
(message.sender.length()+1),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
str.setSpan(new ForegroundColorSpan(Color.rgb(128,128,128)), // TODO: How do I can specify the android.R.attr.textColorTertiary
(message.sender.length()+1),
str.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
// Create a span section for the sender, and assign the correct font size and weight.
ColorStateList color = holder.subject.getTextColors();
ColorStateList linkColor = holder.subject.getLinkTextColors();
str.setSpan(new TextAppearanceSpan(null, senderTypeface, mFontSizes.getMessageListSender(), color, linkColor),
0,
message.sender.length() + 1,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
}
else
{

View File

@ -29,6 +29,7 @@ public class FontSizeSettings extends K9PreferenceActivity
private static final String PREFERENCE_MESSAGE_LIST_SUBJECT_FONT = "message_list_subject_font";
private static final String PREFERENCE_MESSAGE_LIST_SENDER_FONT = "message_list_sender_font";
private static final String PREFERENCE_MESSAGE_LIST_DATE_FONT = "message_list_date_font";
private static final String PREFERENCE_MESSAGE_LIST_PREVIEW_FONT = "message_list_preview_font";
private static final String PREFERENCE_MESSAGE_VIEW_SENDER_FONT = "message_view_sender_font";
private static final String PREFERENCE_MESSAGE_VIEW_TO_FONT = "message_view_to_font";
private static final String PREFERENCE_MESSAGE_VIEW_CC_FONT = "message_view_cc_font";
@ -45,6 +46,7 @@ public class FontSizeSettings extends K9PreferenceActivity
private ListPreference mMessageListSubject;
private ListPreference mMessageListSender;
private ListPreference mMessageListDate;
private ListPreference mMessageListPreview;
private ListPreference mMessageViewSender;
private ListPreference mMessageViewTo;
private ListPreference mMessageViewCC;
@ -97,6 +99,9 @@ public class FontSizeSettings extends K9PreferenceActivity
mMessageListDate = setupListPreference(
PREFERENCE_MESSAGE_LIST_DATE_FONT,
Integer.toString(fontSizes.getMessageListDate()));
mMessageListPreview = setupListPreference(
PREFERENCE_MESSAGE_LIST_PREVIEW_FONT,
Integer.toString(fontSizes.getMessageListPreview()));
mMessageViewSender = setupListPreference(
PREFERENCE_MESSAGE_VIEW_SENDER_FONT,
@ -141,6 +146,7 @@ public class FontSizeSettings extends K9PreferenceActivity
fontSizes.setMessageListSubject(Integer.parseInt(mMessageListSubject.getValue()));
fontSizes.setMessageListSender(Integer.parseInt(mMessageListSender.getValue()));
fontSizes.setMessageListDate(Integer.parseInt(mMessageListDate.getValue()));
fontSizes.setMessageListPreview(Integer.parseInt(mMessageListPreview.getValue()));
fontSizes.setMessageViewSender(Integer.parseInt(mMessageViewSender.getValue()));
fontSizes.setMessageViewTo(Integer.parseInt(mMessageViewTo.getValue()));