huydq92 / hackerskeyboard

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

precision #178

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1.
2.
3.

What is the expected behavior? What do you see instead?
press one key get wrong output...

What version of Hacker's Keyboard are you using? (See top of the app's
Settings menu.) On what phone or tablet?
1.28rc24

If applicable, does this affect the 4-row or 5-row layout, or both? Which
language(s)?
both, german...

Please provide any additional information below.
see scrshots

Original issue reported on code.google.com by flipm...@gmail.com on 22 Jan 2012 at 11:52

Attachments:

GoogleCodeExporter commented 9 years ago
oh yeah... htc sensation

Original comment by flipm...@gmail.com on 22 Jan 2012 at 11:54

GoogleCodeExporter commented 9 years ago
Thanks for reporting and for the screenshots, this does look very suspicious. 
Does it happen fairly consistently, or does it appear to vary randomly?

If it's consistent, can you check if the "t" key's triggering area appears to 
be shifted left, so that its right edge produces a "z", or is it bigger than 
normal?

Lastly, do you see any unexpected borders drawn around the keyboard? I can't 
easily tell from the cropped screenshots.

Original comment by Klaus.We...@gmail.com on 24 Jan 2012 at 1:06

GoogleCodeExporter commented 9 years ago
hi... sry it took this _long_ to respond... it still happens in the version 
1.31 from the playstore. there are no unexpected borders around the keyboard. 
it happens all the time (i can recreate it; see screenshots), but sometimes 
(randomly) it would get totaly off even though i didn't press near the border. 
if you need something like a dmesg or logcat just tell me.
thx for your time.

Original comment by flipm...@gmail.com on 18 Apr 2012 at 12:01

Attachments:

GoogleCodeExporter commented 9 years ago
hi... me again... sry, i don't want to be annoying, but can it be that nobody 
else is having this issue... i mean, just look at the latest screenshot... how 
is that even possible... 

Original comment by flipm...@gmail.com on 27 Aug 2012 at 10:30

Attachments:

GoogleCodeExporter commented 9 years ago
hi... me again... in the newest version (1.34rc9) this issue seems to be 
fixed... thx. especially if it was only for me ;)

Original comment by flipm...@gmail.com on 1 Feb 2013 at 8:52

GoogleCodeExporter commented 9 years ago
mh... nope. still a problem with 1.34rc9. see attachment.

Original comment by flipm...@gmail.com on 3 Jun 2013 at 11:08

Attachments:

GoogleCodeExporter commented 9 years ago
one more time... :)

Original comment by flipm...@gmail.com on 23 Jan 2014 at 10:42

Attachments:

GoogleCodeExporter commented 9 years ago
oh yeah... this time on nexus 7 (2013) with orig. software (4.4.2)

Original comment by flipm...@gmail.com on 23 Jan 2014 at 10:45

GoogleCodeExporter commented 9 years ago
Have this problem, too.
Created a custom version with this code.
seems only backspace remains not pushable on it's left side, but thats much 
better than pushing ' or + accidentally.

    private void computeNearestNeighbors() {
        // Round-up so we don't have any pixels outside the grid
        mCellWidth = (getMinWidth() + mLayoutColumns - 1) / mLayoutColumns;
        mCellHeight = (getHeight() + mLayoutRows - 1) / mLayoutRows;
        final int keycount=mKeys.size();

        mGridNeighbors = new int[keycount][];
        int[] indices = new int[keycount];
        for(int i=0; i<keycount; i++)
        {
          final Key ikey = mKeys.get(i);
          int count = 0;
          indices[count++] = i;
          // if(false) // test
          for(int j=0; j<keycount; j++) if(i!=j)
          {
              final Key jkey = mKeys.get(j);
              boolean isSpace = jkey.codes != null && jkey.codes.length > 0 && jkey.codes[0] == LatinIME.ASCII_SPACE;
              int x=ikey.x+ikey.width/2 - (jkey.x +jkey.width/2);
              int y=ikey.y+ikey.height/2 - (jkey.y +jkey.height/2);

                  // shortened condition, might not be fully  correct
              if(x*x+y*y < mProximityThreshold) 
              {
                //if (isSpace) Log.i(TAG, "space at grid" + x + "," + y);
                indices[count++] = j;
              }
          }
          int [] cell = new int[count];
          System.arraycopy(indices, 0, cell, 0, count);
          mGridNeighbors[i] = cell;
      }
    }

    public int[] getNearestKeys(int x, int y) {
        if (mGridNeighbors == null)
            computeNearestNeighbors();

        final int keycount = mKeys.size();
        for (int i = 0; i < keycount; i++) 
        {
           final Key key = mKeys.get(i);
           if(key.isInside(x, y))
               return mGridNeighbors[i];
        }
        return new int[0];
    }

Original comment by harald4g...@googlemail.com on 20 May 2014 at 1:18

GoogleCodeExporter commented 9 years ago
Hi. I'd like to test your version too. It would be great if you could send me 
or attach the binary :)
Thx.

Original comment by flipm...@gmail.com on 20 May 2014 at 8:38

GoogleCodeExporter commented 9 years ago
@flipm.. 
Well .. let me get some experience in java/android/mercurial development and do 
some more testing before providing the apk.

In between I've made some more modifications and research ..
I discovered that the dead area in backspace (shift as well) were intentional.
What looks still odd to me is the hit testing of the key's, because I'd expect 
that vertical gaps are assigned halfwidth to neighbors.

@klausw
I had to remove new VoiceRecognitionTrigger(this); because it causes instant 
crashes .. any ideas how to solve?

Original comment by harald4g...@googlemail.com on 20 May 2014 at 8:04

GoogleCodeExporter commented 9 years ago
As promised here is my modified version (Main.apk).

Notes: 
- You will lose your settings when switching to this apk (
- You have to allow unknown sources for installation
- Voice input doesn't work (causes app to crash, I disable it in settings)

Improvements:
- No incorrect hit's 
- Draw a connecting line of the most recent presses if cross-line is enabled 
(except for password fields)

I've also attached the modified sources.

Original comment by harald4g...@googlemail.com on 19 Jun 2014 at 1:52

Attachments: