mirror of
https://github.com/moparisthebest/k-9
synced 2025-02-25 15:11:52 -05:00
Provide user control over the account size measurement and search
result counting that are displayed in the Accouts Activity. These can both be slow, so some users may opt-out.
This commit is contained in:
parent
1d361d751e
commit
e22f3d2c1b
@ -635,6 +635,7 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin
|
|||||||
<string name="display_preferences">Global Preferences</string>
|
<string name="display_preferences">Global Preferences</string>
|
||||||
<string name="debug_preferences">Debugging</string>
|
<string name="debug_preferences">Debugging</string>
|
||||||
<string name="operational_preferences">Sync</string>
|
<string name="operational_preferences">Sync</string>
|
||||||
|
<string name="accountlist_preferences">Account List</string>
|
||||||
<string name="messagelist_preferences">Message Lists</string>
|
<string name="messagelist_preferences">Message Lists</string>
|
||||||
<string name="settings_theme_label">Theme</string>
|
<string name="settings_theme_label">Theme</string>
|
||||||
|
|
||||||
@ -683,6 +684,12 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin
|
|||||||
<string name="gestures_title">Gestures</string>
|
<string name="gestures_title">Gestures</string>
|
||||||
<string name="gestures_summary">Accept gesture control</string>
|
<string name="gestures_summary">Accept gesture control</string>
|
||||||
|
|
||||||
|
<string name="measure_accounts_title">Show account size</string>
|
||||||
|
<string name="measure_accounts_summary">Turn off for faster display</string>
|
||||||
|
|
||||||
|
<string name="count_search_title">Count search results</string>
|
||||||
|
<string name="count_search_summary">Turn off for faster display</string>
|
||||||
|
|
||||||
<string name="search_unread_messages_title">All unread messages</string>
|
<string name="search_unread_messages_title">All unread messages</string>
|
||||||
<string name="search_unread_messages_detail">Unread messages in searchable accounts</string>
|
<string name="search_unread_messages_detail">Unread messages in searchable accounts</string>
|
||||||
|
|
||||||
|
@ -42,6 +42,16 @@
|
|||||||
android:title="@string/gestures_title"
|
android:title="@string/gestures_title"
|
||||||
android:summary="@string/gestures_summary"
|
android:summary="@string/gestures_summary"
|
||||||
/>
|
/>
|
||||||
|
</PreferenceCategory>
|
||||||
|
<PreferenceCategory android:title="@string/accountlist_preferences" android:key="accountlist_preferences">
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="measure_accounts"
|
||||||
|
android:title="@string/measure_accounts_title"
|
||||||
|
android:summary="@string/measure_accounts_summary"/>
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="count_search"
|
||||||
|
android:title="@string/count_search_title"
|
||||||
|
android:summary="@string/count_search_summary"/>
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
<PreferenceCategory android:title="@string/messagelist_preferences" android:key="messagelist_preferences">
|
<PreferenceCategory android:title="@string/messagelist_preferences" android:key="messagelist_preferences">
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
|
@ -430,7 +430,10 @@ public class Account implements BaseAccount
|
|||||||
int unreadMessageCount = 0;
|
int unreadMessageCount = 0;
|
||||||
int flaggedMessageCount = 0;
|
int flaggedMessageCount = 0;
|
||||||
LocalStore localStore = getLocalStore();
|
LocalStore localStore = getLocalStore();
|
||||||
stats.size = localStore.getSize();
|
if (K9.measureAccounts())
|
||||||
|
{
|
||||||
|
stats.size = localStore.getSize();
|
||||||
|
}
|
||||||
Account.FolderMode aMode = getFolderDisplayMode();
|
Account.FolderMode aMode = getFolderDisplayMode();
|
||||||
Preferences prefs = Preferences.getPreferences(context);
|
Preferences prefs = Preferences.getPreferences(context);
|
||||||
for (LocalFolder folder : localStore.getPersonalNamespaces())
|
for (LocalFolder folder : localStore.getPersonalNamespaces())
|
||||||
|
@ -7,7 +7,7 @@ import java.io.Serializable;
|
|||||||
|
|
||||||
public class AccountStats implements Serializable
|
public class AccountStats implements Serializable
|
||||||
{
|
{
|
||||||
public long size = 0;
|
public long size = -1;
|
||||||
public int unreadMessageCount = 0;
|
public int unreadMessageCount = 0;
|
||||||
public int flaggedMessageCount = 0;
|
public int flaggedMessageCount = 0;
|
||||||
}
|
}
|
@ -72,6 +72,8 @@ public class K9 extends Application
|
|||||||
private static boolean mMessageListCheckboxes = false;
|
private static boolean mMessageListCheckboxes = false;
|
||||||
private static boolean mMessageListTouchable = false;
|
private static boolean mMessageListTouchable = false;
|
||||||
private static boolean mGesturesEnabled = true;
|
private static boolean mGesturesEnabled = true;
|
||||||
|
private static boolean mMeasureAccounts = true;
|
||||||
|
private static boolean mCountSearchMessages = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We use WebSettings.getBlockNetworkLoads() to prevent the WebView that displays email
|
* We use WebSettings.getBlockNetworkLoads() to prevent the WebView that displays email
|
||||||
@ -319,6 +321,8 @@ public class K9 extends Application
|
|||||||
editor.putString("backgroundOperations", K9.backgroundOps.toString());
|
editor.putString("backgroundOperations", K9.backgroundOps.toString());
|
||||||
editor.putBoolean("animations", mAnimations);
|
editor.putBoolean("animations", mAnimations);
|
||||||
editor.putBoolean("gesturesEnabled", mGesturesEnabled);
|
editor.putBoolean("gesturesEnabled", mGesturesEnabled);
|
||||||
|
editor.putBoolean("measureAccounts", mMeasureAccounts);
|
||||||
|
editor.putBoolean("countSearchMessages", mCountSearchMessages);
|
||||||
editor.putBoolean("messageListStars",mMessageListStars);
|
editor.putBoolean("messageListStars",mMessageListStars);
|
||||||
editor.putBoolean("messageListCheckboxes",mMessageListCheckboxes);
|
editor.putBoolean("messageListCheckboxes",mMessageListCheckboxes);
|
||||||
editor.putBoolean("messageListTouchable",mMessageListTouchable);
|
editor.putBoolean("messageListTouchable",mMessageListTouchable);
|
||||||
@ -336,6 +340,8 @@ public class K9 extends Application
|
|||||||
DEBUG_SENSITIVE = sprefs.getBoolean("enableSensitiveLogging", false);
|
DEBUG_SENSITIVE = sprefs.getBoolean("enableSensitiveLogging", false);
|
||||||
mAnimations = sprefs.getBoolean("animations", true);
|
mAnimations = sprefs.getBoolean("animations", true);
|
||||||
mGesturesEnabled = sprefs.getBoolean("gesturesEnabled", true);
|
mGesturesEnabled = sprefs.getBoolean("gesturesEnabled", true);
|
||||||
|
mMeasureAccounts = sprefs.getBoolean("measureAccounts", true);
|
||||||
|
mCountSearchMessages = sprefs.getBoolean("countSearchMessages", true);
|
||||||
mMessageListStars = sprefs.getBoolean("messageListStars",true);
|
mMessageListStars = sprefs.getBoolean("messageListStars",true);
|
||||||
mMessageListCheckboxes = sprefs.getBoolean("messageListCheckboxes",false);
|
mMessageListCheckboxes = sprefs.getBoolean("messageListCheckboxes",false);
|
||||||
mMessageListTouchable = sprefs.getBoolean("messageListTouchable",false);
|
mMessageListTouchable = sprefs.getBoolean("messageListTouchable",false);
|
||||||
@ -535,4 +541,24 @@ public class K9 extends Application
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean measureAccounts()
|
||||||
|
{
|
||||||
|
return mMeasureAccounts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setMeasureAccounts(boolean measureAccounts)
|
||||||
|
{
|
||||||
|
mMeasureAccounts = measureAccounts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean countSearchMessages()
|
||||||
|
{
|
||||||
|
return mCountSearchMessages;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setCountSearchMessages(boolean countSearchMessages)
|
||||||
|
{
|
||||||
|
mCountSearchMessages = countSearchMessages;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
|||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
AccountStats stats = accountStats.get(account.getUuid());
|
AccountStats stats = accountStats.get(account.getUuid());
|
||||||
if (stats != null)
|
if (newSize != -1 && stats != null && K9.measureAccounts())
|
||||||
{
|
{
|
||||||
stats.size = newSize;
|
stats.size = newSize;
|
||||||
}
|
}
|
||||||
@ -420,14 +420,16 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
|||||||
|
|
||||||
for (BaseAccount account : newAccounts)
|
for (BaseAccount account : newAccounts)
|
||||||
{
|
{
|
||||||
pendingWork.put(account, "true");
|
|
||||||
if (account instanceof Account)
|
if (account instanceof Account)
|
||||||
{
|
{
|
||||||
|
pendingWork.put(account, "true");
|
||||||
Account realAccount = (Account)account;
|
Account realAccount = (Account)account;
|
||||||
MessagingController.getInstance(getApplication()).getAccountStats(Accounts.this, realAccount, mListener);
|
MessagingController.getInstance(getApplication()).getAccountStats(Accounts.this, realAccount, mListener);
|
||||||
}
|
}
|
||||||
else if (account instanceof SearchAccount)
|
else if (K9.countSearchMessages() && account instanceof SearchAccount)
|
||||||
{
|
{
|
||||||
|
pendingWork.put(account, "true");
|
||||||
SearchAccount searchAccount = (SearchAccount)account;
|
SearchAccount searchAccount = (SearchAccount)account;
|
||||||
|
|
||||||
MessagingController.getInstance(getApplication()).searchLocalMessages(searchAccount, null, mListener);
|
MessagingController.getInstance(getApplication()).searchLocalMessages(searchAccount, null, mListener);
|
||||||
@ -791,7 +793,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
|||||||
}
|
}
|
||||||
AccountStats stats = accountStats.get(account.getUuid());
|
AccountStats stats = accountStats.get(account.getUuid());
|
||||||
|
|
||||||
if (stats != null && account instanceof Account)
|
if (stats != null && account instanceof Account && stats.size >= 0)
|
||||||
{
|
{
|
||||||
holder.email.setText(SizeFormatter.formatSize(Accounts.this, stats.size));
|
holder.email.setText(SizeFormatter.formatSize(Accounts.this, stats.size));
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,8 @@ public class Prefs extends K9PreferenceActivity
|
|||||||
private static final String PREFERENCE_MESSAGELIST_CHECKBOXES = "messagelist_checkboxes";
|
private static final String PREFERENCE_MESSAGELIST_CHECKBOXES = "messagelist_checkboxes";
|
||||||
private static final String PREFERENCE_MESSAGELIST_TOUCHABLE = "messagelist_touchable";
|
private static final String PREFERENCE_MESSAGELIST_TOUCHABLE = "messagelist_touchable";
|
||||||
|
|
||||||
|
private static final String PREFERENCE_MEASURE_ACCOUNTS = "measure_accounts";
|
||||||
|
private static final String PREFERENCE_COUNT_SEARCH = "count_search";
|
||||||
private ListPreference mTheme;
|
private ListPreference mTheme;
|
||||||
private ListPreference mDateFormat;
|
private ListPreference mDateFormat;
|
||||||
private ListPreference mBackgroundOps;
|
private ListPreference mBackgroundOps;
|
||||||
@ -41,6 +43,8 @@ public class Prefs extends K9PreferenceActivity
|
|||||||
private CheckBoxPreference mStars;
|
private CheckBoxPreference mStars;
|
||||||
private CheckBoxPreference mCheckboxes;
|
private CheckBoxPreference mCheckboxes;
|
||||||
private CheckBoxPreference mTouchable;
|
private CheckBoxPreference mTouchable;
|
||||||
|
private CheckBoxPreference mMeasureAccounts;
|
||||||
|
private CheckBoxPreference mCountSearch;
|
||||||
|
|
||||||
|
|
||||||
private String initBackgroundOps;
|
private String initBackgroundOps;
|
||||||
@ -137,6 +141,12 @@ public class Prefs extends K9PreferenceActivity
|
|||||||
|
|
||||||
mTouchable = (CheckBoxPreference)findPreference(PREFERENCE_MESSAGELIST_TOUCHABLE);
|
mTouchable = (CheckBoxPreference)findPreference(PREFERENCE_MESSAGELIST_TOUCHABLE);
|
||||||
mTouchable.setChecked(K9.messageListTouchable());
|
mTouchable.setChecked(K9.messageListTouchable());
|
||||||
|
|
||||||
|
mMeasureAccounts = (CheckBoxPreference)findPreference(PREFERENCE_MEASURE_ACCOUNTS);
|
||||||
|
mMeasureAccounts.setChecked(K9.measureAccounts());
|
||||||
|
|
||||||
|
mCountSearch = (CheckBoxPreference)findPreference(PREFERENCE_COUNT_SEARCH);
|
||||||
|
mCountSearch.setChecked(K9.countSearchMessages());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -160,6 +170,9 @@ public class Prefs extends K9PreferenceActivity
|
|||||||
|
|
||||||
K9.setMessageListTouchable(mTouchable.isChecked());
|
K9.setMessageListTouchable(mTouchable.isChecked());
|
||||||
|
|
||||||
|
K9.setMeasureAccounts(mMeasureAccounts.isChecked());
|
||||||
|
K9.setCountSearchMessages(mCountSearch.isChecked());
|
||||||
|
|
||||||
Editor editor = preferences.edit();
|
Editor editor = preferences.edit();
|
||||||
K9.save(editor);
|
K9.save(editor);
|
||||||
DateFormatter.setDateFormat(editor, mDateFormat.getValue());
|
DateFormatter.setDateFormat(editor, mDateFormat.getValue());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user