Commit Graph

164 Commits

Author SHA1 Message Date
m0viefreak d85af1bfe0 reenable sorting by sender in messagelist
This was disabled in faa666394c
because it isn't possible to extract the name of the android
contact in the 'ORDER BY...' clause when querying the database.
Instead it simply sorts by the email address.

This may cause the same contact to appear multiple times in
the list, if they have multiple email addresses assigned.

But in most cases this is good enough and surely better than
not having the option to sort by sender at all.

Desktop mail clients such as Thunderbird also simply use the
sender email information when sorting the column.

This also adds a SenderComparator for usage in the MergeCursor.
2013-03-27 13:08:42 +01:00
cketti 2fc3909ec3 Fix NullPointerException 2013-03-22 19:51:58 +01:00
cketti 55ca846ced Avoid NullPointerException when message contains no subject 2013-03-19 03:08:18 +01:00
cketti 6b3a3f7ee0 Fix message list item background color 2013-03-07 00:11:05 +01:00
cketti c07f94e877 Fix NPE when moving a message from Unified Inbox (multiple accounts) 2013-03-05 04:09:47 +01:00
cketti fe02f0c44a Avoid NPE reported via Play Store 2013-03-05 03:54:27 +01:00
cketti df8ea306b8 Avoid NPE 2013-03-05 03:35:09 +01:00
cketti 5270ebd629 Avoid NPE 2013-03-05 03:26:09 +01:00
cketti 78dc5e5194 Use different background for selected messages in message list 2013-03-03 22:52:03 +01:00
cketti 3379fdb573 Merge pull request #266 from m0vie/npe-fix
message view / list: fix NPE when list is empty
2013-02-18 20:33:25 -08:00
cketti 1a034d3e59 Merge pull request #265 from jca02266/master
If there is no message, it should return to a MessageList.
2013-02-18 20:32:16 -08:00
cketti 50fcff76fd Add a caching layer to EmailProvider
Database updates can be surprisingly slow. This lead to slow updates of
the user interface which in turn made working with K-9 Mail not as fun
as it should be. This commit hopefully changes that.
2013-02-19 04:45:14 +01:00
m0viefreak dd5d8561cd message view / list: fix NPE when list is empty
This happened for example in a starred-message-only view when
un-starting the last message. This led to isFirst() and isLast()
causing a NullPointerException when trying to update the
previous / next buttons.
2013-02-18 19:02:22 +01:00
Koji Arai 7da4c7cc1b Avoid IndexOutOfRangeException.
If there is no next message, it should return to a MessageList.
2013-02-19 02:06:36 +09:00
Danny Baumann 7afbda9e20 Regularly trigger a title and folder update while activity is resumed.
This makes sure the relative times are kept up-to-date.
2013-02-11 15:44:25 +01:00
Danny Baumann 0fac8e999d Clean up date handling.
Remove home-grown date formatting, and replace it by usage of the
DateUtils class which is present since API level 3.
2013-02-11 15:19:15 +01:00
Jesse Vincent c4b941b9b9 Switch our font sizes to have a "default", which is the size described in the XML.
Unify the text field size setting code. We should put it in a better place
2013-02-10 19:02:17 -05:00
cketti 3a7f1249dc Fix some display issues 2013-02-08 18:04:39 +01:00
cketti c27a5a8104 Add setting to toggle contact pictures 2013-02-08 15:37:28 +01:00
cketti 04ce0a9d3f Add contact pictures to message list 2013-02-08 15:37:27 +01:00
Danny Baumann 8f3e61feab Convert theme setting value to an enum. 2013-02-08 15:24:03 +01:00
cketti 0cd7eb12ed Don't call MessageListFragment methods until initialization is complete 2013-02-06 18:11:29 +01:00
Danny Baumann 62ee3bb0d6 Remove useless assignment.
mSavedListState is guaranteed to be null at this point.
2013-02-06 10:43:35 +01:00
cketti e59d23ca0e Fix NullPointerException 2013-02-06 00:39:45 +01:00
cketti cb51da5ea8 Fix restoring instance state of fragment on back stack 2013-02-05 20:00:31 +01:00
cketti 4b920e19b0 Simplify Handler code to restore message list state 2013-02-05 20:00:30 +01:00
cketti 7f39b3c6d8 Fix a potential NullPointerException when rotating the device twice
When MessageListFragment is on the back stack and the device is rotated
the instance state will be restored but no new view will be created. If
the device is rotated again onSaveInstanceState() is called and we have
to take care not to assume that the views have been created.
2013-02-05 20:00:30 +01:00
Danny Baumann 499e20ef76 Make next/prev buttons track their state again. 2013-02-05 16:11:56 +01:00
Danny Baumann 7b48df7dce Simplify message list item layout. 2013-02-05 11:16:00 +01:00
cketti 869a769e23 Stop using deprecated PullToRefresh methods 2013-02-03 17:22:34 +01:00
cketti d5a417d936 Fix some warnings 2013-02-03 17:08:48 +01:00
cketti e2ce85706d Fix NullPointerException 2013-02-03 17:00:56 +01:00
cketti cce969a6b6 Merge branch 'split_view'
Conflicts:
	res/values-de/strings.xml
	src/com/fsck/k9/fragment/MessageListFragment.java
