agwells / dotdash-keyboard-android

The world's most popular open source Morse code keyboard for Android! (probably)
GNU General Public License v3.0
32 stars 4 forks source link

Update DotDash's appearance #21

Closed agwells closed 8 years ago

agwells commented 8 years ago

One reviewer on the Google store mentioned how DotDash keyboard could use an update in its appearance. This is probably true. I originally wrote it for Android 2.0, and the appearance of Android apps has moved on considerably since then.

agwells commented 8 years ago

DotDash has basically three display components:

  1. The settings screen. This can be updated to be in the default modern Android styling and display the App bar, even though the App bar won't actually add any functionality to it at present.
  2. The cheat sheet(s). These are kind of uniquely designed, but maybe I can look at if there are any similar popups like this out there in modern Android UI, and any styling conventions for them.
  3. The keyboard itself. This is displayed with the default Android KeyboardView styling, and it actually is "modern", in the sense that the default Android styling for Android KeyboardViews has not changed noticeably from Android 2 to Android 6.

I can get some modernization in items 1 & 2 just by changing my "target SDK" when building the project (which shouldn't hurt backwards-compatibility with ancient Android versions). For instance, in my Android 5.0 LG G2 Mini, it shows the cheat sheet and config with a white background and black text. This unfortunately hurts the readability of the cheat sheet, so I'll need to work on that to make sure it "pops" properly. Maybe just putting them in bold. Or replacing those tiny periods with unicode dots. Or I could replace the whole thing with an image, although I have qualms about that scaling properly. Perhaps if I used vector graphics?

For the keyboard, life is more difficult. The way to substantially change the appearance of keys is by using the KeyboardView's keyBackground property, which requires you to define 8 different images representing all permutations of whether the key is pressed, checkable (like the Caps Lock), and checked. And I am not a graphic designer! So I may look around through other open source Android keyboards and see if any of them have graphics I can use.

agwells commented 8 years ago

Hm, actually Hacker's Keyboard (from which I have already incorporated some code), seems to have a range of different keyboard graphics for different versions of Android... unfortunately ending in 2013 when the project was last updated. I'll see if those will work for me.

agwells commented 8 years ago

Actually here's an even better idea. Just take the keyboard styling from the Android Open Source Project keyboard (which, weirdly, is apparently is not the same as the default styling you get if you make a new keyboard using the KeyboardView class.) It's Apache Software License 2 so it should be fine to include in my GPL3 DotDash. https://android.googlesource.com/platform/packages/inputmethods/LatinIME/

agwells commented 8 years ago

Another possibility would be to port the theme system from AnySoftKeyboard, which is also ASL2 licensed: https://github.com/AnySoftKeyboard/AnySoftKeyboard

I wonder if it might make sense to actually rewrite DotDash from the ground up, using AOSP or AnySoftKeyboard as my "base" instead of the generic Android KeyboardView class? I guess I should investigate whether they support some of the UI behaviors that I've been needing which KeyboardView does not, like proper multitouch support.

agwells commented 8 years ago

Fixed in 1.2.0! I mostly just adapted some of the key graphics from the stock Android keyboard.