September 22, 2013

Make Actionbar Items visible when using Appcompat from Support Library

I noticed, when using the Appcompat Actionbar from Android Support Library v7, there are no items shown in the actionbar.
The solution is very simple, instead of declaring your menu items like

android:showAsAction="always"
you have to use the compat namespace:

    <menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:compat="http://schemas.android.com/apk/res-auto" >

    ...

    <item
        android:id="@+id/action_settings"
        android:icon="@android:drawable/ic_menu_preferences"
        android:title="@string/action_settings"
        compat:showAsAction="always" />

September 8, 2012

Change UPPERCASE menu in Visual Studio 2012

If you already have installed Visual Studio 2012 you may have noticed, that all the main menu's labels are written in UPPERCASE letters. For me this is quite annoying and doesn't look very good. Usually uppercase letters are used to indicate shouting within a text.

To change the menu to a better look and feel, you have to create a registry entry. Open the Windows Registry Editor by pressing [Win]+[R] and enter regedit.
Now navigate to

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\General\

There you have to create a new DWORD-Key and name it SuppressUppercaseConversion with value 1.

That's it. Just restart Visual Studio and the menu will look like expected.

August 22, 2012

Week 13

This is my last weekly report relating GSoC 2012. On monday there was the 'firm pencils down' date. From now on, everyone else who wants can contribute to the GSoC projects as well.

Last week I integrated the app's icon, which was created by Bhaskar. It's also used as the favicon by the browser if you access the server.
Furthermore I added some promotion stuff like screenshots and a description for Google Play, as well as more documentation to the code.
Now there is also a new REST call that determines, which OI Apps are installed on the device. This is necessary to only present those apps to the user. Bhaskar solved this previously in another way, but I think the new call is a better and cleaner solution for this problem.

After GSoC has finished, I will stay involved and continue developing for OpenIntents. Contribution will not be so much as during GSoC, because I will start working on other projects, as well.

August 14, 2012

Week 12

The last but one week of GSOC has passed and the last one is going to start.

Last week, I finished the interface documentation at the github wiki. Javadoc is also nearly completed, as well as test documentation.
There are also a lot of new tests, which I implemented for the shoppinglist part of the REST interface. This way I found a few little bugs, which are now fixed.
Furthermore I had a look at Bhaskar's interface, which works great. There were only two little bugs, which are also fixed now.
One new thing is the logout button, which ends a user's session if password authentication is enabled.
After the translation with launchpad seems to work now, I translated the wifiserver and a few untranslated strings of the other OI apps to German. If you know other languages, please help to translate at launchpad.

Things to do next week are preparing the release version, which includes some description for the market, screenshots and finding a final icon. There are also a few things left to document. Finally, I will try to integrate the translations, which are available.

August 7, 2012

Week 11

Another week is over and now the last but one of GSoC begins.

As I said last week, I implemented the interface to manage shoppinglists and items, which was a little bit tricky because of the complex database structure. Also the Shopping List Library which I praised last week, seems not to be up-to-date and I had to implement some necessary methodes by myself.
Next week I will write lot of tests to verify the suggested behavior and guarantee functionality.

I also reworked the documentation of the REST-interface and added all new stuff. Now it's up to date and complete. You can find it at the wiki.

Apart from that there was nothing special last week. As stated above, I will now write tests for the interface and go on to complete the documentation.

July 31, 2012

Week 10

This week there is a report again. Last week I had a lot unexpected things to do to prepare for an exam.
But now I have much more time and going to compensate the last week by working harder.

First I started to work on the documentation. Therefore I added lot of javadoc to the code. The next step will be to complete the wiki and structure the information I gave during my reports. This includes design decisions as well as implementation details and the REST interface, which is used for the communication between browser and server app.
The last one can already be found in the wiki for the notepad part.

The next big thing, I'm currently working on is the interface to support the shopping list app. Therefore, I familiarized myself with the shopping list's content provider and all the necessary database stuff.
During the work, I found a bug with the items table which was fixed immediately after I reported it on github.
One great thing of the shopping list implementation is, that there exists a library which includes all constants, which are necessary to access the database. This makes it much easier, type safe and avoids a lot of typos and copy and paste failures.
As part of the interface, I already implemented calls for handling shoppinglists (get/create/rename/delete), as well as requesting all respectively a single item.
The next step will be to complete the REST interface, document it and integrate it with Bhaskar's web interface.

July 17, 2012

Week 8

Mid-term evaluation

Last week was the week of mid-term evaluation. Students had to fill out an evaluation form with questions about the Google Summer of Code program in general, about their own work and the interaction with their mentors.
I am pleased to say, that I passed the mid-term evaulation and can continue :)

Last week's TODOs

In my week 7 report I specified some TODOs and completed them all during the last week.
First, I set up the translation environment with help of Peli. Therefore, I forked the export repository, where special files for launchpad are located. I added one for the server app and initiated a pull request. Once it is merged into the main repository and uploaded to launchpad, you can help to translate into your language.
There are many other languages, which need a translation, so please help to localize all the OI apps!

Furthermore I updated the robotium test framework to version 3.3, which was helpful to fix a bug with the preference input dialog on Jelly Bean. In the new version the software keyboard is hidden before interacting with the input field. This also solved an issue where the "OK" button was not found if the keyboard was shown.

The "About"-Dialog now shows all necessary information. There was just a line missing within the AndrdoidManifest.xml

Third release

I also want to release a new version, which now includes a more secure authentication method, where a salt and hashed password is used as well as a session cookie.
This release should work fine with OI Notepad without any issues, except that you must not modify encrypted notes, otherwise they may get corrupted.