2013-02-02 05:30:30 +01:00
cketti 6b143d845a Set MessageList title in action bar depending on display mode 2013-02-01 02:50:00 +01:00
cketti 1ab04587a9 Restore list state when recreating MessageListFragment 2013-01-30 22:30:19 +01:00
cketti 5b8fe64917 Refactor code to restore the list state 2013-01-30 21:56:16 +01:00
cketti e9f57dd9c6 Merge branch 'remember-message-list-state' of git://github.com/maniac103/k-9 2013-01-30 20:30:46 +01:00
cketti 77da312354 Fix the span range for the text in front of the message preview 2013-01-30 19:31:06 +01:00
Danny Baumann 55e5d8680e Remember last list view state when going back to a previous message list
fragment.

Fixes issue 4854.
2013-01-30 16:53:21 +01:00
cketti 957042a0d0 Make sure swipe gestures only work on the message list 2013-01-29 03:30:45 +01:00
cketti ad2a6d7a9b Add message view menu items to MessageList 2013-01-29 01:19:53 +01:00
cketti 77b8e62d64 Add hotkeys from MessageView to MessageList 2013-01-28 16:15:03 +01:00
m0viefreak dae3b776ff MessageList: add setting to allow 0 preview lines 2013-01-28 04:45:03 +01:00
cketti 573058bffc Add marker in message list for currently opened message 2013-01-24 15:36:59 +01:00
Jesse Vincent 841e565a49 Merge remote-tracking branch 'zjw/progress_indicators'
* zjw/progress_indicators:
  Provide a progress indicator while loading remote search results.
  Remove the progress bar from the message list footer.
  Provide progress indicator for searches.

Conflicts:
	src/com/fsck/k9/activity/MessageList.java
2013-01-15 15:06:23 -05:00
Joe Steele f3084dbb66 Provide a progress indicator while loading remote search results. 2013-01-12 18:02:09 -05:00
cketti 705ba76509 Close thread view when last message has been moved/deleted 2013-01-12 22:52:09 +01:00
cketti 7a1e52de48 Fix copy/move when not in 'single folder mode' 2013-01-12 06:17:31 +01:00
cketti 421558c148 Optimize setting flags for whole threads 2013-01-12 02:28:12 +01:00
cketti 1df88ea153 Use separate table to store the thread structure 2013-01-11 03:40:35 +01:00
Joe Steele 218823d7b2 Remove the progress bar from the message list footer.
More often than not, it's scrolled out of view.
Other progress indicators have been implemented that
are always in view.
2013-01-10 16:50:21 -05:00
Joe Steele 689f69ca49 Provide progress indicator for searches.
Searches can be slow, so users need an indicator.  The indicator is
also used when opening a message list or when refreshing it, or when
loading more messages.

This also removes some unused code.
2013-01-10 16:50:20 -05:00
cketti 3f84bb54f2 Fix crash when deleting all messages in a thread
Fixes issue 4772
2012-12-18 21:12:40 +01:00
cketti bc2f099c3c Fix pull-to-refresh
- disable pull-to-refresh while showing the "Loading..." view
- move initialization code from onResume() to initializePullToRefresh()
and call it from onCreateView()
2012-12-10 23:21:00 +01:00
cketti edd2a44201 Don't display negative unread count in message list 2012-12-10 20:06:18 +01:00
cketti cc3580c675 Remember across activity restarts whether remote search was performed 2012-12-08 17:29:05 +01:00
cketti e5d8e1965e Restore call to remoteSearchFinished() when stopping MessageListFragment 2012-12-08 17:28:46 +01:00
cketti 19a1549d52 Remove unused code 2012-12-08 17:11:17 +01:00
cketti 36a17eae91 Retain selected messages when restarting MessageListFragment 2012-12-08 17:06:15 +01:00
Andrew Chen 9a380c69ad Strip RE/FW from the MessageList subject line for thread subjects.
"Be like Outlook."
2012-12-06 17:41:39 -08:00
Andrew Chen c81f68af33 Remove the progress spinner when not in use so that the "Load more..." text is centered. 2012-12-06 17:25:56 -08:00
cketti 26b462a90e Refresh the list when returning to the message list activity 2012-12-06 06:26:39 +01:00
cketti b04f1b4319 Add an "empty view" to the message list
This will display a spinning progress indicator while the message list
is loaded from the database.
2012-12-06 06:26:39 +01:00
cketti d5bb462917 Don't create Message objects when changing flags of selected messages
This changes the interface to MessagingController and the way flags are
updated in the database. Now messages aren't changed one by one but in
batches of 500. This should give better performance, but breaks the
unread and flagged count. I'm not very sad about this, because now we
can move towards only displaying the number of unread/flagged messages
in the local database.
2012-12-06 06:26:38 +01:00
cketti c0b5255e24 Make most important flags separate database columns
This is the first step to speed up searches and flag updates.
2012-12-04 05:13:58 +01:00
Jesse Vincent 134b1f1b78 Hide the threaded view wrapper to get slightly better spacing 2012-11-24 14:42:57 -05:00
Jesse Vincent e2d347f0a3 Strip Re/Fwd/Aw etc from titles of thread view 2012-11-22 15:24:43 -05:00
Jesse Vincent eacc5e2ffe Add titles to thread display 2012-11-22 15:19:27 -05:00
cketti 999dd33169 Prevent NPEs in methods called by the handler after activity detached 2012-11-15 21:42:10 +01:00
cketti 4eefcb3a31 Fix crash when remote search fails after search screen has been left
Also, change error message to be less technical.
2012-11-15 21:28:05 +01:00
cketti 5accadab00 Enable loading more search results from the server 2012-11-15 21:26:46 +01:00
cketti ff156ac7c9 Fix remote search 2012-11-14 00:19:10 +01:00
cketti 9814833008 Merge branch 'master' into content_provider 2012-11-08 20:32:12 +01:00
cketti 246ed6990c Avoid endless loop via Handler 2012-11-08 18:20:52 +01:00
cketti d209c0cce3 Merge branch 'master' into content_provider
Conflicts:
	src/com/fsck/k9/activity/MessageList.java
	src/com/fsck/k9/fragment/MessageListFragment.java
