weslirobert / openintents

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

On Ice Cream Sandwich, shortcuts conflict with editing keys #436

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Run OI Notepad on Galaxy Nexus or other ICS device
2. Use a hardware keyboard, or a soft keyboard with a Ctrl key
3. Type Ctrl-X/C/V/A key combinations

What is the expected output? What do you see instead?
In ICS, the standard text edit widgets support the usual Ctrl shortcuts such as 
Ctrl-X for cut, Ctrl-C copy, Ctrl-V paste, Ctrl-A select all, which is very 
useful when using a keyboard with a Ctrl key. In OI Notepad, these seem to 
conflict with built-in menu shortcuts:

Ctrl-A: shows the "Save to SD card" dialog
Ctrl-X: shows a toast saying "Error when writing file"
Ctrl-D: deletes the note with no prompting and (apparently) no undo, which is 
unfortunate since it's easy to hit this by accident instead of Ctrl-C.

The keys do seem to do their usual actions in addition to the shortcut, for 
example hitting "Back" on the "Save to SD card" dialog shown after Ctrl-A 
returns to the note, and all text is highlighted.

What version of the product are you using? On what operating system?
OI Notepad 1.2.3 from Market
Galaxy Nexus with Ice Cream Sandwich

Please provide any additional information below.
This page looks related: 
http://developer.android.com/reference/android/widget/TextView.html#onKeyShortcu
t(int, android.view.KeyEvent)

Original issue reported on code.google.com by Klaus.We...@gmail.com on 19 Dec 2011 at 9:31

GoogleCodeExporter commented 9 years ago

Original comment by peli0...@googlemail.com on 26 Dec 2011 at 7:59

GoogleCodeExporter commented 9 years ago
Should the OI Notepad shortcuts be disabled for this version of Android, or 
should the Android shortcuts be overridden?

Original comment by dkremov on 4 Jan 2012 at 2:49

GoogleCodeExporter commented 9 years ago
Best is to conform with standard Android shortcuts if they are available, so OI 
Notepad shortcuts should be disabled or modified sensibly on ICS devices.

Original comment by peli0...@googlemail.com on 4 Jan 2012 at 3:12

GoogleCodeExporter commented 9 years ago
So we need a platform check and if platform is 4 or higher, OI Notepad 
shortcuts should be disabled, at least in the beginning. Later new shortcuts 
can be created and applied for all platform, so people shouldn't be confused?

Original comment by dkremov on 4 Jan 2012 at 5:29

GoogleCodeExporter commented 9 years ago
I would suggest to switch shortcuts starting from API level 11 (Honeycomb - 
Android 3.0) to new shortcuts.
All older shortcuts could stay as they are. People can learn new shortcuts when 
they get a new device.
(If people request this, we could add a setting for using the new shortcuts 
also on older versions - but I doubt there will be a large demand for it...)

Original comment by peli0...@googlemail.com on 5 Jan 2012 at 1:15

GoogleCodeExporter commented 9 years ago
OK, then new shortcut keys should be created, like ctrl-S for Save to SD card 
and so on, but you must specify them to me so I can change them, or if you want 
I can try to think of suitable shortcut keys.

Original comment by dkremov on 5 Jan 2012 at 7:30

GoogleCodeExporter commented 9 years ago
Yes, please suggest suitable shortcut keys here so that we can discuss them :-)

Original comment by peli0...@googlemail.com on 5 Jan 2012 at 11:55

GoogleCodeExporter commented 9 years ago
http://www.google-melange.com/gci/task/view/google/gci2011/7184249

Original comment by peli0...@googlemail.com on 5 Jan 2012 at 11:58

GoogleCodeExporter commented 9 years ago
CTRL-S to be changed to menu_save or better to menu_save_as, if not, then 
menu_save_as can be changed to ctrl-W (as it is next to S and is not A or D, 
which are taken)
the Settings to be accessed by CTRL-P (P for preferences) or just to be 
removed, I doubt someone uses this particular shortcut.
As for CTRL-D, I think this option should be removed or a warning should be 
displayed "note is about to be deleted, proceed?"

Original comment by dkremov on 5 Jan 2012 at 12:37

GoogleCodeExporter commented 9 years ago
You are right, let's remove rarely used shortcuts - which includes the 
dangerous one for "delete" (the dialog exists already - by the way) and the one 
for preferences (one could check whether settings/preferences have a shortcut 
in other Google apps like the browser or Gmail...).
Ctrl-S for save would a a frequently used shortcut, I assume. Ctrl-W for "Where 
to save" is also fine with me :-)

