filipst / hackerskeyboard

Automatically exported from code.google.com/p/hackerskeyboard
0 stars 0 forks source link

Selecting Hebrew keyboard shows English layout #122

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
(As reported via email)

What steps will reproduce the problem?
1. Activate Hebrew in "Input Language Selection" settings menu
2. Slide space bar to activate the layout

What is the expected output? What do you see instead?

The keyboard shows that Hebrew is selected according to the text displayed on 
the space bar, but the layout remains English.

Activating other keyboards (Greek, French, Arabic) and switching to them works 
as expected, just Hebrew remains unselectable.

System locale was set to English.

System: Samsung Galaxy S2
Version: 1.27.1145 4d199a6937e9 2011-11-06

Original issue reported on code.google.com by Klaus.We...@gmail.com on 7 Dec 2011 at 6:53

Attachments:

GoogleCodeExporter commented 9 years ago
I've been unable to reproduce this so far and am not sure what's going on here. 
I'll look into preparing a debug version of the keyboard that provides more 
detail about what it's doing.

Original comment by Klaus.We...@gmail.com on 7 Dec 2011 at 6:54

GoogleCodeExporter commented 9 years ago
A question for anyone affected by this bug - in the "input languages" menu, 
does it show the "5-row, 4-row", and/or "Dictionary available" message in the 
list entry for the "Hebrew" checkbox? And do you have the Hebrew dictionary 
installed?

Original comment by Klaus.We...@gmail.com on 7 Dec 2011 at 6:56

GoogleCodeExporter commented 9 years ago
Hello
I have the same problem on same device.
On my HTC HERO and DELL STREAK the Hebrew selection works fine.

Original comment by yis...@yishay.net on 8 Dec 2011 at 12:29

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Hello,
Just switched from MIUI where the keyboard worked perfectly, to a custom 
Samsung rom and now I am affected by this issue as well.

To answer your question, it doesn't show the "5-row, 4-row", and/or "Dictionary 
available" even though I have the dictionary installed.

Original comment by Mofet...@gmail.com on 20 Dec 2011 at 3:56

GoogleCodeExporter commented 9 years ago
I haven't made progress yet on reproducing it, I'm suspecting that it's a ROM 
specific issue which causes problems when trying to change the locale and 
loading the locale-specific data. Apparently this is only happening on Samsung 
devices?

Anyway, I'm making progress towards the new and completely rewritten language 
selection logic and hopefully this won't be an issue anymore once that's 
complete since it will no longer depend on locale-specific locale loading.

Original comment by Klaus.We...@gmail.com on 20 Dec 2011 at 5:36

GoogleCodeExporter commented 9 years ago
Hello
The problem still occurs. 

Original comment by yis...@yishay.net on 24 Dec 2011 at 4:49

GoogleCodeExporter commented 9 years ago
See my previous update, since I can't reproduce the issue it's unfortunately 
difficult for me to do something about it. As far as I can tell my code is 
trying to do the right thing, but the Samsung OS is refusing to load the 
requested layout resources. When I get a chance to work on the new mode system, 
I'm hoping that this will take care of it.

Original comment by Klaus.We...@gmail.com on 26 Dec 2011 at 6:43

GoogleCodeExporter commented 9 years ago
Issue 139 has been merged into this issue.

Original comment by Klaus.We...@gmail.com on 3 Jan 2012 at 6:13

GoogleCodeExporter commented 9 years ago
Has anyone encountered this problem on a device other than a Samsung Galaxy S2 
specifically? If yes, please let me know, but current evidence seems to confirm 
this is most likely an OS bug in that device.

See also: 
http://stackoverflow.com/questions/8699650/android-emulator-displays-hebrew-reso
urces-correctly-but-device-doesnt

Original comment by Klaus.We...@gmail.com on 3 Jan 2012 at 6:16

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Hi,
I checked this issue in several devices - HTC, Galaxy S1, S2. All the devices 
that have root access can see Hebrew fonts, and all the "pure" devices without 
a changed ROM can't see Hebrew. Another concern on the same hand is that on all 
root devices I couldn't see my Ads, and on non-root devices, I saw the Ads

Original comment by noambeh...@gmail.com on 4 Jan 2012 at 8:39

GoogleCodeExporter commented 9 years ago
Any updates with this bug?
If there's a workaround that can be used it would be great.

Original comment by noambeh...@gmail.com on 7 Jan 2012 at 7:18

GoogleCodeExporter commented 9 years ago
I've added a very crude hack in version 1.28rc21, can you try that (or later) 
from http://code.google.com/p/hackerskeyboard/downloads/list and let me know if 
that changes things?

If my theory is right, this should enable the 4-row Hebrew keyboard since that 
will now load a (mostly) self-contained uniquely named XML resource from 
res/xml/ instead of trying to load the locale-specific alternate from 
res/xml-iw/ which apparently wasn't working.

It probably won't fix the 5-row layout since that depends on loading string 
resources from res/values-iw/ in a way that would be much harder to work 
around. As I said previously I'm planning to rewrite keyboard handling to no 
longer require the localized resources, but that's a complex change that will 
have to wait until after I get the current version stabilized and released on 
the Market, it's already delayed a lot more than anticipated.

For details, see revision 919281f5e8d1.

Original comment by Klaus.We...@gmail.com on 8 Jan 2012 at 7:30

GoogleCodeExporter commented 9 years ago
Klaus, 
Can you explain a bit how can I check your fix? I am supposed to install that 
APK in my device?
If so, how will that help my users see Hebrew in my app without this APK?
I thought that the fix is some workaround I can write in my App itself.

Original comment by noambeh...@gmail.com on 8 Jan 2012 at 8:04

