Debugging Android Wear support for K-9 Mail

I started a branch to develop proper Android Wear support for the popular K-9 mail client.
The last few weeks I was grinding on a strange error.
It would create PendingIntents for the different actions for each individual message.
Because on Wear the messages are shown as a stack and you can act on each of them.

What I found was that it would issue the right action...on the wrong message.
Always the firt message of the notificaiton.

I think I found it.
PendingIntents are not created. They are requested.
If the same PendingIntent already exists, it is returned.
The "same" means same Action, same Data, ...  But not same Extras.
The message ID was transmitted as an Extra.

This was no problem up to now, because most people you would only ever have one notification.
But even in the existing code this bug would have hit (and hit hard inc ase of the  "delete" action) if you have multiple accounts configured and choose an action on the second notification, you would get it with the parameters of the same action on the first notification.

I'm considering the Android Wear branch of K-9 to be BETA-quality now
and am using it myself daily to find bugs.


printing working threads on an Ultimaker II extended

Even at 20 micron and less layer height, most theads have too many threads-per-millimeter/threads-per-inch to be reasonably 3D printed.
I'm regularly using a thread cutter on 3D printed parts to do this instead.

Now I have some  solenoid valves with a very strange NPT1/2 thread.
This is a very rare imperial sized, trapezoidal (getting smaller, not staying at one diameter)
thread with only 1,814mm per thread instead of 1mm.
(BTW NPT1/2 isn't even near 1/2" in size. )
So it looks like a perfect test to 3D print the thread without cutting.

Due to the extreme heat recently, I had some issues with my Ultimaker II extended at first.

But int he end it worked out.
Here is the same thread printed in normal quality,  high quality(at 200% speed) and ulti quality (40 micron).
The (at first) strange result it, that the thread printed at normal quality was far more clean then the other ones.
...that is until you think about a thread as one giant overhang. A thicker layer-height seems to work better for overhangs as it's not as compressed by the next layer. This is no problem in solid areas bu when there is air below the layer...you can guess.

Fits perfectly!


implementing K9 mail wear support - stacked notification issue

I'm currently implementing K9 issue 619 "add Andoid Wear Support".
You can find the code in branch issue-619_AndroidWearSupport.
Basic support to delete(if no confirmation on the phone is configured), archive and spam all messages  of a given notification is done and working well.

My currently issue is that I added stacked notification exactly as documented.
The problematic code starts in MessagingController:4941 .

My summary notifcation is only shown on the phone, not the watch. OK.
BUT: my stacked notifications (With setGroup(...) but no setGroupSummary(true) are ALSO shown on the phone. These are supposed to be only visible on the watch.
Every documentation, example and StackOverflow posting shows me that I'm doing everything right and that there should be no way for this to ever happen.

I guess I need an additional pair of eyes to look through at this code.


Added Android Wear support for K9

I just added some very first Android Wear support for the K9 mailer.
The default actions where unsatisfactory as "reply" doesn't work on a watch unless you implement the voice recognition feature. "delete" shouldn't be offered if "confirm delete" is active and thus the user needs to confirm an action on the phone that he/she initiated on the watch.

For the time being I added "delete" (if confirm is off), "archive" and "spam".
Extensive checks are done to make sure these actions are possible. Since afterwards the user can not be informed about them failing as Toasts will apear on the phone, not the watch.

The plan is to
  • have the user select what 3 actions to show on watch+phone for single messages and groups of new messages
  • stack the notifications about multiple new messages
  • add the ability to reply using voice input


Ultimaker II Glue Stick issues


As glue-stick I have used the triangular Teasy EasyStick so far and they worked great.
However now the winter is gone and I had to move the printer to another city.
It's not as cool and the room is much smaller.
The ambient temperatures are rising above 23°C at 50° humidity indoors with a 75°C or 60°C heated bed and nearly no air flow in the tiny room and the glue stick completely evaporates within 10-30 seconds.

Filament either doesn't stick (if applied too early) or objects curl up and detach from the glass (if applied right before the print starts).

What European household brand of glue stick works in high temperatures? (Sorry, no Elmer's Invisible Glue on the right side of the pond.)
I don't have wood glue in the house but I'll try to get some and mix it with water to try.
I don't like to apply hair spray directly and the brand I tried doesn't work when applied to a piece of paper and then rubbed onto the glass.


Ultimaker II servicing

My replacement glass fiber reinforced PTFE liners for the Ultimaker II hotend arrived.
While replacing parts I looked up just how long this Ultimaker II has been printing so far:
machine has been on for 2954 hours
printing for 1855 hours using 1166 meters of 2.85mm filament.

The PTFE is pretty banged up for sure.

In the forum people talk about 300-500 hours before seeing serious degradation.

I replaced the PTFE,
doing a cold-pull cleaning in the process,
Added a piece of aluminium foil,
cleaned the extruder gears
cleaned the bed

...now let's start with the next 2000 hours of printing.

I just found out you can get them (for a premium price) at Reichelt or
remakes (no mention of glass fiber) at  another German Store and in China too.
Without Fedex.


LPG Preismelder Android app updated

After a long time, I have finally found the time to update my old fuelstation finder for GPL/CNG fuled cars to a current Maps API and current design language.
The buggy OpenStreetMap code had to go. For the time being there is only the Google Map now.
The overlays are completely redone,
the layout of cause uses proper fragements,
the geolocation API usage and settings handling is updated as well.

  • App on Google Play