Original comment by peli0...@googlemail.com on 5 Jan 2012 at 1:38

GoogleCodeExporter commented 9 years ago
OK, so for now, I must remove the delete shortcut and maybe the settings 
shortcut? OH, I found a shortcut for Google Chrome for settings:
"Alt+F or Alt+E ------ Opens the wrench menu, which lets you customize and 
control settings in Google Chrome."

Maybe CTRL+F or  Alt+F as it is in Chrome?

Original comment by dkremov on 5 Jan 2012 at 2:29

GoogleCodeExporter commented 9 years ago
Another alternative is CTRL-O - O for Options?

Original comment by dkremov on 5 Jan 2012 at 2:33

GoogleCodeExporter commented 9 years ago
And I have a question, what is this number before the letter doing? 

.setShortcut('*2*', 'x')

Original comment by dkremov on 5 Jan 2012 at 2:43

GoogleCodeExporter commented 9 years ago
Chrome for Android? This would be a good reference...

The number is for very low-end devices which use a numeric keypad only (and may 
not even have touchscreen), so this is the number on the numeric keypad. This 
could also be modified at this occasion if appropriate.

Original comment by peli0...@googlemail.com on 5 Jan 2012 at 3:11

GoogleCodeExporter commented 9 years ago
No, it was for Windows, I can't seem to find its shortcuts in android. And 
Gmail app doesn't have such a shorcut... So maybe we should use P or O? or just 
remove key shortcut for settings?

Original comment by dkremov on 5 Jan 2012 at 3:18

GoogleCodeExporter commented 9 years ago
Ok, here are some shortcuts from the browser app in Android 3.2:
Ctrl-W: Delete tab <-- conflict with "save all"?
Ctrl-S: Share <-- conflict with "save"?
Ctrl-R: Reload
Ctrl-T: New tab
Ctrl-I: Zoom in
Ctrl-O: Zoom out
Ctrl-P: Preferences <--
Ctrl-A: Select all
Ctrl-C: Copy

The software keyboards ("Keyboard with Ctrl key" and "Hacker's Keyboard") I 
tried out on Android 4.0 didn't respond to the Ctrl-key.

Original comment by peli0...@googlemail.com on 5 Jan 2012 at 9:30

GoogleCodeExporter commented 9 years ago
Well, the browser app doesn't have save/save as, so we can safely set save and 
save all in OI notepad to be Ctrl-S and Ctrl-W, as Ctrl-S is a well known 
'save' shortcut. We can use Ctrl-P for preferences, as I wanted, the other 
things are OK. 
I am also unable to emulate the Ctrl key on Android emulator, and spent hours 
yesterday trying to find a way to use the Ctrl key on the emulator. Neither 
there is a soft CTRL key there, nor it responds to my hardware keyboard CTRL. 
So maybe we should just find the built in text key shortcuts of Android 4 so 
then I can set the shortcuts for Android 3+ as they should be in order to avoid 
conflict.

Original comment by dkremov on 6 Jan 2012 at 8:19

GoogleCodeExporter commented 9 years ago
I found all android keyboard typing shortcuts (also noticed they say MENU, not 
CTRL, so I will try to simulate the combinations on the emulator by clicking 
and holding MENU with the mouse and pressing the needed key on the keyboard):

Android Keyboard Shortcuts: Typing

• Alt + Spacebar: Insert a special character

• Shift + Del: Delete the character to the right of the cursor

• Alt + Del: Delete an entire line

• Shift + Shift (press it twice): Activate caps-lock; press shift once more 
to exit

• Alt + Trackball-Left: Move cursor to beginning of line

• Alt + Trackball-Right: Move cursor to end of line

• Alt + Trackball-Up: Move cursor to top of page

• Alt + Trackball-Down: Move cursor to bottom of page

• Shift + Trackball-Left/Right: Highlight text for cutting or copying

• Menu + X: Cut text (will cut all text on-screen unless specific characters 
are highlighted)

• Menu + C: Copy text to clipboard (will copy all text on-screen unless 
specific characters are highlighted)

• Menu + V: Paste text from clipboard

• Menu + A: Select all text in the current field

Original comment by dkremov on 6 Jan 2012 at 10:29

GoogleCodeExporter commented 9 years ago
I tested my theory regarding MENU+key and it proved to be right. 
So, I want to ask - are we changing the problematic shortcuts for all platforms 
(we remove the delete shortcut for all, yes?) or only for Android 3 and higher?

