motorola + kuix 1.1.0 = bad

7 messages - 2064 views

apparently kuix version 1.1.0 is wayyyy screwed up on motorola. or at least the v3xx.

I know motorola has generally different keymappings, what happened in kuix 1.1.0?

the d-pad down arrow is pressing the left soft key, and neither of the real softkeys register anything at all.

this is bad! when might there be a fix for this? I'm porting to motorola for the first release of this app (and purchase of the commercial license)

 

thanks!!

 

Right, the best wayt to solve it is to have this phone ... but I do not have it.

Actualy Kuix try to find the mobile platform by retrieving the platformname, trying to create some specific classes. But there some limit to this method.

For example left softkey is detected like this :

            if (platformName.equals(KuixConstants.PLATFORM_MOTOROLA)) {
                String softkeyLeftMoto = "";
                try {
                    softkeyLeftMoto = getKeyName(SOFT_KEY_LEFT_MOTOROLA).toUpperCase();
                } catch (Exception e) {
                }
                String softkeyLeftMoto1 = "";
                try {
                    softkeyLeftMoto1 = getKeyName(SOFT_KEY_LEFT_MOTOROLA1).toUpperCase();
                } catch (Exception e) {
                }
                String softkeyLeftMoto2 = "";
                try {
                    softkeyLeftMoto2 = getKeyName(SOFT_KEY_LEFT_MOTOROLA2).toUpperCase();
                } catch (Exception e) {
                }
                if (softkeyLeftMoto.indexOf(SOFT_WORD) >= 0 && softkeyLeftMoto.indexOf("1") >= 0) {
                    return SOFT_KEY_LEFT_MOTOROLA;
                } else if (softkeyLeftMoto1.indexOf(SOFT_WORD) >= 0 && softkeyLeftMoto1.indexOf("1") >= 0) {
                    return SOFT_KEY_LEFT_MOTOROLA1;
                } else if (softkeyLeftMoto2.indexOf(SOFT_WORD) >= 0 && softkeyLeftMoto2.indexOf("1") >= 0) {
                    return SOFT_KEY_LEFT_MOTOROLA2;
                } else if (softkeyLeftMoto.indexOf(SOFT_WORD) >= 0 && softkeyLeftMoto.indexOf("LEFT") >= 0) {
                    return SOFT_KEY_LEFT_MOTOROLA;
                } else if (softkeyLeftMoto1.indexOf(SOFT_WORD) >= 0 && softkeyLeftMoto1.indexOf("LEFT") >= 0) {
                    return SOFT_KEY_LEFT_MOTOROLA1;
                } else if (softkeyLeftMoto2.indexOf(SOFT_WORD) >= 0 && softkeyLeftMoto2.indexOf("LEFT") >= 0) {
                    return SOFT_KEY_LEFT_MOTOROLA2;
                }

}

But it seems to be insufisant ...

hey tofu, well, it seems it was sufficient in version 1.0.1 and earlier builds of KUIX, if I load the kuixdemo.jar from previous versions, it works fine, so, whatever was changed in the 1.1.0 build is the problem. and a major one in the case that motorola is waiting for me to send them a corrected version for evaluation.

 

ugh. bad. halp! :)

ok, I dug into the kuix source and tried out a few things, i found out what the problem is.

in kuix 1.1.0, there's an additional catch for the new sun SDK 3.0. 

line 1044 of KuixCanvas:

} else if (currentPlatform.indexOf("SunMicrosystems") != -1 || currentPlatform.indexOf("j2me") != -1) { // SunMicrosystems = WTK 2.5.x, j2me = J2ME Platforme SDK 3.0

 

problem is, motorola reports the value of "j2me" for System.getProperty("microedition.platform");

that means, kuix 1.1.0 thinks that motorola phones are the new sun SDK 3.0. ouch.

 

I removed the check for "j2me" as the currentPlatform, and it detects the motorola just fine.  what the "real" fix is, i don't know yet, it needs some other way to detect the SDK3.0 without cutting out the motorola tests.

Arrr ... thanks for that. i think the best way would be to check default sun platform at the end of all detections.

Guys, thanks a lot for this approach.

Like Tofu said I moved the first trycatch(System.getProperty()...) block to the end.

Works fine for my L7 :)

 

I met the same problem on moto v8, finally I soluted this error by pandora808's method.