2012-11-05 04:52:45 +01:00
cketti 52bfea65d1 Make the message selection code use the unique (Cursor) ID 2012-11-05 02:11:02 +01:00
cketti f02d265f60 Removed unused column from projection 2012-11-05 01:06:10 +01:00
cketti d530b20e2b Copy/move all messages in a thread when copying/moving placeholder 2012-11-03 08:30:32 +01:00
cketti dfbfaf48dd Clean up method copyOrMove() 2012-11-03 06:27:27 +01:00
cketti 2cfd25fa23 Javadoc cleanup 2012-11-03 06:20:11 +01:00
cketti c231b732ac Avoid converting lists to arrays when possible 2012-11-03 05:56:12 +01:00
cketti 46feb8b9d0 Group messages by account when moving to spam/archive folder 2012-11-03 05:24:41 +01:00
cketti 02aeccdedc Make flag operations work on all messages in a thread 2012-11-03 05:01:25 +01:00
cketti 7a266dcbdf Retain selected messages when message list is reloaded 2012-11-03 04:26:41 +01:00
cketti fb5e8eea84 Fix computeBatchDirection() 2012-11-03 03:21:30 +01:00
cketti e339dd1f10 Delete all messages in a thread when 'delete' is used on the placeholder 2012-11-03 01:52:45 +01:00
cketti 966794f169 Don't create (throw-away) Message objects when starting action mode 2012-11-02 09:30:23 +01:00
cketti c686284a77 Remove unused method 2012-11-02 05:18:45 +01:00
cketti db3ea36978 Include number of messages in a thread in number of selected messages
Selecting a placeholder message will select all messages in its thread.
2012-11-02 05:18:24 +01:00
cketti 0baffd05c8 Hide remote search UI elements
Remote search is currently not working
2012-10-30 16:54:21 +01:00
cketti 968d948dd0 Restore show next/previous message functionality in MessageView
This is just a temporary fix. In the future we want to get rid of
passing the serialized message list from MessageList to MessageView.
2012-10-30 16:27:09 +01:00
cketti 303c1ee85d Extract generation of SQL queries for searches to SqlQueryBuilder 2012-10-29 02:27:34 +01:00
cketti 5778d135fb Add global setting to enable/disable threaded view 2012-10-28 20:10:52 +01:00
cketti 889e2502be Replace call to method only available with API 9 and higher 2012-10-27 05:09:58 +02:00
cketti faa666394c Do sorting in MergeCursor when merging the query results
Disabled "sort by sender" for now because the database can't sort by
contact names from the contacts database. We probably have to
special-case that and do in-memory sorting.
2012-10-27 02:15:30 +02:00
cketti 08fba5468f Switch MergeCursor from using a List to an array 2012-10-25 23:14:28 +02:00
cketti 49a5a3b7ff Fix message sorting for message lists of a single account
To support sorting of message lists spanning multiple accounts (e.g.
Unified Inbox) we need a MergeCursor that also does sorting.
2012-10-25 21:51:14 +02:00
cketti 613ef6ced2 "Select all" now won't start selection mode when there are no messages 2012-10-24 05:35:45 +02:00
cketti c7a2080b34 Only show message list footer when displaying a single folder 2012-10-24 04:34:41 +02:00
cketti cba9d8fc88 Fix pull to refresh for normal list vs. "remote search"-able 2012-10-24 00:09:33 +02:00