I’ve spent most of the last weekend working on Sylence, and I’ve made a significant amount of progress. After doing some reading, I see no reason to use the Android 3.0/4.0 fragments tech in Sylence, and while I’m debating the idea of developing an application widget, I have definitely made some positive changes.

First and foremost, the biggest change so far is that in the dialog to create a new silence alarm, the date and time pickers aren’t initially visible. You will see the current date and time, and a date and time 45 minutes later. Tap the date, and you will be presented with the date picker. Similarly, when you tap the time, you will be presented with the time picker. I think this looks and works better than the old system, though it may be a little less obvious.

Also, the horizontal scrolling is gone in that dialog; the day of the week options for recurring alarms are now stacked vertically when recurring is selected, so when editing an alarm, you can immediately see which days are selected and which are not.

The next major change, although completely invisible, is the way that Sylence does the important work of checking to see if the phone should be silenced or not. Until now, a service has been running full time, sleeping for roughly one minute then waking up and doing a check before going back to sleep. As of the new version, the app will use Android’s AlarmManager to do this, which may save more power than the old way. (Note that the old way didn’t use very much power, but this way should use even less.) The caveat, however, is that in order to do its work properly and timely, the AlarmManager needs to obtain a partial wake lock to wake up the processor long enough to do its work; otherwise, the alarms won’t be triggered until the device is woken up by another program or by user actions. In order to obtain a partial wake lock, I had to add another new permission, WAKE_LOCK, to the list of permissions used by Sylence. Without it, I’d either have to go back to the old method or Sylence would only operate on its schedule while the phone was in use.

Another down side is that I’m adding more advertising to Sylence. I’m considering adding a “Pro” version back into the Android Market without the advertising, but I haven’t decided at this time.

I still haven’t gotten much in the way of feedback on Sylence at all, so I’m just doing things as I see fit, No ratings in the Market, no comments, no bug reports, no feedback. If you don’t like how Sylence is progressing, let me know. It’s the only way I can improve it, and right now is the best time to do that. There are still some changes I want to make before I release this new version, but if you want something in it, now’s the time to let me know!

Update 12/29/2011 2:59 am: Sylence 1.5 has been uploaded to the Android Market with new screenshots.

During my recent updates to Sylence, I happened to test it in the Android 4.0 emulator to verify that it continued to work properly. While it does appear to run, it ran into some interesting issues, most notably, that only one of the date/time pickers were present at any given time. Considering I was never particularly pleased with the appearance of the schedule entry system, I’m going to be redesigning Sylence to utilize the Android 3.0 (Honeycomb) introduced fragments, and the compatibility library for 2.x to enable the application to continue to be usable on older devices.

I’m going to begin this work this weekend, right after I finish an essay for class and hopefully pick up a Galaxy Nexus. I’ll also be working towards implementing a few features I’ve wanted to add for a while, including a desktop widget, but as long as I’m making changes, are there any that you’d like to see?

After nearly a year of having Sylence in the Android Market and only two sales (ironically, one to myself and one to a relative), I’ve given up on making money on Sylence as a product for sale. I’ve made it free of charge so anyone can download a copy; and so far, a few people have done so. When I last checked, more than 40 new people tried the application, and I don’t think I have it opened fully to the world at this time. So what does this mean? It means that when I have some spare time, I’m going to add a few new features, fix a few issues that I’ve wanted to correct for a while, and possibly add advertising to it because I’m certainly not making any money with it the way it currently is.

I’m sorry to say that I’m pulling the plug on Gas Up, primarily due to lack of interest. At the moment, according to the Android Market Developer/Publisher Dashboard, I have about 280 installs of the application out there, but I only get the occasional price submission from any one. In addition, since I launched the application a year ago, a number of other apps with similar functionality have sprung up, all of which seem to be more popular than my little one. I thank those of you who gave it a try, but with my limited time and lack of interest, I don’t see any point in pushing on with Gas Up.

This project did teach me a lot, and I’ve managed to gather a lot of experience working on Gas Up, Sylence, and other unreleased projects. Hopefully the knowledge gained will aid me in a future project.

For those of you that still have the app installed and use it, the app will continue to function normally, but I wouldn’t hold my breath for any updates. (Unless you really, really urge me to do so. 😉 )

