Monday, January 16, 2012

Added support for AndroidOS1.6

Now possible be could in the previous entry!
JustPlayer now works in the IS01.

What was the cause? It is ProGuard.
VerifyError had occurred for that the JustPlyaer use the CompatiblityAPI.

The error is caused by obfuscation using external classes and classes that are included in the layout of the external Jar.


So, as the technique should be added to the configuration file as exempt from Proguard obfuscation.
For example,

-keepclasseswithmembers  class android.support.** {
    *;
}

But this is not enough.

-dontwarn **CompatHoneycomb
-keep class android.support.v4.** { *; }


There is also need to add these two lines.
Incidentally, when testing the APK after creating a Proguard applied once, and I have to install and do not check this.

adb install <apk file>

So enjoy your music life of IS01/HTC-03A users.


Thursday, January 12, 2012

Do you know the IS01?

I have an IS01. This device is the first Android phone made ​​by Sharp. IS01 are loved and widely known as known as eyeglasses case.

But this device is AndroidOS1.6. And that was not updated to 2.1.
(http://japanese.engadget.com/2010/03/29/au-android-is01-5/)

Changing the subject, I am made an app that JustPlayer. Of course people look at this blog will know.


Although JustPlayer made ​​last year. Support more than was originally SDK1.6.
But when the corresponding Gingerbread, 1.6 lost its support.
The reason I wanted to use AudioEffect.

After a while, we implemented the process of switching to match in the OS using the AudioEffect. Could correspond to 2.1 and 2.2 because of this.

Unfortunately at this time, 1.6 are excluded. The reason the test was cumbersome.

So, today is not compatible decided to challenge the IS01.


Friday, January 6, 2012

about WIFI Lock

WIFI lock is required to keep a handle to turn off the WIFI connection in sleep.
Specifically, the code will look like this:

void freeWifi() {
    if (mWifiLock.isHeld()){
        mWifiLock.release();
    }
}

void lockWifi(final MediaData track){
    File cacheFile = StreamCacherServer.getCacheFile(this, track.data);
    if ((cacheFile == null && track.data.startsWith("http")) || (streamcacheserv!=null && streamcacheserv.isRunning())){
        mWifiLock.acquire();
    }
    else if (mWifiLock.isHeld()){
        mWifiLock.release();
    }
}

Lock before to play songs using this code, you may be stopped during playback Release.
However, it seems there is a problem that does this JustPlayer.
The JustPlayer, has a prefetch process of reading music.
Play the song and that which must be applied for the Lock at another location.
I think it was so seemingly went well, the following error occurred.

java.lang.UnsupportedOperationException: Exceeded maximum number of wifi locks
at android.net.wifi.WifiManager$WifiLock.acquire(WifiManager.java:968)
at jp.co.kayo.android.localplayer.service.MediaPlayerService.g(Unknown Source)
at jp.co.kayo.android.localplayer.service.MediaPlayerService.onPrepared(Unknown Source)
at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:1442)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method)

I'm sorry. It is an error to obtain multiple locks too. I'll fix in the next release.

Wednesday, January 4, 2012

ICS Support


I have other work I should, But I escaped.
That has implimented a JustPlayer today.


The current implementation has been changed playlist.
We know you want. But I am worried if I do I implement it. The program is a simple, GUI. How difficult do you propose that is usability.

For example, adding a playlist, add a new playlist, replacing the playlist, added to the current playlist. Replace the current playlist. Add to context menu of all these measures and the best idea.


What to do then? There is one answer to QuickActionDialog. Is it easy to understand icons can be increased even if this action.
But I'm not good at design icons.
Would be unnecessary and confusing to use the quad icon.

The icons are not a problem to be solved soon, I decided to do something else.


I want to support the implementation of ICS had before.
The following screen shot will work with only ICS / HonyComb.

Notification control

LockScrenn control



If the user of the ICS, please forward to the next release.

Tuesday, January 3, 2012

The next release

Maybe version 2.32 is scheduled for


Hidden by the automatic control features.
But I thought it was personally difficult to use.
So I was prepared to release a version of the appearance time.
Has been extended to 5 seconds before the interval was 0.8 seconds.


But to release a fix so bad about this, and with another features.
It is the ability to change the color of the widget.
Please try to use a bonus I believe.

color setting

display sample


Monday, January 2, 2012

problems caused by hardware Accelerated

The following image shows a broken screen.
VideoTab
I do not know why this happen.
What is clear is that this happens only because of a hardwareconfiguration accessor.
Now possible to speed up the rendering by using the hardware configuration in accessors Honycomb / IceCreamSandwich.
Is the result on screen when scrolling occurs many times when the ListView accessor configured to On.
It does not work well with the hardware configuration is the ListView accessor was heard, It is terrible.
For now, leave the flag is turned OFF to care.


android:hardwareAccelerated="false"



Sunday, January 1, 2012

2.31 [179] released

a Happy New Year! Have you tried using the latest JustPlayer?
This upgrade is primarily fixes for Ampache.
So, then please use the latest Ampache ft JustPlayer.
Have to use the full cache of Ampache.
It should be easy to use tabs for their music.
 In addition, you should have also improved the response of artists and genres.