GoogleCodeExporter commented 9 years ago
Noam, the current status is that I have a hypothesis about why the Samsung S2 
isn't handling Hebrew resources correctly, and I'm unable to test it myself 
since I don't own that device. I added an experimental workaround to the 
application which should help confirm or deny if the hypothesis is correct. If 
you or someone else can try that APK and it turns out to behave in the expected 
way, this would mean that the workaround is effective and could potentially be 
adapted for other applications in a similar way.

If you do want to help test, please install the APK and follow the onscreen 
instructions to activate it as an input method, activate "Hebrew" in the "Input 
languages" selection menu, and swipe the space bar horizontally to select that 
language. Then try typing in portrait and landscape mode and let me know if you 
see English or Hebrew letters on the keys.

Unfortunately, if it turns out that I'm right, the workaround would be 
difficult to do in general and may require a radical restructuring of the 
application, and possibly interfering with portability to other devices. It 
would be far better if Samsung would fix their OS instead of expecting 
application authors to individually add difficult workarounds to their code.

Original comment by Klaus.We...@gmail.com on 8 Jan 2012 at 8:28

GoogleCodeExporter commented 9 years ago
Hi,

I want to make sure we understand eachother:
1. The problem is not with the keyboard. I have an Hebrew keyboard. I just 
don't see the resources written in res/values-iw/. Why is this related to the 
keyboard?

2. As I wrote above, it happens in all devices which are not rooted - Samsung 
S1, S2 and also HTCs (!). In order to repro this just grab a device which is 
NOT rooted, make yourself an application with Hebrew strings under 
res/values-iw/, change device's language to Hebrew and run the app. You'll see 
the default English strings. Then grab a device which IS rooted, and install 
the same App - now you WILL see the Hebrew resources.

Original comment by noambeh...@gmail.com on 8 Jan 2012 at 9:06

GoogleCodeExporter commented 9 years ago
Hello.
Tried both rc21 and rc22 - latest.
Hebrew doesn't shows up.
How can I provide more debugging info?

Samsung galaxy S
Not rooted. Stock firmware updated.
V. 2.3.3

Original comment by Nad....@gmail.com on 11 Jan 2012 at 11:59

GoogleCodeExporter commented 9 years ago
Nad.Oby, this is interesting. Just to confirm, you've activated Hebrew in input 
languages, and selected the 4-row layout mode? The current partial workaround 
doesn't help for 5-row mode which handles resources differently. It should show 
"Hebrew" (or "עברית") on the space bar to indicate that it attempted to 
switch.

If you've done all these steps and it's still showing an English layout, it 
appears that my hypothesis is wrong and something else is going on. For 
example, this could happen if requesting locale "iw" and then retrieving the 
2-letter language code from it returned something different from "iw".

If you can confirm the steps, I can make a test version with a different 
workaround to try.

Original comment by Klaus.We...@gmail.com on 11 Jan 2012 at 8:40

GoogleCodeExporter commented 9 years ago
I've added a different workaround in 1.28rc23 available from 
http://code.google.com/p/hackerskeyboard/downloads/list, can you try that? If 
the new hypothesis is right, this should hopefully fix both the 4-row and 5-row 
layouts.

See revision d329930b2e54 for details.

Original comment by Klaus.We...@gmail.com on 12 Jan 2012 at 9:59

GoogleCodeExporter commented 9 years ago
Last revision works fine.
Both 4 and 5 rows layouts show all 3 languages I use fine.
Not found regressions.
Thanks.

Original comment by Nad....@gmail.com on 13 Jan 2012 at 6:05

GoogleCodeExporter commented 9 years ago
Also took a look at 
http://code.google.com/p/hackerskeyboard/source/detail?r=d329930b2e54
It's a hack, hope you'll  understand the root cause .

Original comment by Nad....@gmail.com on 13 Jan 2012 at 6:15

GoogleCodeExporter commented 9 years ago
Glad to hear it, thanks for testing.

The new workaround simply makes a duplicate copy of the res/*-iw/ resources  
under res/*-he/, and I've removed the earlier special case in the code.  

See my post at http://stackoverflow.com/a/8716894/405214 for more detail. It 
appears that the OS of the Samsung Galaxy S2 handles the Hebrew locale and 
resources differently than other Android devices. Android uses language code 
"iw" for Hebrew or legacy compatibility, while Samsung apparently changed it to 
use language code "he", which is arguably correct as per ISO 639-1 but 
incompatible. See Android issue 
http://code.google.com/p/android/issues/detail?id=3639 for  more background 
information.

The effect is that the resources in res/*-iw/aren't being loaded on the 
affected Samsung devices, and the workaround is to add a duplicate copy in 
res/*-he/.

Original comment by Klaus.We...@gmail.com on 13 Jan 2012 at 5:56

GoogleCodeExporter commented 9 years ago
[Bulk bug update] The new Market release 1.29 includes the changes from the 
v1.28 prerelease series, and these "FixInTest" issues should now be fixed. If 
not, please reopen the bug with additional information. If the original bug 
covered multiple separate issues that aren't all addressed, please open new 
bug(s) for the leftover ones.

Original comment by Klaus.We...@gmail.com on 13 Jan 2012 at 9:29

GoogleCodeExporter commented 9 years ago
Bulk update - changing "Fixed" to "Verified" for old bugs.

(Background: I'm changing the "Fixed" status to be considered open, the next 
steps in the lifecycle will be the closed states "FixInTest" and "Verified". 
This lets me mark issues as "Fixed" in commit messages without hiding them from 
the issue tracker.)

Original comment by Klaus.We...@gmail.com on 22 Jan 2013 at 7:33

GoogleCodeExporter commented 9 years ago
Bulk update - changing "Fixed" to "Verified" for old bugs.

Original comment by Klaus.We...@gmail.com on 22 Jan 2013 at 7:34