Original comment by dkremov on 6 Jan 2012 at 11:22

GoogleCodeExporter commented 9 years ago
I think it is better to change the shortcuts for all devices, as otherwise a 
lot of new code will have to be added to prevent errors. Using 
if(Build.VERSION.SDK_INT>=11)
causes a crash when you try to add a new note on devices API level lower than 
11. 
So the only way is to use Reflection - 
http://android-developers.blogspot.com/2009/04/backward-compatibility-for-androi
d.html

I think three shortcuts aren't worth it. I will try to find another way to 
change the shortcuts depending on the platform version but..
After all, even for users the difference won't be significant as they will 
still have to get used to new shortcuts on latter devices. The only difference 
is that at the earlier platforms, they don't have conflicts with default 
android shortcuts.

Original comment by dkremov on 6 Jan 2012 at 2:55

GoogleCodeExporter commented 9 years ago
Yes, then just change the shortcuts for all platform versions.

(By the way, here is a version of the Build class that works for all versions 
from API level 2 to 15 which uses reflection:
http://code.google.com/p/openintents/source/browse/trunk/flashlight/Flashlight/s
rc/android/support/v2/os/Build.java
Just copy and paste that class into OI Notepad).

Original comment by peli0...@googlemail.com on 6 Jan 2012 at 6:34

GoogleCodeExporter commented 9 years ago
Ok, shortcuts are changed. As for the class you showed, what shall I do with it?

Original comment by dkremov on 6 Jan 2012 at 6:45

GoogleCodeExporter commented 9 years ago
If you want to keep some shortcuts in the older version, include the class. If 
you think it is better to remove them from all versions, don't include it. You 
have the choice :-)

Original comment by peli0...@googlemail.com on 6 Jan 2012 at 7:21

GoogleCodeExporter commented 9 years ago
Well, I uploaded a patch, it's with changed shortcuts for all versions which I 
think is better, but I may tinker with the class, just for fun and to gain some 
more experience :-)

Original comment by dkremov on 6 Jan 2012 at 7:26

GoogleCodeExporter commented 9 years ago
I think it is good to have the same shortcuts across all versions.
Please update your patch to include the other OI apps as well, so that the new 
shortcuts are uniform across all OI apps.
Also, please provide a list of new shortcuts for each application so that we 
can put this into a FAQ.

Original comment by peli0...@googlemail.com on 6 Jan 2012 at 9:54

GoogleCodeExporter commented 9 years ago
Hm, I was sending replies earlier by email but those are apparently not being 
added to the bug :-(

Anyway, the current Market version of Hacker's Keyboard didn't fully support 
Ctrl outside of ConnectBot, I had discovered the odd OI Notepad behavior while 
working on a newer version which fixed that, and confirmed with a hardware 
Bluetooth keyboard. You can try v1.28rc19 (or later) from 
http://code.google.com/p/hackerskeyboard/downloads/list, but I'm also unable to 
repeat it in the ICS emulator, just on the real device. Odd.

You mentioned earlier considering Ctrl-F for settings, I think it would be 
better to reserve that for a "Find" function which would be more intuitive, 
especially if you want to keep things consistent across apps.

Thanks for working on it!

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

GoogleCodeExporter commented 9 years ago
OI NotePad
CTRL + S - Save
CTRL + W - Save As
Delete shortcut removed
CTRL + P - Preferences/Settings

OI Countdown
Changed a CTRL+S to CTRL+P (everywhere one shortcut for settings)
Removed the Delete shortcuts too.

OI File Manager
Changed again S to P for Settings. Also noticed that there was a conflict with 
Include/Exclude Media Scan - they also use s  for shortcut. Now it should be OK.

OI Safe (CategoryList.java)

DEL_CATEGORY_INDEX - removed the CTRL-D shortcut, following the policy of "no 
delete shortcuts".

ADD_CATEGORY_INDEX - possible conflict with default Android shortcuts - CTRL+A. 
No changes made, though, as I'm not absolutely sure it will conflict (not sure 
if android's "select all" is callable there, if there is nothing to select)

OI Shopping List

Removed a delete shortcut. The other shortcuts look OK. 

Well, these are the major OI apps, so I think that's it. Patch uploaded

Original comment by dkremov on 7 Jan 2012 at 8:47

GoogleCodeExporter commented 9 years ago
This issue was closed by revision r3996.

Original comment by peli0...@googlemail.com on 7 Jan 2012 at 9:18