I just released a slightly newer version of Beta 5 that fixes 2 bugs: the most important issue resolved is that posting prices over 3G/Edge wasn’t working for some strange reason, though I didn’t change that code between releases at all. So I switched to a different method of communicating with the server and it seems to be working well again now. The other issue resolved is one that I had hoped would be in the initial Beta 5 release: you may now double tap on a location in the map to enter a gas price at that location. I’m still not 100% sure why this wasn’t working on Android 2.x but was on 1.6, though it may have to do with code obfuscation that is now being done. Whatever the cause, it’s fixed now.

Over the last week, despite my other obligations, I’ve been a bit busy with my published Android applications. Among other things, I fixed a few annoying bugs in Sylence culminating in a series of releases last week, and today I published the long awaited update to Gas Up.
I am disappointed in this release, beta 5, of Gas Up however.  A feature I spent a fair amount of time figuring out seems to be working on only one of my three Android devices. That feature is the ability to double tap on the map and enter a gas price/station at that location. It works properly on my G1 running Android 1.6, but is missing from my Huawei Ascend (Android 2.1) and Nexus One (Android 2.3.3). I’m not going to dig around and fix this issue at this point; instead I’m going to do a complete rewrite of Gas Up because I have learned a significant amount about Android since I started development on Gas Up nearly a year ago. I’m sure it will be quite some time before I complete the next iteration, but I’m even more sure it will be better than ever.

Ok, since I have financial needs that aren’t currently being met and I want and need experience, I’m making myself available as a freelance screenwriter. I’m not limiting myself to any particular genre, topic, or anything else and I’m willing to either do scripts solo or collaborate. If interested, please contact me via my An Evil Genius web site.

Although I’m a couple weeks behind on this, I thought I’d note that I fixed the cookie parsing in the HTTP add-on in Themis, and cookie handling is probably working better than ever at the moment. This isn’t to say I’m done with it; I need to go back in and fix a few curious issues with non-standard dates, empty cookie values, and restricting the maximum length of both a cookie name and value, but I can say that it’s significantly better than it was. I’m also considering moving the cookie system into a plug-in of its own; which it originally was.

The reason is that while cookies are only sent over HTTP connections, Javascript can initiate HTTP connections and manipulate cookies as well. This can be somewhat dangerous, and PHP along with other web scripting languages have [relatively] recently started adding a new optional flag to mark cookies as HTTP only to their headers. While I’ve added support for this to the cookie system in Themis, it’s somewhat meaningless at the moment: there’s an old Javascript implementation in the source tree, but it’s completely unused at the moment and isn’t attached in any way to the Themis DOM system. However, once we have a renderer, and Mark is working on that currently, then we will start to need a Javascript interpreter, and that in turn will lead back to proper cookie handling.

In addition, I’m now faced with adding configuration options for the cookie system, and it would be easier to manipulate those settings in the preferences window if the cookie system was in its own separate plug-in. This isn’t going to happen tomorrow, so don’t worry about it right now, but this is going to be a change in the future.

On other subjects, thinking about Javascript has got me wondering if Themis should use the binaries that are currently in the repository, try to get updated versions compiled, try to use a different existing Javascript implementation, or write our own. I had hoped to use V8 from Google’s Chrome, but it requires GCC 4 which isn’t available on BeOS though it is available on Haiku, but I haven’t managed to get it compiled due to a series of oversights within the Haiku community. I’m not going to put blame on any one person or organization, but I will say that getting scons working seems to be impossible on Haiku, so I can’t even test V8 at this point. Also, since the Themis project is about learning browser design, I’m leaning heavily on the “write our own” side of things now, though it would probably take years to get a version that’s as complete as today’s Javascript demands, and then I’d be playing catch up forever. Still, that’s on my mind…

As of now, Sylence is available in the Android Market in the United States, Canada, and the United Kingdom for $1.00 U.S.. There are still somethings that need to be worked on, but I wanted to get a functional version out and about tonight. Go buy it and enjoy!

As of Tuesday afternoon, Sylence is feature complete though I sill have a bug or two to squash, and other details to implement. The gist of the application is that it allows you to set “silence alarms” so that your phone’s ringer will automatically be turned off at scheduled or recurring times.

I’ve decided to sell the app for $1.00 (US) in the Android Market, but I don’t yet have a target date for that. The word is “soon” though. I’m considering doing an ad supported version but I guess it depends on the demand.