The Museum of HP Calculators

HP Forum Archive 20

[ Return to Index | Top of Index ]

Free42/Android skin handling change
Message #1 Posted by Thomas Okken on 17 Apr 2011, 11:32 a.m.

Yesterday I updated Free42 in the Android Market and on my web site. I posted four updates in quick succession, but only the release notes for the most recent one (1.4.67.4) appear on the Market page, and to make things even more confusing, the "updated" date still shows April 10th.

There have been a couple of minor bug fixes, but the important change is skin handling. Originally, the app would look for the *.gif and *.layout files in /sdcard/Free42, but that causes problems on some devices, because of an incorrect /sdcard symlink, or because of case-smashing in the FAT32 filesystem. This new version of Free42 for Android is meant to avoid these problems, by letting the user select skins from anywhere, using a file selection dialog.

I had originally planned to make the skins directory location configurable, but then it occurred to me that making the user select the directory in one place and then choose the skin in another made no sense; I might as well combine the two.

Note that if a skin is selected from an SD card, Free42 will not be able to load that skin if it is relaunched later when that SD card has been removed. In that case, Free42 will revert to the built-in skin, but it will remember the external skin's path, and when it is relaunched with the SD card once again present, it will load the external skin again.

If you want to have a set of custom skins permanently available, regardless if what's in the SD card slot, you may have to root your phone and/or use a file manager to copy the skins to a directory in the built-in storage. Free42 does not help with the process of copying skins, but it can use them once they are copied.

This new implementation is not perfect, but I think it will meet the needs of most users, without adding a lot of complexity to the code or the user interface.

- Thomas

      
Re: Free42/Android skin handling change
Message #2 Posted by Marcus von Cube, Germany on 17 Apr 2011, 11:48 a.m.,
in response to message #1 by Thomas Okken

Locating skins works fine, but Free42 does not react on the orientation of my device, nor does it revert to landscape mode, if the skin is wider then high. I usually hold my Archos in landscape mode. :(

            
Re: Free42/Android skin handling change
Message #3 Posted by Thomas Okken on 17 Apr 2011, 12:01 p.m.,
in response to message #2 by Marcus von Cube, Germany

Quote:
Locating skins works fine, but Free42 does not react on the orientation of my device

I never said it would. Landscape mode support is still on my to-do list.

                  
Re: Free42/Android skin handling change
Message #4 Posted by Marcus von Cube, Germany on 17 Apr 2011, 12:14 p.m.,
in response to message #3 by Thomas Okken

Thanks for the clarification. So I need to find a suitable portrait skin for my device. Will go hunting.

      
Re: Free42/Android skin handling change
Message #5 Posted by Jeroen Van Nieuwenhove on 18 Apr 2011, 4:14 a.m.,
in response to message #1 by Thomas Okken

Thanks, Thomas, for the update of this excellent port of Free42. Free42 is my favorite calc on my desktop computer and I was delighted to find it on Android Market when I purchased an Android phone recently. Would it be possible to provide an option to (de)activate key click sounds in a future update? Thanks in advance.

            
Re: Free42/Android skin handling change
Message #6 Posted by Thomas Okken on 18 Apr 2011, 4:16 p.m.,
in response to message #5 by Jeroen Van Nieuwenhove

Such an option is on my to-do list; in the meantime, until I get around to implementing it, you can make the key clicks stop using CF 26 (but that will disable TONE, BEEP, and the error beeps as well).

                  
Re: Free42/Android skin handling change
Message #7 Posted by Jeroen Van Nieuwenhove on 19 Apr 2011, 6:38 p.m.,
in response to message #6 by Thomas Okken

I should have thought of the native quiet mode. That will do for me.

      
Re: Free42/Android skin handling change
Message #8 Posted by Thomas Okken on 20 Apr 2011, 12:27 p.m.,
in response to message #1 by Thomas Okken

I added landscape mode support, and an "enable key clicks" Preferences setting (so you can control key clicks independently of TONE/BEEP).

Landscape support is a bit primitive: apart from allowing the orientation change, Free42 doesn't do anything to support it actively, which means the OS has to shut down the app and then relaunch it with the new orientation. While this works fine, it means that the orientation switch can be slow, particularly if you are working with large matrices.

I haven't added a built-in landscape skin yet, because the ones I have don't look very good at 480x320, but depending on screen size, the 42ct, HP42CY, or Voyager42 skins from the Free42Skins.zip package may be usable. By default, you're just going to get the built-in 320x480 skin (or whatever you had selected instead), squished to fit, which will probably not look very good. :-)

I'll have to do something about the file selection dialog to make it look better in landscape mode, and find or create a decent landscape skin, but for the time being, this should be usable. Looking forward to your feedback!

- Thomas

Edited: 20 Apr 2011, 12:28 p.m.

            
Re: Free42/Android skin handling change
Message #9 Posted by Jeroen Van Nieuwenhove on 21 Apr 2011, 5:33 p.m.,
in response to message #8 by Thomas Okken

Now THAT was fast. Thanks a lot, Thomas. Key click selection works fine and orientation switch is smooth. I am going to try out the existing landscape skins you mentioned, although I never use them on my desktop computer.

            
Re: Free42/Android skin handling change
Message #10 Posted by GŁnter Schink on 24 Apr 2011, 12:43 p.m.,
in response to message #8 by Thomas Okken

I've installed the latest release 1.4.69 now, and played around a little bit. I found the best fitting skins for the Galaxy I9000 (800x480) in the maemo5 port for the Nokia N900. There are both, portrait and landscape skins that look rather good. Automatic change of orientation works sufficiently good, though the appearance change from a pionneer to a voyager layout is rather funny

The landscape skin is 42ct-maemo5. The Skin uses 800x428 of the bitmap

The portrait skin is Ehrling42sl-new-maemo5-full. This skin uses 480x729 of the bitmap.

What size is the status line of Android?

GŁnter

                  
Re: Free42/Android skin handling change
Message #11 Posted by Thomas Okken on 24 Apr 2011, 4:44 p.m.,
in response to message #10 by GŁnter Schink

In the Android Emulator and on the HTC Aria/Liberty, the status line is 25 pixels. Those both have 320x480 screens; on devices with higher-resolution screens the status bar is probably higher.

                        
Re: Free42/Android skin handling change
Message #12 Posted by Marcus von Cube, Germany on 24 Apr 2011, 5:34 p.m.,
in response to message #11 by Thomas Okken

On the large screen devices, an option not to stretch the skin to the full window dimensions might be useful.

                              
Re: Free42/Android skin handling change
Message #13 Posted by Thomas Okken on 26 Apr 2011, 8:03 p.m.,
in response to message #12 by Marcus von Cube, Germany

I agree. I added it to my to-do list.


[ Return to Index | Top of Index ]

Go back to the main exhibit hall