On my emulator, it takes 70ms instead of 250ms.
On a very specific hardware, it takes 0,5s instead of 4,1s.
I willingly did not indent the code between my try/catch (for the patch to be readable).
This commit addresses 2 issues:
1) Before, a general GestureDetector was registered on the highest level in K9Activity
This resulted in EVERY inherited activity to have a useless, unused gesture detector.
But more than that, in MessageList, a second GestureDetector was assigned to the ListView.
On every fling gesture, both detectors called the onSwipe() methods,
which technically did the following:
- The one directly assigned to the ListView would work corectly by mapping the
(local) event coordinates to the right entry in the ListView
- The global one worked on screen coordinates, so the onSwipe() method would
likely select the wrong ListView entry (system menu bar offset).
- For some reason this "worked" fine, and only the correct entry was selected,
despite two detectors used.
2) The gesture detection for the MessageView caused problems when the message
itself was scrollable, i.e. wide HTML mails. A fling gesture inside the WebView
would scroll the message, but also switch the message.
This commit fixes all those by doing the following:
- Don't register the GestureDetector in K9Activity, instead make the member variable
accessible by subclasses.
- In the subclasses that need a detector register it
- In K9Activity.dispatchTouchEvent() check for mGestureDetector being null
- For MessageList:
* Remove the duplicate gesture detector assigned to the ListView
* in the handleSwipe() methods: calclulate pixel offset of the ListView to make
it work using the global screen coordinates
- For MessageView: Limit sensitive area to the message header, to prevent interference
with the WebView scrolling
- Respect current behavior:
* Force-enable gestures for the MessageList
* Respect user setting in MessageView
- Make sure that after a successful swipe gesture, any pending action is cancelled, to
prevent unwanted things to happen (such as expanding the header after changing
the message, or a context menu popping up in the MessageList).
See http://code.google.com/p/android/issues/detail?id=8497
bug encounted when replying to a message such as:
From: "bar, foo" <foobar@example.com>
the field was originally folded on the tab, but the CRLF was already stripped before this error.
* text-quote-to-html-div:
Use property to determine if we should write test debug information or not.
Remove top margin on converted quote text, consistent with html quoted text.
Colorize quoted text that has been converted to html. Like Thunderbird, but optimized for mobile (no right margin quote bar, thinner left margin quote bar).
Add 1ex of margin at the bottom of converted blockquotes.
Convert quote characters in plain text messages to blockquotes in the html version. "Be like Thunderbird."
the new sort saves per account, and there is no active account for these folders.
so also, there is no saving of the sort for the unified inbox nor all messages.
otherwise obviously leads to crashes.
IMHO this was a logical location to move, and it resolved my issue when
account was not yet accessible due to not yet accepted key upon importing
old settings from a stored file
---
A new option to set default sort setting is added to account settings.
* commit '7a9ba4e0ad483cb275281e8b33d9e6d35d870151':
Create implicit sort remembering setting2(minor indentation error)
Create implicit sort remembering setting
Create default sort setting by preference
* 'master' of https://github.com/mnb20/k-9:
High DPI version of archive button icon
Fixed whitespace
Remove TODO
Replaced archive icon. Still a bit crap, but better than my previous attempt.
Added batch buttons for Archive and Move. Made batch buttons configurable.
Actions:
- Open link for viewing
- Share link
- Copy link to clipboard
- View image
- Download/save image
- Copy image URL to clipboard
- Call number
- Save phone number to Contacts
- Copy phone number to clipboard
- Send mail
- Save to Contacts
- Copy email address to clipboard
This is based on work done by kernelhunter92 and ShellZero.
Fixed issue 1248
Originally I wanted to use a Spinner, but it doesn't support multiple
view types (see [1]). Those are necessary because we use different
layouts for accounts (section headers) and identities (selectable list
items).
Removed the ChooseAccount activity because it's now unused.
This is necessary because we save the offset and length of the user-
supplied text in the identity header. These values are then later used
to split the draft in user text and quoted message.
When calculating these values we operate on a string with LF line
endings. Ideally we want to do the reverse operation on the same
string, but when saving the message to the server LF is converted to
CRLF to create RFC-conforming messages.
This is only a hack and will probably be the cause of more trouble in
the future. A better solution would be to make the identity header more
robust or get rid of it entirely.
* remove expand/collapse arrows, instead use the background area of the header to toggle
* allow expanding of To: and Cc: texts when too long and cut off by clicking on them
The ScrollView around the WebView caused all sorts of problems. This
change removes the ScrollView and uses the undocumented method
WebView.setEmbeddedTitleBar() to set the MessageHeader view as "title
bar" of the WebView. This allows MessageHeader to scroll away making
more room for the WebView.
All of the "magic title bar" code was originally implemented by Jesse
for Kaiten.
Because WebView doesn't support a scrolling footer we can no longer
support scrolling buttons or attachments at the end of the message. Now
users can switch from message view to attachment view via a button just
below the message headers.
I also copied some code for which I was too lazy to create a separate
commit. It allows to display attachments we didn't use to show by
clicking on a "More..." button in the attachment view. Those
attachments are mostly images referenced by the HTML part (e.g.
background images).
Fixes issue 3291