# Version History

## 3.2.19

- Fix for a crashing bug in live OCR line detection.

## 3.2.18

- Fix for a bug that could cause the Screen Reader button to reappear repeatedly even after turning it off (sorry about that, unintended offshoot of the fix for precisely that problem in 3.2.17).

## 3.2.17

- Fix for a bug that caused Screen Reader and/or Clip Monitor to keep reapparing at startup even after you’d disabled them.
- Fixed a bug that could cause unexpected flashcard new card limiting behavior after assigning a bunch of cards a new priority.
- Fixed a few minor crashing bugs.

## 3.2.16

- Minor bug fixes.

## 3.2.15

- Officially added support for Android M, including the new permission request system, floating text selection commands (only supported by Android on editable text at the moment, but highlight a piece of that and you’ll see a “Pleco” option in the spillover menu), and some new requirements for native library string relocation (this was actually a huge pain in the butt which is why we’re mentioning it here even though hardly anybody knows what we’re talking about).
- Overhauled the interface for invoking Screen Reader and OCR; there’s now just a single Screen Reader sidebar item (which we’re awkwardly calling “Screen Reader + OCR” for a couple of releases until everybody gets used to it and we can change it to “Reader” all the time), tapping that (or using the Screen Reader shortcut) will toggle both items, and the states of whether they’re visible / invisible are now controlled solely via long-pressing the floating button. And the buttons are vertically instead of horizontally stacked.
- Added an option to invoke Screen Reader / OCR via a notification instead of a floating button. (long-press menu or Settings)
- Added new shortcuts (which can be created via the shortcut app of your choice) to directly invoke Screen OCR / Screen Reader rather than merely toggling the availability of their button.
- Improved Screen Reader results in a number of apps, including QQ and WeChat-when-it’s-running-on-a-very-old-version-of-Android.
- Greatly improved stability / reduced memory usage of OCR on some (ironically) new and memory-rich devices by adding a custom memory allocation function for OCR (this is our workaround for the infamous Lollipop “memory leak” bug as it manifested in Pleco).
- Migrated (at last) to the new Android Studio developer tools, which probably won’t be noticeable on your end unless we screwed something up but will streamline some things about Pleco releases going forward.
- Added separate definition scrolling buttons to the Clip Monitor notification since the mix of left/right / top/down buttons in the old one was very confusing and the wasted space is minor / infrequent.
- Made the “jump to dictionary” command in the Clip Monitor notification and in some OCR modes fill in results from other dictionaries besides your current one, when previously it hadn’t.
- Added a “recognize” button in handwriting in flashcard tests in fill-in-the-blanks mode with “conceal until finished” enabled, for the sake of our stylus-using customers who can’t use the two-finger tap gesture, and redid the way we advance through characters in fill-in-the-blanks tests a bit
- Made the Screen Reader floating button hide itself when the system is in Doze mode.
- Made text-to-speech work again on some x86 devices (Asus) through a clever hack that did not require us to release a separate version of our app for them.
- Made both Screen Reader and Screen OCR preserve your last keyboard status when possible (rather than forcing the keyboard to close).
- Made Screen Reader get along a bit better with other apps that float stuff on top of the screen.
- Made Screen OCR save its last focus rectangle a bit more consistently.
- Made selections of of items from your search history no longer cause your search history to be re-ordered - they should now stay in their previous order.
- Added an option in Settings to show invert/orient buttons in Screen OCR (though the UI is currently a bit awkward - you have to resize the recognition area in order to be able to tap on them).
- Made the “use TTS if no recording” setting match its iOS behavior, defaulting to “off” with only the free system TTS and “on” with one of our paid TTS add-ons.
- Added an option in “external access” settings to hide characters in the Screen OCR overlay.
- Made PDF files show up in the document reader “recent files” history.
- Made flashcard sessions persist more reliably if your device crashes while in the process of waking up from sleep.
- Made “plecobundle.plc” file detection work in the Documents and Downloads directories too.
- Added an alert on MIUI (= Xiaomi) devices advising users how to enable Screen Reader overlay access (unfortunately there seems to be no way to detect if it’s disabled or to automatically bring users to the screen for enabling it if so).
- Fixed a couple of crashing bugs.
- Fixed (finally) a bug relating to imports of user dictionaries in which some entries could go missing if too many entries had identical Chinese characters.
- Fixed a bug that made the multi-level category selection option unavailable in the PDF reader.
- Fixed a bug that made character highlight rectangles offset a bit from the characters themselves in screen OCR.
- Fixed a bug that could cause filled-in custom dictionary entries / flashcards to have extra characters tacked on at the end.
- Fixed an issue that kept Cantonese TTS from working correctly on Android versions prior to 4.3.
- Fixed a bunch of minor crashing bugs.
- Fixed a bug that caused wacky display when rotating the screen with Screen OCR active (even if it was only in the background).
- Fixed a bug that could sometimes prevent CC-CEDICT from downloading initially, and added a (“don’t show again”able) alert on startup if CC-CEDICT is missing.
- Fixed a bug that could cause initial file downloads to hang (rather than putting up an error message) when encountering certain problems accessing SD cards.
- Fixed a crash when opening Card Info from a duplicate prompt in Screen Reader / OCR (though we have to jump into the full Pleco app to pull it up).
- Fixed a bug that prevented the highlight from updating correctly when interrupting the system text-to-speech engine.
- Fixed a bug that made using custom startup directories on external SD cards impossible on some devices.
- Fixed a bug that could cause unexpected behavior when switching between dictionary groups with a particular combination of fallback settings. (you’d end up searching a random dictionary you hadn’t chosen)
- Fixed a bug that could cause crashes on tapping on a full-text Chinese search result.

## 3.2.14

- Fixed a crashing bug on restarting your device (that could also assert itself with Pleco running in the background, it seems).
- Fixed a crashing bug when viewing some entries in a popular user-created dictionary that was using one of our private formatting tags incorrectly.
- Fixed a few other rare crashes and memory leaks (more / larger fixes coming soon in 3.2.15).

## 3.2.13

A massive update with an unassuming version number:

- Added a new “Screen Reader” function (available through the sidebar menu). This uses the Android accessibility infrastructure to pull the text of whatever app you’re looking at right now and overlay the screen with a tap-lookup-friendly Pleco version; we add a little floating ‘reader’ button overlay to the screen while it’s running. (you can move that button wherever you like by dragging it, and dismiss it with a long press)
  - This works on Android 4.1 or later, though support in specific apps varies - doesn’t work in the pre-Chrome Android Browser but does seem to work reasonably well in Chrome, works great in WeChat, doesn’t work in Kindle (big disappointment, that one) but does work in Google Play Books. If you find that a specific app gives you little or no information (particularly problematic in apps like Chrome with very complicated text layouts), tap back or tap outside of the readable areas to dismiss this, wait a second or two, then tap on the reader button again. Or, if it’s scrollable, try scrolling it.
  - This actually turned out way better than we expected it to, and we’re excited enough about its potential that we expect it to play a major role in our future Android development plans. While we aren’t taking advantage of this yet, the accessibility system also gives us a great deal of information about which specific app we’re running in and gives us notifications when bits of the UI change, so one thing we plan to explore in the future is developing app-specific overlays - trying to match the original app’s typography etc more exactly and updating the screen when it changes. We can even exercise a degree of ‘remote control’ over apps, so it’s possible we might be able to use this to build an entire Pleco skin around WeChat; WeChat would still be running, but it would be completely overlaid with a Pleco UI that would let you not only look up words but even compose replies.
  - We’re excited enough about what we can do with this and eager enough to hear what you all think of it that we’re making this feature completely free, at least in its current form - we may make a paid ‘enhanced version’ of it at some point, either as part of the reader add-on or as a separate add-on, or possibly even charge for app-specific UI skins if those prove a popular concept (would help to justify developing them for more obscure apps), but our intent is to give everybody something reasonably usable in our free app.
  - Please do let us know if it behaves oddly or doesn’t work at all in a particular app - we can’t necessarily do anything if an app doesn’t support accessibility, but if it supports it but produces confusing results we can hopefully do something about that. Please also let us know if you notice any performance problems when this is running - we think we’ve got it optimized pretty well but there’s probably something we’ve missed.

- Also added a “Screen OCR” function - this one is for Android 5 only (earlier versions didn’t support the necessary API). It basically just takes a screenshot and instantly OCRs it, popping up a simplified version of our OCR interface with a popup bubble for looking up words. Less reliable than Screen Reader and without quite as much future potential, but useful for apps where Screen Reader doesn’t work well. This one is not free, but it’s included with our OCR add-on, so no extra purchase needed if you already have that. Like Screen Reader it’s accessed via a floating button, and you can turn either reader option on or off with a long press of that floating button

- Added PDF support to both the document reader and OCR - open a PDF in the document reader to view embedded text, open one in Still OCR to recognize it as a series of images.

- Added support for Google TTS (and any other TTS engine using Android’s system TTS framework). This is somewhat less nice than our paid Hui/Liang TTS add-ons, as the audio is of lower quality, there’s no facility for following along word-by-word (we go sentence-by-sentence instead) and there doesn’t seem to be any way we can override the syllable mappings (so we can’t use it to reliably play headwords), but it’s free and reasonably functional and is currently the only way we’re able to offer Cantonese TTS.
  - Settings / Audio now looks pretty much the same as its iOS equivalent - “cycle voices” comes with checkboxes to let you select which voices to switch between and there’s now an option to include English audio play buttons in example sentences too. There’s also an option to choose your own text engine if you don’t like Google’s but have another one installed that you prefer.

- Added native x86 code libraries for the sake of people with x86-based tablets or using desktop emulation solutions like ARC Welder - Pleco should be screaming fast on those now. Note that the text-to-speech add-ons are still ARM-only, so if your device can’t run ARM code in emulation, most of Pleco should work (including handwriting and OCR) but text-to-speech will probably still refuse to load.

- Also for the sake of our ARC Welding friends, added four new control key shortcuts; control-F jumps you back to the search screen with an open empty search bar regardless of where you are in our app, control-R does that and pastes the current content of the clipboard into the search field, control-D adds the current word to flashcards, and control-O plays audio.

- Brought back a separate image gallery option in the Still OCR open menu on Android 4.4 and later.

- Fix for a longstanding Clipboard Monitor bug that would cause the Settings screen (and some other tabs as well) to be blank if Pleco was launched directly from Clipboard Monitor while that tab was open + you then switched back to it.

- Fixed a really nasty bug (in some Google-supplied code, but that’s neither here nor there…) that could cause startup hangs when opening a copy of Pleco downloaded from Google Play while in China.

- Made “Select All” in the search field also pop up a selection menu again so you can copy / paste / etc immediately.

- Made the popup reader bubble position itself correctly on Samsung devices in split-screen mode.

- Updated a bunch of minor data files, so you’ll get slightly better character decompositions in a few cases and a few font corrections, among other things.

- Added a notification option for clipboard monitoring, in the new “external access” section of Settings. This gives you a sort of notification-sized version of the Pleco popup reader interface on whatever your current clipboard text is; arrows at the top left corner scroll through previously captured clipboards, selection box at the top right shows you your current text (tap to shrink the highlighted range), arrows to the right of the definition let you both scroll through entries and scroll between words, and buttons on the bottom let you play audio / add to flashcards / search / view in dictionary. There are also options to make this notification persistent.
  - We’re actually pretty happy with how this turned out too (though the UI still needs a little refining), and are considering putting it into widget form as well (very similar code, as it happens - each a variety of RemoteView), and implementing something somewhat similar in the iOS Today Screen.

- Improved Screen Reader accuracy with large blocks of text - these should now match up pretty closely with the portion of the text that’s displayed on the screen.

- Made Pleco Reader / Pleco OCR appear more reliably in the “share” screen for text / PDF / image files, and made them actually open the files correctly when you select them. (we hope)

- Added a new control-R keyboard shortcut, which simultaneously jumps you back to the dictionary and pastes in whatever is in the clipboard.

- Overhauled the still OCR “scrollable focus” mode - now, when you tap on the button to enable that, you’ll see a reduced set of OCR control buttons and get a popup reader bubble when you tap on a character (instead of the bottom-of-the-screen definition).

- Moved clipboard monitoring to a system service and made it restart automatically when you reboot your phone if it was running before you rebooted. We also do that with Screen OCR / Screen Reader.

- Improved live OCR accuracy on devices with higher-resolution screens (we think), using a simple trick from our iOS app that was yet another Thing We Forgot To Port To Android For Way Too Many Years.

- Inspired by Screen Reader, went through Pleco’s own UI and added accessibility text to all of the parts of our UI that didn’t already have it - we’re ashamed that it took us this long to do that, but in any event our visually impaired users should now have a slightly easier time finding their way around our UI. If you’re an Android developer yourself Screen Reader is actually a very handy tool for giving yourself a quick accessibility tuneup - just go through each screen, run Screen Reader, and add content description texts to any UI controls that Screen Reader doesn’t see.

- Added an input method switching option to the tap-hold popup menu in edit fields.

- Fixed (we hope) slowdowns in the clipboard reader in ARC Welder.

- Added support for Ruby Zhuyin display (small Zhuyin text next to individual characters). We’ve done this pretty comprehensively - can be enabled not only in dictionary entry headers but also in search results, example sentences, flashcards, and the popup reader - and are planning to do a lot more with it in the future (automatically adding it to reader documents, e.g.) and to extend it to not only Zhuyin but to Pinyin and to Jyutping/Yale for Cantonese (though these would appear above/below rather than next to characters). Enable it in its dedicated options screen in Settings / Languages. Note that this will prevent regular Zhuyin from displaying if you’ve set that as one of your pronunciation systems, but if you use Pinyin as your pronunciation system and also enable side Zhuyin the two will happily coexist.

- Completely overhauled the way we handle text selection in our search field - now, long-pressing it will always (and we hope reliably) bring up a Pleco edit menu with copy / paste / select all as appropriate, mimicking the behavior on Android M and doing it in a more consistent way than we’ve managed to achieve relying on Android itself to produce that behavior.

- Added an option in settings to use old-fashioned file open / save dialogs even on devices that are running Android 4.4 or later and ought to have access to the newer SAF ones, since those don’t work correctly in some forked versions of Android. Automatically enabled them on ARC Welder since they’re currently broken on that.

- Added a male Cantonese audio add-on, and a new Cantonese audio gender preference in Settings / Audio.

- Did some preliminary optimization for Android M, including a few bug fixes, support for more gracefully handling denied permissions (though we can’t ship all of that until they release a final Android M developer kit), and a migration away from the now no longer supported Apache HTTP framework for network connections.

- Added an item to the Categories section of Card Info to let you add a card to the current default category with a single tap, and made Card Info an option for duplicate handling in settings / flashcards, this as part of a longer-term plan to replace the duplicate prompt with Card Info altogether by making all of the prompt’s features available in Card Info.

- Made the color of full-text highlights lighter for better visibility against tinted example sentences.

- Moved the loading of user dictionaries to a background thread, which should mean faster startup and a fix for the annoying bug that sometimes caused user dictionaries to be buried at the bottom of Manage Dicts even if you’d previously put them elsewhere.

- Migrated to a new settings storage system which we hope will make settings / history a bit more immune to accidental deletion on buggy or misbehaving or extremely-short-on-memory devices.

- Added long-click category selection support to the optional + buttons next to example sentences in definitions and the optional ones in individual dictionaries’ definition headers. (you can enable both of those in Settings / Definition Screen if you didn’t know they existed before)

- Added the ability to deliver updated versions of CC-CEDICT through Google Play without updating the rest of our app, which should let us update it for GPlay users much more frequently than we could otherwise. (we’re going to make these available to other users too, but probably with some sort of opt-in registration process since otherwise every time we updated it we’d rack up a few TB worth of CDN bandwidth bills)

- Added tone coloring in a few places it didn’t appear before, most importantly in English-Chinese dictionary definitions - this requires a database update, we’ve got one available for NWP right now and will have one for ABC E-C shortly too.

- Added internal support for masking Registration IDs for use in school / institutional copies of Pleco where you don’t want your users to be able to see them (contact us if you’d like to set that up for your institution).

- Made the number strings after flashcard backup files appear as sensible year-month-day-hour-minute numbers instead of Unix epoch times, and added them to flashcard exports by default (now that we have an option to remove them in settings / miscellaneous).

- Got rid of the annoying “tap with two fingers” text in the non-handwriting-input flashcard sketch box.

- Made Pinyin/Zhuyin no longer display in “VARIANT OF” items with pronunciation system set to “none,” and updated “YY” in Cantonese variants to “YL”/“JP” to match how they appear in dictionary headers.

- Added a new URL scheme for direct access to the dictionary definition screen:
  - plecoapi://x-callback-url/df?hw=(characters)&py=(pinyin, optional, used to differentiate)&sec=(tab to jump to,dict|stroke|chars|words|sents, optional)
  - If you want to fall back on the old search result scheme q?s for people with older versions of Pleco, use:
  - plecoapi://x-callback-url/q?s=(characters)&mode=df&hw=(characters)&py=(pinyin, optional, used to differentiate)&sec=(tab to jump to,dict|stroke|chars|words|sents, optional)
  - Both identical to our iOS app for easy use by website creators.
- Also added a new URL scheme for direct download and import of flashcard lists:
  - plecoapi://x-callback-url/fl?u=(URL-encoded URL of the list to download)
  - Currently only UTF–8 encoded text lists are supported. And again, identical to our iOS app.

- Moved to a new system for saving / opening still OCR photos taken with “take picture” which we hope will work more reliably on some forked Android versions (and on Android M).

- Added ‘conceal handwriting until done’ and ‘Enter concealed immediately’ options in Test Settings for fill-in-the-blanks handwriting tests, letting you prevent the handwriting recognizer from giving you hints to the correct character; with the former option enabled, you’ll only see results in the recognizer when you tap with two fingers to clear, and with the latter, the resulting character will also be entered immediately so you don’t have a chance to correct it if you screwed up.

- Made the definition screen refresh itself correctly after adding or deleting a user dictionary entry.

- Made incorrect answer characters in flashcard fill-in-the-blanks tests tappable so you can get to their definition screens and find out more about them.

- Made font sizes in the sidebar menu scale up if your overall Android font size setting is set to something higher than the default.

- Added an option in Settings / Miscellaneous to put a clipboard monitor toggle at the top of the drawer menu for more convenient access.

- Hid stroke order for the opposite character set if Pleco is only configured to display one set in the headword.

- Fixed a bug that kept the initial file download dialog from being correctly themed for Android 5.

- Fixed a bug that made the text editing cursor in the search field invisible on some devices.

- Fixed a bug that could cause flashcard export files that were overwriting previous files with the same name to leave behind some data from the older file.

- Fixed a bug that made the onscreen back button in OCR fail to trigger correctly after rotating the screen.

- Fixed a bug that made the onscreen back button appear white even against light-colored themes on Android M (and sometimes on 5.1).

- Fixed a bug that could cause the edit entry screen to prompt you to save changes even if you hadn’t made any.

- Fixed a bug that could cause the contents of flashcard edit fields to be reset on returning from another screen.

- Fixed a bug that prevented XML flashcard files from importing correctly on newer devices.

- Fixed a bug that could cause custom entries / flashcards with numbers in them to lose their correct tone coloring after an edit.

- Fixed a bug that could prevent headwords in Hangul or Kana in C-E flashcards from being magnified correctly.

- Fixed a bug that prevented super-rare / image characters like old character forms in Grand Ricci Histoire from rendering correctly in Night Mode.

- Fixed a bug that made Zhuyin characters enlarge along with Chinese characters with the “larger Chinese” option enabled.

- Fixed a bug that prevented copyright strings in user dictionaries from saving correctly.

- Fixed a bug that could cause a user dictionary to fail to be created if its name was identical to that of a previous user dictionary.

- Made the “full-text only” flag for dictionary groups work regardless of the “Integrate C-E Fulltext” / “Integrate E-C Fulltext” settings, part of our long-term transition to a simpler and more group-driven dictionary management system.

- Fixed a bug that prevented punctuation and extended Unicode characters from carrying through to the other fields in an auto-filled custom card / dictionary entry composition screen.

- Fixed (we think) a bug that could sometimes cause the input method selection bar to fail to reappear on returning from a definition screen.

- Fixed a bug that kept flashcard test definitions from updating immediately after changing the dictionary a flashcard is linked to via the separate dictionary screen.

- Fixed a bug that could prevent categories in text exports from exporting in the correct order.

- Fixed a bug that made the flashcard session switch dictionary option remain grayed out and unaccessible for custom cards for which exactly 1 dictionary match was available.

- Fixed a bug that could cause a UNI entry with the wrong pronunciation to display when searching for a particular Mandarin or Cantonese syllable. (character would be correct but it would be a different pronunciation for a 多音字)

- Fixed a bug that could cause statistics to be included in XML flashcard exports even with the option for that disabled.

- Fixed a bug that could cause incorrect counts of correct/incorrect cards to appear after undoing a card score when repeating incorrect cards.

- Fixed a bug that could sometimes cause full-text highlights in the result list to not match up with the words being highlighted. (most often with full-text English searches in E-C dictionaries)

- Fixed a couple of minor bugs relating to headword / pronunciation text formatting.

- Fixed a bug that prevented the creation of flashcards from example sentences in English-Chinese dictionaries.

## 3.2.12

- Fixed a bug that could cause document reader pages to appear blank with ‘paginate’ turned on on some devices.

## 3.2.11

- Added an option in Settings / Miscellaneous not to append numbers after the default names of flashcard and settings backups (making it easier to overwrite old ones).
- Made “intelligent segmentation” and “show example toggles” on by default for new users - the former improves the quality of multi-word breakdowns in the search field and the latter adds handy toggle buttons to hide / show example sentences in individual dictionaries in the definition screen (so you can scan through an entry more quickly by hiding them). For existing users these options can be turned on in Settings / Search Engine and Settings / Definition Screen. (“intelligent segmentation” at least will probably become the default for everyone soon)
- Greatly reduced memory usage when reading large text files.
- Fixed a bug that could cause extremely slow loading of large text files.
- Fixed a bug that made the optional scrollbar disappear every time you left and re-entered a document reader session.
- Fixed a bug that made tap-hold selection of a specific dictionary from the dictionary switch button occasionally take you to an entirely different dictionary when done during a full-text search.
- Fixed startup delays when using a Google-Play-connected version of Pleco from behind the Great Firewall.
- Fixed a bug that prevented the option to make the menu button open/close the navigation drawer from working correctly. (the bug was entirely Google’s fault, however, and looks like it may have been added deliberately, so this may stop working in an unfixable way in a future release)
- Fixed a bug that prevented the tap-hold copy/paste menu from appearing correctly in the search field on Meizu devices.
- Fixed a bug that made it impossible to open / save files on some Meizu devices.
- Fixed several crashing bugs, including a particularly common one when opening the color picker on a device in landscape orientation.

## 3.2.10

- Added an automated weekly prompt to back up your flashcard database. (it will only show up if you’ve actually added / changed flashcards in the past week, and there’s a “don’t show again” button you can use if it bothers you)
- Added a URL-based Pleco search API, for use on websites and other places where our intent-based system didn’t work well. For best website compatibility, we’ve used the exact same URL scheme as in our iOS app, plecoapi://x-callback-url/s?q=(your search term) but without the “return to X” button option since it’s not necessary on Android with its systemwide back button.
- Added abbreviation icons to the Manage Dicts and Manage Dict Groups screens so you have a slightly more convenient reference to what each abbreviation means.
- Added an option to disable our advanced OCR layout analysis option in Settings / Still OCR (to help a few people for whom it was causing problems).
- Changed the way categories are deleted in Card Info to reduce accidental deletions - now instead of tap-holding on a category to remove it from a card, you just tap on it and then tap on a confirmation alert.
- Added an option in Settings / Fonts to use our uglier / more compatible old fonts (as some devices seem to have buggy font renderers that give you garbled versions of our new ones).
- Added a backspace (clear the entire box) button in the non-handwriting-input flashcard sketch box.
- Fixed a couple of rare crash bugs in OCR, add-ons, clipboard reader history, and a few other places.
- Fixed a bug that prevented settings dumps from saving correctly to Google Drive.
- Fixed a bug that caused garbled text-to-speech output when dealing with headwords containing very obscure Chinese characters.
- Fixed a bug that caused there to be zero padding around divider lines in the definition screen in some entries.
- Fixed a bug that caused the radical input screen to reset itself when returning to Pleco from another app.
- Fixed a bug that could sometimes cause erroneous user dictionary results to come up for searches containing unsearchable extra pronunciation characters.
- Fixed a bug that could sometimes keep duplicate cards from being grouped together in the duplicate search in Search Cards.
- Fixed a bug that caused the dictionary switch button to be hidden behind the right button bar in landscape-orientation OCR.

## 3.2.9

- Improved text layout detection for complicated documents in still image OCR.
- Greatly improved scrolling speed of still OCR images for devices running Android 4.4 or later.
- Added a new advanced binarization (= detection of the parts of an image that are dark and the parts that are light) option for still OCR, which should be useful with murky / inconsistently-lit documents.
- Improved Samsung Multi-Window support - works more reliably and now automatically hides the Quick Input Bar when running in multi-window mode on a phone (so you can see search results better).
- Added separate Clip Reader and File Reader launcher options (instead of simply bringing you to the last reader you were using), and gave both those and the live / still OCR launchers different icon names.
- Made the Pinyin filter for single characters in the WORDS tab apply to user dictionaries as well as Pleco-created ones.
- Made the SENTS tab bold the current English headword in E-C dictionaries.
- Restored support for Android’s scaled font sizes in a few places where there’s no other option to customize Pleco’s font size, but with some size limits in place to make sure controls don’t end up so big as to be unusable.
- Made the No Words / Sentences / etc found messages use the current definition font size instead of a fixed one.
- Brought back the option to delete files from the recent files list in the file reader by long-pressing them and choosing “Delete.”
- Made live OCR remember / restore your last flash setting when returning from the dictionary entry / reader / etc screens.
- Fixed an issue that could prevent still OCR from opening some images via the “Open Image Picker” command on Android 4.4 and later.
- Fixed a bug that could cause portions of extremely large images to fail to recognize correctly in still OCR.
- Fixed a bug that could prevent other dictionaries from being filled in correctly when bringing up the definition screen from a popup reader text selection with more than one matching entry in the current dictionary.
- Fixed mismatched backgrounds of the first multi-choice options in landscape-orientation flashcard tests.
- Fixed clipping of the current card count in landscape-orientation flashcard tests in left-handed mode.
- Fixed garbled display + crashes in stroke order on a few phones when running in two-panel mode.
- Fixed a couple of crashes related to saving / restoring settings.
- Fixed a bug that kept “save color settings” from working at all.
- Made the settings restore prompt inform you that it’s overwriting clipboard history along with the other things it’s overwriting.

## 3.2.8

- Made the search screen remember its input open state when opening the navigation drawer and restore that state when closing it.
- Tinted the options in the settings color theme picker to match the available theme colors.
- Switched the Material Light Green theme from white to black icons / handwriting options / etc, since Google’s spec seems to be right on the fence on that one (they indicate it should be white in one place and black in another) and we think dark looks a bit more readable.
- Fixed a bug that kept the history screen from filling in results from other dictionaries.
- Re-enabled the newline button in the keyboard when editing a user dictionary entry or custom flashcard.
- Disabled support for Android’s font size scaling feature in places where it was making our UI potentially unusable and/or conflicting with our own font customization options.
- Made recent search saving more reliable on tablets with handwriting not in fullscreen mode.
- Made “show Zhuyin too” work for user dictionaries as well as non-user ones.
- Fixed a bug that could cause Pleco to jump back to the DICT tab when tapping on text in SENTS on a tablet in two-panel mode with handwriting input open and not fullscreen and a candidate character highlighted in the input field. (also apparently the bug is only reproducible on Durin’s Day)
- Fixed a bug that allowed user dictionaries to return shorter results even in situations where they shouldn’t (e.g. when mapping a custom flashcard to a dictionary entry).
- Fixed a bug that could cause the color theme preference to display a different value from what it was actually set to after doing a ‘reset to defaults.’
- Fixed a bug that could cause full-text matches to come up in some cases where they shouldn’t with the option to cycle to C-E fulltext searches enabled (again, e.g. when mapping a flashcard to a dictionary entry).
- Fixed a bug that kept the context menu “View” command in History from working correctly.
- Fixed a bug that caused example sentences to be tone colored for Mandarin even with Cantonese tone coloring enabled.
- Fixed a couple of crashes in the clipboard history screen.
- Fixed a crash when saving history / settings with your clipboard history empty.
- Fixed a couple of other rare crashing bugs.

## 3.2.7

- Added a new “Day Mode Color Theme” option in Settings / Colors, allowing you to return to something much like our pre-Material-Design theme (light gray toolbars with dark gray icons) or to pick any of the Material Design colors as the basis for Pleco’s app theme. Unlike our earlier toolbar color change support, this is a comprehensive reskin - changes colors of buttons, labels, example sentences / links in dictionary entries, it even changes the color of the toolbar in the Lollipop task switcher.
- In service of the above, we’ve completely overhauled the way our app handles color themeing; lots of things that used to rely on fixed, tint-colored images are now generated dynamically, and down the line we should be able to make our Android app almost as customizable as our iOS app is now. We’ve also finally added custom tint colors to alerts and dialogs (which were missing them before).
- Added (at long last!) the ability to customize the sort order of categories in Organize Cards. Tap on the sort button next to the magnifying glass button at the top of Organize to enable this. You can sort by anything that you can sort by in Search Cards, can apply a change to a individual category or to a category and all of its children, and can convert a fixed sort order to a custom one if you want to for example sort all of your cards by Pinyin but then adjust that order a bit.
- Added a brand new search filtering feature for Chinese searches (characters + pronunciation included); to use it, just put a # followed by an English word (or phrase) after the Chinese portion of your search. This will filter the results to only include entries in which that English word / phrase appears. For example, “gao#tall” will return only characters pronounced “gao” with “tall” in their definitions. Prefix searches are supported - “ji#chicken” will match not only “ji” but also “jia,” “jian,” etc - so if you want to limit it to just the exact search term you entered, put a space before the #.
- Added a brand new backup / restore mechanism for settings (including dictionary order + dictionary groups) and history (including your dictionary, reader, and OCR history and your recent clipboard reader clippings); it’s listed at the bottom of Settings. This exports data in relatively clean XML, so it’s hackable, and one type of hack that might be particularly useful would be to export just your color settings, remove any that are not tone colors, and distribute that file as a sort of “tone color profile” which others can use. (we’ll be doing a whole lot more with this in future releases) The format is fully cross-platform, so as of our next iOS update it should also be possible to migrate your settings and history from one platform to the other.
- Added a ‘show in dictionary’ icon to the top of the flashcard test screen - tap on this button to instantly bring up a dictionary definition screen for the current card. A cool extra feature of this is that it’ll also let you rapidly flick through your history of recently reviewed cards in this test via the scroll buttons at the top right corner of the screen.
- Added a long-press menu option in the document reader to change the speed of TTS (long-press the megaphone icon and you’ll see a selectable list of speeds).
- Added options in Settings / Search Interface to hide the flashcard + edit entry buttons that appear in the search toolbar in two-panel mode.
- Added a “jump to appended word” option in Settings / Search Engine which will cause the search results to automatically scroll down to a newly added word if you’re entering a sentence breakdown one-word-at-a-time instead of all at once.
- Made search results from custom dictionary groups only show definitions from dictionaries in that group in the definition screen (rather than aggregating definitions from all dictionaries).
- Made user dictionaries and flashcards correctly support digits in headwords (useful for old SMS expressions, military unit numbers, etc).
- Added a “tone skip character” - an inverted question mark ¿ - for user dictionary and flashcard headword and pinyin readings; this is basically a placeholder that eats up a syllable/character on the opposite side, so that tone colors will match up even if (say) you include the number 23 (two characters) in the headword versus the three syllables er-shi-san (you’d write it as 2¿3), or if you have a character with no reading (put a ¿ in its place in the pinyin field) or a reading with no character (put a ¿ in its place in the headword field).
- Added XXXHDPI icons, for the sake of people with super-high-resolution phones (currently this means the Nexus 6, LG G3 and Galaxy Note 4, but many more are coming this year).
- Added a hex color input to the color picker screen (and gave it a title matching the preference you’re updating so you know which color you’re about to modify).
- Added a list of the current tag categories to the duplicate card dialog.
- Added more robust protection against corruption / file format mismatches in saved flashcard sessions, which should result in fewer crashes when updating / reinstalling Pleco with a flashcard session in progress.
- Made OCR remember + restore its last zoom setting.
- Added an option in Settings / Miscellaneous to check for app updates (if you have a version of Pleco downloaded outside of an app store).
- Made Organize Cards default to editing cards instead of categories when editing a category that contains both (matching the behavior on iOS).
- Added a “browse demo” button to demo items in the Installed tab (not just in Paid) in Add-ons.
- Excluded demo dictionaries from the Batch “Remap to dict” menu.
- Started capitalizing the first letter in the edit card / edit entry definition field.
- Added Facebook / Twitter / website / discussion forum links to our About page.
- Updated to a slightly newer version of SQLite for a few % increase in user dictionary / flashcard performance.
- Increased the maximum length of searches in history and the maximum number of saved entries in history.
- Updated our ‘show in dictionary’ icon image (used to bring up a fullscreen dictionary entry from popup reader / OCR / etc, and now also flashcards) to a different design that we hope will be a bit more clear.
- Made spaces at the end of Chinese character searches prevent longer matches (as they already do with English/Pinyin searches).
- Made our system for detecting whether or not a copy of Pleco was downloaded from an app store (and should therefore not be updated separately from our website) a bit more aggressive, and added a flag to the version we’re uploading to GPlay to totally disable app updates so that any Chinese app stores that both a) rip our app from GPlay without permission and b) don’t correctly set Android’s installerPackageName flag for apps installed through their store will still get the correct no-updates behavior.
- Added a stroke count to the Radicals section of CHARS.
- Added information about how many other categories the card belongs to when deleting a single card in Organize.
- Increased spacing between lines in the clipboard reader so that it now matches the spacing in the text file reader.
- Made the “custom dict entry + card” option for unknown searches in Settings / Search Interface fall back to just creating a custom flashcard if you haven’t purchased our flashcard add-on. (otherwise it would try to create a dictionary entry and give you an error)
- Slightly increased the delay between strokes in stroke order.
- Slightly reduced the height of header items in the definition screen.
- Fixed a whole bunch of crashing bugs, including two nasty ones related to stroke order (one on devices with very old versions of Android, and one on devices with very little free RAM), one nasty one relating to going back to the OCR screen from a child definition screen, and one which affected users on tablets with restricted profiles.
- Fixed a bug that could prevent user dictionaries from matching correctly against long Pinyin syllables (zhuang and chuang and shuang).
- Fixed a bug that could cause unreliable search results with intelligent segmentation and full-text Chinese searches enabled.
- Fixed a bug that could cause intelligent segmentation to fail to include multi-character results containing characters which don’t have their own single-character entries.
- Fixed a bug that could cause the same dictionary group to be searched twice on a query, resulting in significant slowdowns in some cases.
- Fixed a bug that could cause occasional failures to return results from valid full-text searches.
- Fixed a bug that could cause “VARIANT OF” text to appear as part of the first definition for a word instead of above it in cases where the “variant” status applied to all of the definitions.
- Fixed a bug that kept [+] flashcard icons from appearing in some items in the CHARS tab.
- Fixed a bug that prevented the launcher icons from preserving the in-app back behavior in a few specific cases.
- Fixed a bug that could cause some launcher icons to disappear when rebooting a phone with Pleco installed on an SD card.
- Fixed an extra shadow in the dictionary browser screen.
- Fixed a bug that made the definition screen header (uselessly) tap-selectable with category tags visible.
- Fixed a bug that prevented “copy full entry” from working in the long-press menu from the last item in a search results list.
- Fixed a bug that could cause the optional dictionary slider in the dictionary screen to overlap the bottom of the last definition in a way you couldn’t scroll past.
- Fixed a bug that kept the dictionary slider from reappearing after switching out of and back into the DICT tab.
- Fixed a bug that could cause the text selection bar to totally overlap the search field (making it unusable).
- Fixed a bug that could cause formatted text copied out of a dictionary entry to be pasted into the search box with its format preserved.
- Fixed a bug that could allow text to overlap the search box clear button.
- Fixed a bug that could make the context menu in Organize Cards available during editing after a move or batch operation (it should always be disabled when editing).
- Fixed a bug that made the edit controls in Organize Cards grey out after a canceled batch operation.
- Fixed a bug that caused audio to play on flashcards when returning to a test from Card Info.
- Fixed a bug that could leave tap-selection boxes visible on characters (and floating over the rest of Pleco’s UI) when tapping on the same character repeatedly.
- Fixed a bug that could cause intermittently garbled handwriting input display on some Android 5 devices.
- Fixed a bug that could prevent the handwriting box from retaining its contents on a screen rotate.
- Fixed a bug that could cause OCR history changes to get out of sync between the history screen and the OCR screen.
- Fixed a bug that could cause the currently highlighted section in the sidebar to not match your actual current section.
- Fixed a bug that caused the flashcard + button in the popup reader to fail to update correctly when expanding the selection so that it no longer was a valid word.
- Fixed a bug that could cause garbled text in the headers of some dictionary entries (and possibly even an occasional crash).
- Fixed a few other crashing bugs.
- Fixed some bugs in the (little-used) English wildcard search feature that could prevent matches from coming up correctly when they should be.
- Fixed a bug that could in a few cases cause infinite bundle file downloading loops on startup.
- Fixed a bug that kept the Move command in Organize from reliably moving cards to Uncategorized.
- Fixed a bug that kept numeric preference edit boxes from being pre-populated with the current value of their preference.
- Fixed a bug that could prevent numeric preferences from updating correctly after a new value was entered. (the value would be stored but it wouldn’t show up on the screen)
- Fixed a bug that could cause incorrect character breakdowns or undesirable dictionary switching when your search text ends with a 儿/兒.
- Fixed a bug that caused tone coloring in example sentences to fail to display correct tones in a flashcard test with examples enabled before the card is revealed.
- Fixed a bug that could cause the clipboard monitor to trigger upon copying text in Search Cards.

## 3.2.6

- Fixed a crashing bug when opening up the Import Cards screen having never previously done an import. (sorry we missed this)

## 3.2.5

- Added search result long-press menu options to copy + search for Cantonese pronunciation.
- Made the stroke order ‘lock’ button also prevent swiping between definition screen tabs (though you can still tap on them and they’ll instantly unlock if you do).
- Made launcher icons preserve the in-app back behavior (so that the back button will take you back to the previous tab or the dictionary tab the same way it would if you launched the regular Pleco icon) in order to be consistent with standard Android behavior.
- Made the options for disabling Mandarin pronunciation in Settings / Languages more obvious.
- Fixed a bug that could cause flashcard databases brought over from iOS to occasionally fail to save changes correctly.
- Fixed a bug that prevented long documents in UTF–16 encoding from displaying correctly in the document reader.
- Fixed a bug that could cause automatic generation of characters / readings to fail in certain rare cases (mostly involving a sequence of the same character repeated several times in a row).
- Fixed a bug that prevented file names from displaying correctly for some files on Android 4.4 and later.
- Fixed a few more minor crashing bugs.

## 3.2.4

- Added, by popular request, the ability to customize the toolbar and (on Android 5) status bar color when Pleco is in day mode - if you don’t like our blue you can now have whatever other color you want instead.
- Disabled the sidebar menu swipe gesture in OCR (too much interference potential), and also in the bottom candidate bar in handwriting.
- Made some minor formatting code improvements for the sake of our new Student’s Dictionary of Classical & Medieval Chinese, including fixing a bug that caused the ⊙ characters to be blank on some devices.
- Added a bit of extra margin below the floating flashcard / audio button in the definition screen when the dictionary slider bar is also enabled.
- Added a tone 6 button to the keyboard for flashcard fill-in-the-blanks Cantonese tests.
- Fixed a bug that prevented flashcard tone practice tests from scoring correctly after entering a 6th tone for Cantonese.
- Fixed a bug that caused garbled audio output through the text-to-speech system for headwords with Pinyin pronunciations that contain umlauts.
- Fixed a bug that could sometimes cause the dictionary slider bar in the definition screen to jump you to a different dictionary than the one you’d selected.
- Fixed a bug that caused the line below the current selected input method tab to be not quite flush with the bottom of the toolbar on some tablets.
- Fixed a bug that could cause dictionaries / dictionary groups to fail to switch correctly when performing a !# (sort flashcards first + full-text) search.
- Forced the “score immediately” option in Test Settings to always be on for Cantonese tone practice tests, since there’s no “check answer” button to do it manually.
- Fixed a bunch of crashing bugs, including one when viewing ‘display’ settings in the free lite version of our flashcard system.

## 3.2.3

- Reskinned our app around Android 5 and Material Design. (virtually all of the reskin applies on older versions of Android too)
- Added an option in Settings / Reader to make the document reader paginated (swipe pages like a book instead of continuously scrolling in a vertical box), and improved performance / reliability a bit while we were at it.
- Made it possible to go between tabs in the definition screen by swiping.
- In service of this, made the stroke order tab now scroll vertically instead of horizontally.
- Made tabs in the definition screen reorderable - option for that is in Settings / Definition Screen at the top.
- Made the history, Add-ons, bookmarks, and Card Info screen tabs all swipeable as well.
- Added an option for a floating button at the bottom right corner of the definition screen (also in Settings / Definition Screen) - this can be set to add a flashcard or play audio (Mandarin or Cantonese).
- Added long-press menus with various useful commands (flashcards, audio, copy to clipboard) to the CHARS and WORDS tabs of the definition screen.
- Added ‘copy headword’ commands to the long-press menus in History and Organize Cards.
- Added an “Append headword to clipboard” command to the search results long-press menu - choose this and instead of replacing the current clipboard (as in a Copy) the headword will be added to it, similar to the text-appending option we already offer in OCR. (we also display the current clipboard contents in the notification)
- Restored the “clipboard monitoring” option in Settings / Miscellaneous; we offered this for a few years after Pleco first came out on Android, but dropped it when it stopped working on Android 4 and nobody seemed to notice or care. Still very few requests for it, but we finally figured out why it stopped working, and since the code for it was still sitting there we figured we might as well add it back again. Anyway, turn this option on and whenever you copy a piece of Chinese text to the clipboard Pleco will automatically pop up with a definition (or with the clipboard reader if you’ve configured it to use that instead for long texts). Right now you have to go throgh Settings to enable this, but if we get some interest we can easily add a more prominent toggle button and/or an option to automatically enable this at system startup rather than only having it work with Pleco running in the background. (doing this will require a permissions change, which is always a pain in the butt for users to manually approve)
- Started hiding example sentences in full-text search result list items when the text being searched for appears outside of an example sentence.
- Made the @ override prefix for flashcard pronunciations work for Cantonese along with Mandarin.
- Added flashcard options to display Mandarin along with Cantonese before the card is revealed and to display Cantonese as a secondary pronunciation to Mandarin (so the audio / fill-in-the-blanks / etc are for Mandarin but you still see Cantonese readings too).
- Added a command in Settings / Miscellaneous to clean up orphaned flashcard categories (to remedy some earlier bugs).
- Shrank our default fonts just a touch - we had ported our type design over from iOS without taking into account the fact that Android devices tend to have slightly lower pixel density at a particular resolution scale, so text was (we think) a bit larger than it needed to be.
- Added a more helpful alert for Xiaomi users when we can’t access the device camera due to Xiaomi’s wacky camera permission system.
- Added Android search manager support - this is a bit flaky but if you say “OK Google, search Pleco for dumpling” it might possibly bring up Pleco with a search for ‘dumpling.’ We have not yet found a way to get it to recognize Chinese here. Google’s voice recognizer interprets ‘pleco’ as having a short ‘e’ (pleck-o) so pronounce it like that if you want it to (possibly) understand you.
- Made up / down scroll buttons for the embedded definition appear in portrait as well as landscape mode on decent-sized tablets (600 scaled pixels or higher in their smaller dimension, so 1920x1200 will probably work and 1280x800 probably won’t); also made them optional (can disable them in Settings / Search Interface), and moved them and the + and edit buttons to the right instead of the left side of the top toolbar.
- Added a total file size to the “download all” buttons in Add-ons.
- Added an alert the first time you run a fill-in-the-blanks flashcard test to point out that it’s only covering cards of 4 or fewer characters.
- Disabled continuous autofocus in OCR by default once again, since on some devices it tends to make the camera refocus excessively often (in ways we’re not able to prevent).
- Improved startup time a bit by removing some redundant layout passes.
- Cleaned up the UI of the ambiguous + duplicate card prompts a bit.
- Inset items in the CHARS/WORDS tabs in the definition screen so their margins will match those of the other tabs.
- Made the dividing lines between sections of the screen a bit subtler in Night Mode.
- Fixed a bug that could prevent audio from playing in the definition screen when a custom entry was the first item.
- Fixed a bug that prevented the Card Info screen from returning you to Organize Cards after deleting the current card.
- Fixed a bug that caused stroke order diagrams to always be faded even with the option for that turned off.
- Fixed a bug that could interfere with edit fields working correctly in a few popup alerts on Android 5.
- Came up with a slighly less ugly workaround for the fast scrollbar not working correctly on Android 4.4/5, so it won’t show up all the time as it did in 3.2.0/1/2.
- Fixed a bug that added erroneous audio play buttons before example sentences in Cantonese dictionaries. (though we’re working on a Cantonese TTS option for those)
- Fixed a bug that could cause cards to remain assigned to deleted categories in some cases when deleting extremely deep category hierarchies.
- Hid Cantonese in flashcard editing for users with the free version of our flashcard system, since you can’t do Cantonese tests with the free version and we didn’t want people to waste time making Cantonese cards they can’t use.
- Rearranged the Display section of flashcard test settings to make a couple of coherent groups out of Card Text instead of just having a long random list of options there.
- Renamed “Pinyin” in flashcard test field selection to the more neutral “Pronunciation” so as not to exclude Cantonese + Zhuyin users.
- Fixed a bug that prevented some punctuation marks (like ellipses) from appearing correctly in flashcard Pinyin pronunciations.
- Fixed a bug that could cause the floating DICT/STROKE/etc header to fail to appear after scrolling down in an entry via the popup reader.
- Fixed a bug that could cause the preview entry browser for in the Oxford Chinese Dictionary E-C half to show you entries from the C-E half.
- Fixed a bug that could cause imports to fail in certain rare cases where an extended Unicode character boundary happened to overlap with the border between two (arbitrary-sized) chunks of import data.
- Updated to a newer version of the SQLite database engine that should significantly improve performance in some cases.
- Fixed a bug that could cause old searches which you had cleared from the search box to be revived when switching back to the search screen from another section of Pleco.
- Fixed a bug that caused user dictionaries to sometimes match incorrectly against long words in the document reader (i.e., you’d have a situation where a string of 4 characters matched the first 4 characters of a 5-character word and that word’s entry would come up even though the 5th character didn’t match the next character in the document).
- Fixed a bug that caused auto-generated Cantonese readings to be based on simplified characters even with Pleco in traditional mode.
- Fixed a bug that could cause fill-in-the-blanks flashcard tests to erroneously jump ahead two characters after selecting a new character.
- Fixed (we hope) a bug that could cause the blue squares that indicate a character is in the process of being selected from disappearing properly when the selection ends.
- Fixed a bug that could prevent audio from playing correctly in dictionary entries with ‘phonetic system’ set to None.
- Fixed a bug that could prevent search screen long-press menu items relating to flashcards / editing entries from matching up with the entry you were long-pressing (or from altering it correctly when selected).
- Fixed a bug that caused a 1-pixel-wide blank line to appear on the right side of the screen in two-panel mode.
- Worked around a bug in 64-bit versions of Android (which currently just means the Nexus 9) that could make it impossible to modify flashcard databases.
- Fixed a bug that could cause incorrect line wrapping in the search results list on some older versions of Android with buggy Unicode support.
- Fixed a bug that prevented the audio button from showing up in user dictionary entries with “pron system” set to “none.”
- Fixed a bug that could cause flashcard audio to fall back on male TTS when audio was configured to be female-only.
- Fixed a bug that could cause the “change dictionary entry” command in Card Info to pull up entries with the wrong pronunciation if the current pronunciation was not included in whatever your first dictionary selected under Manage Dicts is.
- Fixed a bug that kept the top toolbar from shrinking correctly in landscape orientation on phones.
- Fixed a bug that could prevent reader documents from saving their locations correctly on Android 5.
- Fixed yet more crashing bugs.

## 3.2.2

- Added a new “second repeat after” option for ‘repeat incorrect during test,’ allowing you to specify an additional (probably longer) interval to repeat cards that you answered incorrectly again (after answering them correctly once). This will also apply at the end of the test for any cards left over - they’ll likewise be repeated twice if they were due to be repeated twice during the test.
- Added shorter “delay before repeat” options for ‘repeat incorrect during test’.
- Updated to a new version of Amazon’s in-app purchasing system which should be significantly more reliable for Amazon users.
- Added a ‘card created’ popup when creating custom cards.
- Added a reminder to back up your user dictionaries too after backing up your flashcard database (if you have any user dictionaries).
- Fixed a bug that could cause the “intelligent segmentation” option in search results to segment incorrectly when the last part of a phrase to break down did not constitute a standalone word but did constitute the first part of a larger word.
- Fixed a bug that could cause the dictionary switch button to get stuck on CAN in some rare cases.
- Fixed a bug that caused glitchy rendering of the {} brackets around Cantonese readings in some places.
- Fixed a bug that could interfere with selecting rare characters in the popup reader.
- Fixed a bunch more crashing bugs.

## 3.2.1

- Added PY and JP tags before the Pinyin and Jyutping (Cantonese) parts of fully revealed flashcards.
- Made auto-generated custom cards / dictionary entries in search results use a pan-dictionary / intelligent-segment search instead of using the exact breakdown from the search results.
- Fixed a crashing bug when rotating the screen or resuming a Clip Reader session.
- Fixed a bug that could cause “repeat incorrect during session” cards to appear multiple times at the end of a test.
- Fixed a bug that could cause erroneous extra characters to be appended to the end of example sentence flashcards.
- Fixed a bug when Pleco is installed on devices with screens that are too small (causing it to crash instantly on startup) - it still won’t run on them but now it puts up a helpful alert with a link for an old, small-screen-compatible version of Pleco.
- Fixed a bug that caused the popup reader to ignore punctuation marks in determining word boundaries.
- Fixed a bug that inserted extra newlines before auto-generated Cantonese readings in user dictionary entries.
- Fixed a couple of other rare crashing bugs.

## 3.2.0

- Added Cantonese support to flashcards; enable this in New Test / Display / Use Cantonese. (paid flashcard add-on only) This applies everywhere - display of cards but also audio playback and even fill-in-the blanks / tone practice. When you enable “Use Cantonese” a prompt will appear to offer to fill in Cantonese readings for cards that don’t have them; you can also do this through Organize Cards / Edit / Batch, and assuming that you have Cantonese enabled, Pleco wil automatically attempt to add Cantonese readings for any new cards when you create or import them.
  In import files, to import Cantonese enclose it in {} brackets and put it at the end of the second column (where Pinyin normally goes); for consistency we currently only accept / output Jyutping romanization in flashcard import/export files.

- Added the option to repeat incorrect cards during a flashcard test instead of at the end of it, via a new “time” option for “repeat incorrect” (in New Test / Commands). This will happen at a fixed but customizable interval after the incorrect answer - we don’t try to SRS it (we’re unconvinced that that would help). If any incorrect cards are still pending at the end of the test, it will continue cycling through those until you get each of them correct (as with the current repeat incorrect / loop behavior).

- Added support for efficiently adding example sentences to flashcards. Go into Settings / Definition screen and turn on “+ button for each example” to enable that; after you do, a flashcard + button will appear at the end of every example sentence (if it includes English).

- Added new commands in Edit / Organize Cards / Batch to automatically generate missing simplified, traditional, Mandarin, and Cantonese readings for cards. Also added a option to Import Cards to invoke this behavior in imports. We also added options to delete the current contents of those fields (in case you find yourself with some Cantonese you want to remove, say), to remove hidden custom definitions (we leave those in your database if you remap cards to the dictionary), and to swap the simplified / traditional fields (in case you import some cards incorrectly and don’t catch it right away).

- Added an option for Cantonese tone coloring in Settings / Colors. (feedback on the color scheme is welcome)

- Added an “Auto-generate if missing” option for Cantonese (Settings / Language) which attempts to generate a Cantonese reading for a dictionary entry if it doesn’t already have one. This doesn’t yet work for searches (we won’t let you search for those auto-generated readings, in other words) but it does work pretty much anywhere you might display Cantonese - reader, OCR, etc along with the main dictionary. We add a ± symbol after these auto-generated readings so you can distinguish them from the official ones.

- Added {} brackets around Cantonese readings in reader / OCR.

- Added a duplicate card alert when updating a card’s definition in Card Info or during a test in such a way that it will end up conflicting with another card.

- Added an R at the start of the card counter when reviewing incorrect cards at the end of a test.

- Removed the notice about reviewing incorrect cards at the end of the test if they’re set to appear during a test and you’re just finishing off the still-pending ones at the end.

- Made “back to dict, then exit” the default back button behavior.

- Made continuous autofocus on by default in OCR.

- Restructured the live OCR capture view to hopefully get it behaving better on the Galaxy S5 and a few other problem devices.

- Improved search breakdown behavior for searches containing punctuation marks. (in a few cases it was actually breaking down too aggressively and missing out on the fact that there was a larger word, in other cases it was searching across punctuation marks when it shouldn’t be)

- Made the edit entry button always appear in the search bar in two-panel mode (if you have an editable user dictionary installed).

- Made Cantonese work better when the Mandarin pronunciation mode is set to “blank” (so that there’s no Mandarin displayed at all) - Cantonese readings + audio buttons should now appear correctly in that case.

- Made multiple-choice choices appear in a smaller font / prompt for confirmation (if you’ve enabled the relevant option in Test Settings) for characters and Pinyin/Zhuyin (not just English) if the text is long enough to need it.

- Added a tap-hold dictionary selection menu for the flashcard dictionary change button.

- Dramatically boosted speed of some types of Chinese search through a couple of optimizations to our database access system.

- Added a more powerful text segmentation system (something to break long strings of Chinese text up into their component words). It’s still somewhat experimental, so for now we only deploy it by default for the above automatic text generation features in flashcards, but if you turn on “Intelligent segmentation” in Settings / Search Engine it will try to use it for multi-character breakdown searches too.

- Made the custom flashcard / user dictionary entry screens from the popup reader + OCR fill in opposite character set / Pinyin / definition just as the ones from search results now do.

- Made searches with trailing * characters no longer sort by length.

- Made flashcard category tags now appear for all of the cards for a particular dictionary entry (in the event that you have duplicate cards).

- Added support for radical characters to our “enhanced” handwriting recognizer (download the updated version of that in Add-ons, then enable radical recognition in Settings / Input Methods / Handwriting).

- Added our own crash reporting system, which will automatically collect crashes in copies of Pleco not downloaded from Google Play.

- Added an option to disable the two-finger tap gesture in handwriting (in response to several complaints that it was making usage with a stylus difficult).

- Added a “restore dormant custom definitions” command to Batch (to go along with the recently added to command to remove them).

- Added a “shuffle” option for repeating incorrect cards during a test. This applies both during the test (for cards answered incorrectly within a few seconds of each other) and in the review of remaining incorrect cards at the end of the test.

- Added text-to-speech playback buttons in example sentences in the Guifan Cidian (which lacked them before).

- Stopped showing “unknown volume”s in installation volume prompt screens on startup, and made the system automatically choose the good volume in cases where there’s only one of them.

- Worked around a bug in the draggable scrollbar control on Android 4.4 (entirely Google’s fault, see https://code.google.com/p/android/issues/detail?id=63545) by forcing the scroll bar to always appear in the main Dictionary and Organize Cards screens on devices running 4.4 or later. The bug appears in the current version of Android L too, but since it’s fixed in the latest update to 4.4 we’re assuming they also fixed it for the finished release of L and have therefore left the fix disabled on that.

- Fixed a bug that could cause incorrect breakdowns of searches containing a lot of punctuation.

- Fixed a bug that caused incorrect text to be copied to the clipboard + incorrect position resuming on screen rotate in the document reader.

- Fixed a few more bugs in Yale-romanized Cantonese search and made it now allow (but not do anything special about) ’h’es in syllables.

- Fixed a bug that kept the entry-specific + button from working in some entries.

- Fixed a bug that could cause random jumping to incorrect locations on resuming a document reader session.

- Fixed occasional crashing bugs in text rendering on devices running Android 4.0.

- Fixed a bug that could cause auto-generated strings to ignore terminating ’er’s.

- Fixed a bug that could cause incomplete handwriting input (in partial-screen handwriting mode) to be saved to the search history.

- Fixed a bug that prevented the document reader from correctly recognizing words split by commas.

- Fixed a bug that could cause incorrect results to be returned for a few full-text searches (like ‘aardvark’).

- Fixed a bug that could cause laggy / halting scrolling through search results on some devices.

- Fixed a bug that made it possible to deselect the text input boxes in tone practice tests and made it possible for tones to fail to enter correctly when you did.

- Fixed a bug that caused text-to-speech to fail to acknowledge / pause for punctuation marks.

- Fixed a bug that could cause the flashcard “convert to dict-based card” command to yield inexact matches.

- Fixed a bug that could cause wacky popup reader behavior for strings of text that contained wildcard characters.

- Fixed a bug that made apostrophes before bolded headword pinyin in example sentences appear bold when they weren’t supposed to.

- Fixed a bug that made headers in user dictionary entries list “PY” even when displaying Zhuyin text.

- Fixed a few bugs in parsing of Yale romanized Cantonese text (though we’re still working on the ‘h’ problem).

- Fixed a few crashing bugs.

## 3.1.9

- Greatly streamlined the process of buying add-ons for people who aren’t able to do that through Google Play; now, the “can’t buy in-app” option includes a button that will take you directly to our online store with your Registration ID plus the item you want to purchase pre-input, so that all you have to do is enter your credit card or PayPal information to complete your purchase. (we also made the credit card input form much more mobile-friendly)
- Added a tap-hold option to the TTS function in the reader to hide / show the definition bubble. (long-press the megaphone / pause button to activate it)
- Made the “full-text search only” flag only apply to full-text dictionary groups.
- Added a “don’t show again” option to the outdated Hui alert.
- Eliminated the compatibility mode option from OCR after determining that far more people were being inconvenienced by turning it on accidentally than were likely to be inconvenienced by not being able to find it.
- Re-enabled Lulu as a headword pronunciation fallback, for those of you sentimentally attached enough to Lulu to overlook its occasional flaws.
- Fixed a bug that prevented context menu commands from working correctly for some dictionary entries in the definition screen.
- Fixed a bug that could cause wonky focusing behavior in OCR after rapidly tapping the focus button.
- Fixed a bug that could make flashcard category trees disappear when some category IDs were corrupted.
- Fixed a bug that prevented textexports of English-to-Chinese user dictionary entries and flashcards from including the all-important tab character.
- Fixed a bug that caused over-zealous ~ replacements in some flashcards.
- Fixed a bunch of crashing bugs.

## 3.1.8

- Made the # / ? / * / ! special characters work for their full-width versions too.
- Fixed a rare crash when performing Chinese full-text searches in English dictionaries.
- Fixed a bug that could prevent custom dictionary groups from returning results from all of their dictionaries.
- Fixed a crashing bug when deleting dictionary groups.

## 3.1.7

- Added a “Use menu button for drawer” option in Settings / Miscellaneous to use the hardware menu button to toggle open/closed the menu drawer.
- Added a “Fade strokes” option (Settings / Definition Screen) that causes strokes in stroke order diagrams to appear in progressively lighter shades of gray the later they are on the character, mirroring the similar option we offer on iOS.
- Added a “Bold Chinese Font” custom font option to allow you to install a bold Chinese font along with a regular-weight one if you happen to have a matched pair (e.g. Adobe’s new Source Han Sans fonts).
- Added back the “Unsafe mode” option for flashcard / user dictionary imports, after having mistakenly removed it due to a change in the iOS (but not the Android) version of Pleco that made it irrelevant on that.
- Made audio playback in the “Organize Cards” long-press menu work for cards with custom texts too.
- Made dictionary definition screens brought up by “View in Dictionary” in Organize Cards fill in results from other dictionaries and match the Pinyin of their original cards more reliably.
- Replaced the “skip if no recording” option with an option to fall back on TTS if there’s no exact audio recording, and removed the “sandhi transform” option altogether (it’s now permanently on).
- Added outlines to stroke order diagrams in flashcards.
- Made the “filter head in definitions” feature in flashcards apply to custom definitions too.
- Improved headword audio fallback behavior for the (still not yet released) male TTS module.
- Brought back separate “Save” and “Cancel” buttons to the category chooser screen, though we kept the 3.1.6 behavior of saving rather than discarding your changes on a back button press.
- Fixed a bug that prevented 6th-tone Yale-romanized Cantonese searches from working correctly.
- Fixed a bug that could make it impossible to save / backup flashcards after viewing the Card Info screen.
- Fixed a small “filter head in definitions” bug that prevented it from working correctly in certain ABC dictionary entries.
- Fixed a bug that could cause the same category tag to appear multiple times if a card belonged to multiple child categories of a single tagged parent
- Fixed a bug that made it impossible to delete the last card in a test.
- Fixed a bug that could cause blank rows in the dictionary order selection screen (for remapping flashcards, exporting, etc) and cleaned up its UI to use the action bar instead of a separate row of Save / Cancel buttons.
- Fixed a bug that caused misplaced “VARIANT OF” headers to appear before the actual headword of some entries in flashcards.
- Fixed a bug that made it impossible to select Lulu as the preferred TTS voice in Settings.
- Fixed a bug that could prevent the “DEMO VERSION” label from showing up correctly in stroke order.
- Fixed more obscure little crashing bugs.

## 3.1.6

- Added a new “Tags” system for flashcard categories, making it easy to quickly see whether a word belongs to a particular category at the top of its dictionary entry. Long-press the name of a category in Organize Cards to access the option to add a tag to it; once you’ve created a tag, it should show up at the top right corner of the definition screen for any word that’s part of that category (or its children).
- Added a long-press menu option to play audio in Organize Cards.
- Cleaned up the category selection UI in New Test so that you no longer need to tap on the check mark to save your changes (instead, there’s now just a Cancel button and exiting any other way will automaticlaly save them).
- Made the popup reader “auto-play on advance” option keep the same gender (even if the system is otherwise configured to alternate genders) so that it’s more comfortable to “read along” through a piece of text.
- Added the name of the current dictionary to the top of the popup menu that comes up when you long-press its abbreviation in the definition screen.
- Made the combined search + definition screen no longer reset the definition to the DICT tab when tapping on / scrolling through the list of results.
- Reconfigured our asset management system so that fewer files need to be kept within the actual Pleco application binary (they’re kept in external storage instead), allowing us to lower its size from 19.3 to 4.5 MB.
- Updated our Pinyin font to feature more prominent / easier-to-see tone marks.
- Added support code for a new male text-to-speech module which we’ll be starting to sell soon (after we finish beta-testing it).
- Made the Pleco website / GPlay / Amazon versions of the app use an identical app file, which should simplify switching between them a bit.
- Added underlines to headwords in example sentences when using a Chinese font for which no bold version is available.
- Added code to support official ‘OLD’ / ‘ERRONEOUS’ / etc variant tags in CC-CEDICT.
- Made “words within” breakdowns for multi-character words include overlapping words.
- Fixed a bug that could cause jumbled (inconsistently sized) Pinyin text on some Samsung devices.
- Fixed a bug that could cause gibberish text in search results on some Sony devices.
- Fixed a bug that could make text copied from the “Copy Entry” long-press menu function in the definition screen appear garbled / incomplete.
- Fixed a bug that could cause the popup definition bubble to fail to disappear (or disappear + take you back a screen) on pressing the hardware back button.
- Fixed a bug that could cause a “you seem to be missing some of your purchases” error to come up the first time running Pleco after making a purchase.
- Fixed a bug that could cause flashcard sessions to stay active even after erasing your flashcard database.
- Fixed a bug that could cause inconsistent rendering of characters containing the 市 component between regular and bold fonts.
- Fixed a bug that could cause multiple-choice flashcard tests to show random “blank” choices (or totally garbled ones).
- Fixed a bug that could cause icons in the sidebar menu to be overdrawn with giant colorful emoji characters on some Samsung phones.
- Fixed another bug that could prevent Zhuyin tone marks and CJK Extension-A characters from rendering correctly, also mostly on Samsung phones.
- Fixed a bug that prevented the background of the dictionary definition box in OCR from displaying correctly on Android L.
- Fixed a bug that could cause incorrect calculation of headword lengths.
- Fixed a bug that caused * characters to be stripped out of custom definitions.
- Fixed a bug that could prevent some (especially English) hyperlinks from linking correctly.
- Fixed a bug that could cause incorrect fill-ins of alternate entries in the “change dictionary / entry” flashcards screen.
- Fixed a bug that could cause newly updated dictionaries to be buried at the bottom of the Manage Dictionaires order.
- Fixed a bug that could cause incorrect display of dictionary entry hierarchies (a ‘B’ with no ‘A’ for example)
- Fixed a bug that could cause ABC * characters to stick around when they weren’t supposed to.
- Fixed a bug that could cause the popup reader to save every word encountered during a text-to-speech play to history.
- Fixed a bug that could cause the filled-in characters / Pinyin for custom cards / dictionary entries added from search results to be longer than the original headword.
- Fixed a bug that caused the popup reader to select the entire headword instead of a single character when tapping on a character in the result page of a multi-choice flashcard test.
- Fixed a bug that could cause flashcard fill-in-the-blanks tests to display longer words than they could test on with a ‘length’ card filter active.
- Fixed a bug that could occasionally cause a stray } or a blank JP field to appear for entries that did not include Cantonese pronunciations.
- Fixed a bunch of rare crashing bugs.

## 3.1.5

- Brought back the option to disable screen auto-off app-wide, now in Settings / Miscellaneous.
- Added an alert during flaschard tests that skip cards due to ‘remap to dicts’ being activated.
- Updated to a new version of the SQLite database engine that could provide some fairly significant performance imrpovements in a few places.
- Improved the reliability of stripping of headwords out of example sentences in flashcards, especially in cases where the headword contains a -.
- Fixed a bug that could cause repeated welcome alerts.
- Fixed a couple of nasty (but rare) startup crashes.
- Fixed a number of other assorted crashing bugs.

## 3.1.4

- Swapped the C/E full-text icons for consistency with the iOS version and for better clarity in general.
- Fixed a nasty crashing bug in stroke order diagrams. (sorry we missed that one)
- Fixed a couple of other less nasty / less common crashing bugs.
- Fixed a bug that could cause flashcard fill-in-the-blanks tests to auto-advance twice (skipping spaces).
- Fixed another bug that could prevent XML flashcard imports from coming through correctly.
- Fixed a bug that caused characters in example sentences in SENTS that didn’t have pronunciation attached to them to show up as black instead of tinted blue with tone coloring of example sentences turned on.
- Fixed a bug that could create invisible / orphaned flashcards on imports from text files with invalid category names.

## 3.1.3

- Greatly improved startup speed.
- Updated to a much newer version of the “Hui” text-to-speech engine.
- Made taps on items in the components section of CHARS go right to their own CHARS tab rather than to their definitions.
- Added Oxford Chinese Dictionary add-on and made a few tweaks to dictionary entry rendering to support it properly.
- Changed the ‘low contrast mode’ in Reader to use sepia tones instead of flat gray.
- Took the microphone button back out of the search bar in portrait-oriented tablets, since we found it was making things a bit too cramped. (should be finished with changes like this now, hopefully)
- Changed the icons / labels of our custom home directory + SD card sections in the Android 4.4 file open dialog to reduce confusion for users of other apps. (unfortunately, there’s no way for us to disable them entirely in those)
- Fixed a bug that could cause the keyboard to be dismissed after every input on certain devices with buggy manufacturer firmware customizations.
- Fixed a bug that could cause inconsistent headword display between numbered homonyms in some dictionaries.
- Fixed a bug that could prevent XML flashcard imports from coming through correctly (they’d appear as a few dozen garbage-character-filled cards instead).
- Fixed a crashing bug when scrolling through entries in the definition screen in stroke order demo mode and on occasion also when pulled up via CHARS.
- Fixed a bug that could cause the Registration ID entry prompt to come up after server connection errors in circumstances where you hadn’t just entered a new Registration ID.
- Fixed a bug that could cause example sentences in a few flashcards to appear gray instead of blue.

## 3.1.2

- Restored English language audio (via the Android system text-to-speech engine) in headwords.
- Added a “show copy button” option in Settings / Search Screen to faciliate easy copying of the text in the search field on devices with buggy manufacturer modifications to their text field systems.
- Expanded the tappable area of audio buttons.
- Expanded the height + tappable area of the dictionary definition screen section bar and dictionary collapse / expand headers, and added a touch highlight to make them easier to spot.
- Brought back the toolbar button to quickly launch OCR on devices in landscape orientation.
- Brought back the old behavior of dismissing the keyboard upon tapping a search result list item in two-panel mode.
- Made tapping on the Still Image or File Reader sidebar section bring up a popup menu of open file options if you’re already in that section.
- Made Lulu work in example sentences again if you have her installed.
- Added an option in Settings / Reader for a more readable gray background (or gray text in Night Mode).
- Fixed a nasty bug with preferences saving that could lead to lots of random crashes when fiddling with settings.
- Fixed another nasty bug that caused text-to-speech to hang on a small number of devices.
- Fixed a bug that caused the “search for clipboard on startup” command to occur even when opening Pleco via the flashcard / OCR / reader launchers.
- Fixed a bug that prevented the OCR orientation/invert settings from persisting on a screen rotate or definiton screen popup.
- Fixed a bug that caused the OCR crosshairs to not align correctly with the text they were reading when reading vertical text on a device in landscape orientation.
- Fixed a bug that caused tone colors to appear in pinyin pronunciations in OCR.
- Fixed a bug that could cause some GB and Big5 files to fail to come up correctly int the text file reader.
- Fixed a bug that caused the popup definition bubble to appear when tap-hold selecting text.
- Fixed a bug that prevented flashcard searches for priority = ‘normal’ from returning results.
- Fixed a bug that prevented the flashcard import screen from correctly detecting that files from some sources were XML rather than TXT.
- Fixed a bug that required an extra tap to advance after going back and correcting an incorrectly entered flashcard fill-in-the-blanks character.
- Fixed (again) a bug in the demo version of stroke order diagrams that could preven them from appearing.
- Added prices to the add-on bundle purchase screen.

## 3.1.1

- Restored the ability to copy text out of the search box by tap-holding on it and choosing “Copy.”
- Added an option in Settings / Audio to use Cantonese instead of Mandarin audio in the popup reader + OCR.
- Fixed a bug that prevented English-to-Chinese “WORDS” and “SENTS” results from coming up correctly.
- Fixed some stability issues in the text-to-speech system (particularly noticeable during flashcard tests).
- Made the “where to install?” prompt no longer appear if you already have an existing older Pleco installation, so you won’t accidentally pick the wrong drive and end up missing add-ons or needing to restore flashcards.
- Fixed a rare first-run startup crash on some Android 4.4 devices.
- Added a couple of new integrity checks, so that in situations where Pleco would formerly crash without explanation you should now see a “sorry, the application is corrupted and needs to be reinstalled” error.
- Fixed a crashing bug when exiting the flashcard category selection screen.
- Fixed a bug that prevented third-party launcher apps from creating shortcuts to the OCR module correctly.
- Fixed a crashing bug in the CHARS tab for rare characters without any information available.
- Fixed a crash when attempting to send email on a device with no email client (yes, those do exist).
- Made the text-to-speech microphone button available in the top bar again on landscape-orientation phones.
- Prevented the sidebar menu swipe gesture from triggering when tapping on flashcard tab buttons.
- Made the popup reader dictionary switch button display on the right more consistently.

## 3.1.0

- Totally redesigned user interface, with a more modern drawer-based navigation, fewer extraneous toolbars, better use of standard Android action bars, standard Android icons where available, and a single consolidated activity so we don’t clutter up your task switcher with different bits of Pleco.
- Totally redesigned typography, with lovely new English (Adobe Source Sans Pro) and Chinese (VMType 信黑体) fonts and a more consistent look for all dictionaries. We also added a new option to increase the size of Chinese characters in definitions relative to English characters.
- Vastly improved definition screen: dictionaries all appear in a single scrolling list so you don’t have to flip between them, there’s a new-and-improved character component breakdown database (which has the added benefit of being free) and other new functions like lists of word breakdowns, an experimental thesaurus (download the database for that in Add-ons). And best of all, a pan-dictionary example sentence search - works for English and Chinese, aggregates every example sentence containing a particular word (even if it’s not the primary headword) and presents them to you in a single scrolling box.
- Improved Hui text-to-speech; example sentences are now followed along with a highlight as they play, and in the document reader you can now tap on a single button and have the TTS system read continuously until you tell it to stop.
- Cantonese support: options for Cantonese search (in Jyutping), display (Jyutping or Yale), and audio (system TTS or a new Cantonese audio module); basic Cantonese transliterations are included in our built-in PLC dictionary, another one is available as a paid add-on and lots more stuff on this front is coming soon.
- Reader now keeps a history of previously viewed clipboards / web page extracts / etc.
- Lots of stability / performance improvements.
- Character decomposition is now free and built-in, with a new database we’re working on.
- Dictionaries can now display embedded rare characters (along with historical images / parts of characters in explanations / etc), and we also offer an optional extended character set font download to display even more of them.
- New, very experimental thesaurus add-on (access through the Words tab after downloading from Add-ons / Free).
- Options to tone color example sentences and to color pinyin along with characters.
- More robust “share” support, you can now share a particular word directly to the Pleco dictionary lookup screen.
- Improved history screen that intelligently groups searches from around the same time period.
- Greatly improved long search query breakdown support - more characters at once and fewer errors from random pronunciation / letters / etc. We also added a new option (bottom of Settings / Search Screen) which will add a prompt to create a custom flashcard at the top of any search without an exact match - the custom flashcard will be pre-populated with characters in both sets and with Pinyin so that all you need to do is type in the definition.
- Adopted the new StorageProvider system on devices running Android 4.4 or later, so files in Google Drive or Dropbox or other external services can now be accessed as easily as if they were on your SD card; you can also export files to those services with similar ease.
- Stability improvements to OCR, plus we greatly improved its ability to retain its location in still images when rotating the screen or when reopening the last viewed image.
- New option to show Zhuyin and Pinyin pronunciation in entries at the same time.
- New command to prioritize words that are flashcards in searches - put a ! before your search term - and new settings to do the same in the compound words screen.
- New premium handwriting recognizer add-on with greater accuracy and roughly double the number of characters supported.
- Standard Android tap-hold text selection is now supported in most screens.
- Settings have been overhauled to be maybe not quite so terribly confusing as before - we actually got rid of more than half of the old settings and restructured them to make a bit more sense.
- Lots and lots and lots of bug fixes.

## 2.4.18

- Fixed a crashing bug on some Sony Xperia devices. (one that doesn’t seem to be attributable to anything we did in 2.4.17 but that nonetheless has started happening a lot more frequently lately)

## 2.4.17

- Fixed a nasty intermittent OCR crashing bug on some very new devices running (mostly) Android 4.4.
- Fixed a bug that could cause the keyboard to appear at inappropriate times and take up half of the handwriting area on Android 4.4.
- Fixed a nasty OCR crash-on-startup bug on some non-Google-standard Android distributions like certain versions of MIUI.
- Fixed several other assorted crashing bugs.
- Fixed a bug that prevented character breakdowns in the search box from working correctly when they contained A-Z letters.
- Fixed a bug that made it impossible to clear OCR history in the History screen.
- Fixed a bug that prevented the popup reader bubble from dismissing correctly when the clipboard was updated.
- Fixed a bug that could make the document reader fail to reliably detect URLs in some cases

## 2.4.14

- Fixed a bug that could prevent Copy and Move operations in Organize Cards from executing completely in some circumstances.

## 2.4.13

- Rolled back to the Android 4.2 API version to fix a bug that caused popup reader text to fail to word wrap correctly.
- Fixed a rare flashcard audio crashing bug.

## 2.4.12

- Fixed a crash when entering certain full-text search terms that were very late in the alphabet and that potentially wrapped around to the end of the alphabet.
- Fixed a bug that could cause the strokes in the handwriting input box to disappear but the recognizer to believe they were still around, causing weird / mismatched results when returning from the background.
- Fixed (we think) a crash on startup on certain HTC devices with buggy firmware (firmware which did not correctly handle a particular EditText attribute).
- Fixed a crash on startup with a corrupted preferences file. (this crash discovery made possible by Android 4.3’s newly added ability to collect crash reports from native code, something that should greatly help us in continuing to improve Pleco’s stability going forward)
- Fixed a crash in Manage Dicts when new dictionaries were downloading in the background.
- Fixed a crash when returning to the history screen after adding some items outside of it, or when a background OCR or flashcard import task caused a list to grow longer while in the middle of viewing history.
- Fixed a bug that caused flashcards to be moved / copied in an incorrect order.
- Fixed a couple of rare crashes mostly related to long-running background tasks.

## 2.4.11

- Made the software menu button optional (Settings / General) on devices that do have hardware menu buttons.
- Fixed a bug that prevented some types of newline from being stripped out of custom dictionary entries correctly in search results.
- Fixed a bug that could cause flashcard sessions that had already been completed to reappear as saved sessions.
- Rolled back the flashcard status icon default change since it was causing slowdowns on a few devices.

## 2.4.10

- Started using Google Play’s servers for data file downloads of our main app too, after encountering very few problems with this in our “CN” version.
- Made the software menu button visible at the top right corner of the screen on all Android 4.x devices, not just those without hardware menu buttons.
- Made the audio number-of-plays option available in flashcards for users who’ve only purchased TTS or are only using the free demo audio.
- Made a few interface options available to demo version flashcard users, since left-handed people shouldn’t be forced to buy our flashcard add-on just to have a left-handed-friendly interface.
- Added an actual option to disable OCR “compatibility mode.”
- Improved English text-to-speech compatibility to work with a wider range of devices.
- Stripped newlines out of user dictionary entries in the results list.
- Enabled the “show flash status” option by default for new users.
- Added a helpful alert when attempting to share a text file with the demo version document reader.
- Made the Registration ID prompt no longer disappear / get rid of your entered text on a connection failure (so you can turn on WiFi or whatever without having to enter your ID again).
- Made the blank screen on startup appear black instead of white for the sake of Night Mode users.
- Made the Night Mode flashcard drawing stroke color light-gray instead of white, so that it’ll contrast slightly with the buttons behind it.
- Made the option to disable the “entry bar” apply even in merged searches.
- Added a startup alert for SwiftKey users advising them to choose a different keyboard if they experience problems with handwriting input.
- Fixed glitchy / incomplete display of a few characters in stroke order diagrams (make sure to update your stroke order database via the Add-ons “Updates” tab).
- Fixed an issue that could cause document reader and flashcard test sessions to be reset in some cases after rotating your device while it’s asleep.
- Fixed an issue that could cause the dictionary switch button to become inaccessible (touch area taken over by the right arrow button) in the popup reader.
- Fixed a bug that could cause sentence searches ending with a space to fail to be parsed / broken down correctly.
- Fixed a bug that prevented search results from updating correctly after adding an entry to a user dictionary.
- Fixed a bug that could cause filters in Search Cards to remain active even after you’d disabled them in the interface.
- Fixed a bug that caused flashcard sessions to start putting up “too many audio plays” errors one play too soon.
- Fixed a bug that made it impossible to create a dictionary launcher shortcut on devices running MIUI.
- Added an option for software rendering for the Popup Reader, for the sake of users with extremely high-resolution tablets that have buggy graphics drivers like the Onda V972.
- Fixed a bug that could obliterate a flashcard database if you attempted to “restore” it after having already copied it to the Pleco database storage directory.
- Fixed a bug that made a few user dictionary import screens say “cards” instead of “entries.”
- Fixed a bug that made the Quick Input Bar show up in a few places even if disabled in settings.
- Fixed a bug that could prevent some character components like the top left corner of 想 from pulling up corresponding entries in the Words tab.
- Fixed a bug that could cause user dictionaries to be inaccessible on restart if the database files they were installed from used the wrong file extension.
- Added a startup alert in the event of a corrupted library file (surprisingly common problem with Google Play downloads) advising users to reinstall Pleco.
- Dozen or so other fixes for various rare crashes.

## 2.4.9

- Fixed a bug that could cause search results to be incorrectly prioritized for certain E-C fulltext searches.
- Added a tap-hold menu for the speech recognition button to let you instantly switch between English, Mandarin, and Cantonese input.
- Fixed a bug that made the background of the bottom toolbar in Add-ons remain blank instead of looking like a toolbar.
- Made still image OCR exit gracefully from a particular low-memory situation in which it would previously just crash without explanation.

## 2.4.8

- Restructured the startup file downloader to be more resilient to errors and less likely to freeze up on corrupted files.
- Made the startup file downloader display a progress bar when unpacking files that it didn’t have to download first.
- Fixed a bug that could cause temporary files from interrupted downloads to be left behind in some cases.
- Fixed a bug that could cause flashcards from demo dictionaries to be totally blank instead of merely missing their definitions.
- Fixed a bug that caused the flashcard launcher to no longer automatically resume flashcard sessions as it had done previously.

## 2.4.7

- CN-version-only update to fix a bug that could cause Pleco’s data files to be repeatedly re-downloaded from Google Play.

## 2.4.6

New Features / Design Changes

- Made the Settings and Add-ons tasks no longer appear in the Android task history by default, the Install task never appear in the task history at all, and the other four tasks normally show but be hide-able via an option in Settings / General / Task Management. (also an option there to bring back Settings and Add-ons in history)
- Added experimental support for using Google Play instead of our own server for downloads, but currently only in the CN version.
- Made the Quick Input Bar remain visible on tablets even if the definition is embedded in the main screen.
- Added a helpful alert offering to make the handwriting / radical input screens fullscreen (as they no longer are by default) the first time you access them on a tablet.
- Added a link to Manage Dictionaries from the main screen in Settings (but we’re leaving a copy behind in its old location in Dictionary for at least a release or two)
- Added a settings option for Cantonese voice recognition along with Mandarin and English.
- Added a settings option to automatically play audio when advancing through a document with the popup reader arrow buttons, alongside the existing option to play it when tapping on a word.
- Switched to a newer file open / save box system that should work a bit more reliably.
- Added support for Amazon’s in-app purchase system in preparation for (probably) listing Pleco in their store once we’ve established that this new release is reasonably bug-free.
- Added a warning message in Manage Dicts when tapping on a user dictionary in a copy of Pleco without the paid flashcard add-on (required to access user dictionaries).
- Made the Copy / Share / etc commands in OCR in crosshairs mode only copy the highlighted text.
- Added a startup alert when using user dictionaries in an outdated (first few releases of Pleco 2.0 on Palm and Windows Mobile) format.
- Made the popup reader no longer show results from demo dictionaries.
- Made Lulu TTS play traditional character text much more reliably.
- Made Hui TTS use the Pinyin in custom dictionary entries even if it doesn’t match how it thinks the characters should be read.
- Made both TTSes read ~ characters in example sentences correctly (as the original word).
- Sped up TTS playback by not checking for the presence of a TTS system every time audio is played if both systems aren’t installed.
- Added a check to prevent accidental double-tapping of the TTS play button in example sentences.
- Revised the placeholder text in the document reader to no longer allude to the benefits of the paid reader add-on if you’ve already purchased it.

Bug Fixes

- Fixed a bug that could cause E-C user dictionaries to only show a single matching result even with multiple results available.
- Fixed a crashing bug when searching E-C user dictionaries that contain entries with extremely long headwords.
- Fixed a bug that could cause flashcard sessions to fail to show some cards if TTS was installed.
- Fixed a bug that caused the document reader to fail to recognize words that were broken up by spaces.
- Fixed a bug that could cause Pleco to prematurely switch out of a dictionary that was switched to via a tap-hold menu selection.
- Fixed a bug that could make it impossible to advance to the next flashcard if “undo”ing a fill-in-the-blanks card after it was marked correct/incorrect but before advancing to the next card.
- Fixed a bug that could cause English flashcard sessions to fail if dictionary remapping was enabled with a series of Chinese dictionaries.
- Fixed a rare crash when starting / resuming a flashcard session.
- Fixed a bug that prevented the popup menu flashcard creation / deletion commands from working correctly in the main dictionary search screen.
- Fixed a bug that prevented custom flashcard creation screens launched from the reader / OCR from reflecting your default category selection.
- Fixed a bug that could cause text copied out of the document reader to not reflect your selection (but be taken from somewhere else in the document).
- Fixed a crash on exiting the dictionary definition screen after listening to English audio.
- Fixed a bug that could cause the handwriting box to only occupy part of the screen even when it was configured to be full-screen when the radical box was configured to be partial-screen.
- Fixed a bug that prevented the flashcard system from switching back into fill-in-the-blanks character input mode when advancing to a fill-in-the-blanks character card from a Pinyin one with the practice drawing box open.
- Fixed a crash on beginning a flashcard session with no cards found.
- Fixed a couple of rare crashes in flashcard settings.
- Fixed a bug that could cause “export cards” progress updates to skip / freeze up for hundreds of cards.
- Fixed glitchy line rendering in the flashcard handwriting overlay on some devices.
- Fixed a bug that prevented the font size from being consistently customizable in the text file reader.
- Fixed a few more rare OCR crashes.
- Fixed a rare crashing bug when launching the document reader.
- Fixed an obscure crash when entering characters in an empty search box.
- Fixed a bug that prevented the New Cat button from working in Search Cards results.

## 2.4.5

- Fixed a bug in OCR that could prevent search results from appearing at all in some instances.
- Fixed a couple of rare crashes.
- Caused the “switch language” button to respect your current setting for changing the search dictionary on a new search.

## 2.4.4

- Fixed a bug that could cause the new launcher app startup alert to keep appearing on every startup.
- Fixed a bug that could prevent the new “legacy empty dict switching” feature from triggering correctly on startup.

## 2.4.3

New Features / Design Changes
* Made wildcard and full-text searches in user dictionaries behave more closely to those in non-user ones, enforcing stricter matching with the former (no more partially-completed matches) and allowing prefix matching in the latter (so typing “dictionar” will get you to “dictionary”)
* Added a startup alert to inform users of the change from launcher apps to shortcuts and offer to create shortcuts to replace those launcher apps.
* Made merged multi-dict search results bury entries from demo dictionaries if a non-demo dictionary is available, even if they’re not set to be hidden altogether.
* Added a “legacy empty dict switching” option in Settings / Dictionary / Search Settings / Result display to restore the old behavior (present in Pleco since 2004 or so) where switching dictionaries with the search field empty would take you to the first entry in the search results from the last time you searched that dictionary.

Bug Fixes

- Fixed a bug that prevented the generation of Pleco shortcuts from third-party application / task launchers.
- Fixed an issue on Android 3.0 and 3.1 (but not 3.2) that caused the interface to be grayed-out and unusable.
- Fixed an issue on Android 3.2 that could cause long document files in the document reader to remain blank.
- Fixed a bug that prevented switching from a merged search to individual dictionaries when the results are a multi-part character breakdown.
- Fixed an intermittent crash when backgrounding a flashcard session.
- Fixed an embarrassingly frequent crashing bug in full-text searches.
- Fixed a crashing bug when viewing certain full-text search results.
- Fixed a bug that prevented the menu button from appearing correctly in the free-version clipboard reader.
- Fixed a crashing bug when interrupting some audio playback.
- Fixed a crashing bug when attempting to advance through an empty stroke order diagram box.
- Fixed a crashing bug when rearranging lists of flashcard categories.
- Fixed a crashing bug in full-text searches of demo dictionaries.
- Fixed a crashing bug when opening multiple instances of the main dictionary search screen (only possible in certain rare circumstances).
- Fixed a bug that caused “buy” buttons to appear instead of download buttons when viewing not-yet-purchased dictionaries in the “Updates” tab in Add-ons.
- Fixed a crashing bug when returning to Add-ons after Pleco had been exited for long enough to be unloaded from memory (though only if you had some not-yet-updated basic data files to download).
- Fixed a rare bug that could prevent partially completed full-text searches for some words with different American/British spelling from picking the earliest matching word.
- Fixed a bug that prevented flashcard duplicate checking from treating a word as “in category” if multiple duplicate cards existed for the word and not all of them were in that category.
- Fixed a bug that prevented dictionary switching during flashcard tests if the “remap” feature was enabled.
- Fixed a bug that could produce a truncated or gibberish definition when switching dictionaries with the tap-hold popup menu while viewing history.
- Fixed a rare crashing bug when accessing the options menu in a couple of screens.

## 2.4.2

- Fixed a bug that could cause crashes on some merged searches involving user dictionary entries.
- Fixed a bug that caused demo version dictionaries to continue to show up in merged search results even after enabling the option to hide them.
- Fixed a bug that prevented the reader text selection from being extended to cover alphabetical text.
- Fixed a bug that caused the TTS system to ignore / skip over spaces.
- Fixed a bug that could cause garbage characters to be copied to the search field when tapping on the search button in the popup reader toolbar.
- Fixed a bug that caused weird behavior in flashcard sessions after deleting a card in Card Info, especially if in the middle of backtracking.
- Fixed (we hope) a bug that could cause flashcard list items being drag-reordered to show incorrect / outdated info.
- Fixed a bug that caused Organize Cards card lists set to match the dictionary list display settings to include some useless extra padding space at the bottom of each item.
- Fixed a rare crashing bug when exporting flashcards from a slightly corrupted flashcard database.
- Shaved 150K or so off of the installation size by updating to a newer version of the Android developer kit.

## 2.4.1

New Features / Design Changes

- Redesigned single-character searches so that they will now pay attention to your simplified/traditional character setting and sort by character frequency in your chosen character set - traditional users will no longer have to put up with 几 as the first result for “ji,” or with 歷 and 曆 being needlessly grouped together even with 曆 being significantly less common and unrelated to 歷.
- Fixed an issue that could cause alternate character variants that had been merged into a search result to not be visible in the results, so that Pinyin searches for a particular character might not turn up any entries even if the dictionaries do cover that character.
- Made single character Pinyin searches always treat every independent character in the current character set as a separate result, again to aid in finding a particular character from a long result list (and to avoid having a ridiculous case like “hui2” give you a single entry with nine different /-separated characters).
- Separated the speed settings for the Lulu and Hui TTS engines.
- Fixed the rendering of very complicated variants so that if you have a word with multiple variants in both simplified and traditional, cases where more than one variant in one character set maps to a single character in the other will be separated with ;s instead of /s (so that you can tell which character goes with which).

Bug Fixes

- Fixed a serious bug with full-text searches that could sometimes bring up blank / irrelevant results (or even cause crashes).
- Fixed several major memory leaks that could cause Pleco’s performance to significantly degrade over time.
- Greatly reduced the memory requirements of long search result lists, which should help with performance on some devices.
- Sped up searches on some devices with very slow memory allocators by reducing the number of allocations needed to grow the result list.
- Eliminated the option to configure the merge character set separately from the general traditional / simplified option, since it was proving too complicated to juggle conflicting settings for those, and since with multi-character entries we’ve opted to only merge on simplified (owing to the great variation in traditional versions of words among our mostly-Mainland-developed dictionaries, and the fact that there are only maybe half a dozen cases of different traditional words being converged to the same simplified one and that we already have another system for dealing with those).
- Fixed a couple of rare seemingly-random crashes which we turned up using some more advanced (iOS-only - good thing we’re developing on both platforms) memory error finding tools.
- Removed the superfluous / confusing superscripts from some merged search results.
- Fixed a bug in HanDeDict that caused umlauts in definitions to be turned into ’v’s, and more minor bugs in several other dictionaries (see the Updates tab).
- Fixed a bug that could cause OCR history entries to show up as “invalid,” could cause OCR history views to crash, and could prevent changes to the OCR history from saving correctly.
- Added an alert on startup for users running extremely outdated (to the point of causing very slow searches) dictionaries.
- Started using the built-in font instead of our fallback Song font to display Unicode Extension A characters - if your system starts displaying lots of characters as boxes in this update, you can download Google’s Droid Sans Fallback Full font with support for those characters from this page (click on “Raw” at the top right corner of the file box) and install it with the appropriate option in Settings / General.
- Tweaked the merged dictionary icons slightly so that a full-text search of dictionaries in the same language (i.e. an English search of English-Chinese or a Chinese search of Chinese-English dictionaries) will show up with an inverted icon, so that you can easily differentiate these from regular searches.
- Fixed a bug that required you to download the TTS add-ons before you could play their audio samples.
- Applied our code for working around HTC / Sony Ericsson phones’ keyboards refusing to acknowledge the standard Android “no suggestions” flag to flashcard fill-in-the-blanks tests that were set to use the system IME, as we had already done for the dictionary search field.
- Fixed a bug that could cause flashcard definition text to appear cut off in the background of stroke order tests.

## 2.4.0

General

- Switched to the new Holo theme on Android 4.0 devices (and it looks pretty darn cool), and switched from halloween orange to clean Android blue even on Android 2.x devices.
- Also on Android 4.0, optimized every single screen (we think) for day and night mode. (this was not possible on older devices because they didn’t support light-themed settings screens)
- Switched to the new menu-button-at-the-top-right-corner-of-the-screen UI on devices without hardware menu buttons. (owners of buggy HTC devices without hardware or software menu buttons, rejoice!)
- Totally restructured the way we handle different “sections” of Pleco in a way that more closely resembles the iPhone version: each of the 6 major sections of the app (dictionary, OCR, document reader, flashcards, add-ons, settings) is now an independent “task” with its own state, and the menu in every single screen will let you switch between them. (onscreen menu on Android 3.x/4.x, menu button on 2.x) Each section will also show up independently in your “recent tasks” list, so if you’re more accustomed to using that to switch between tasks, or would like to jump back to a particular recently-used section of Pleco from where you were before, that should now be possible too. Please let us know what you think of all of this, and let us know if you encounter any weird section-switching behavior / any commands switching you to a different section than they’re supposed to / any menus that include an option to switch to the section you’re already in / etc.
- In conjunction with this, added a title bar to a lot of settings screens that didn’t have one before, both to keep the menu button location consistent and to help you figure out where you are in the many levels of Settings / Organize Cards / etc.
- Enabled hardware acceleration on supported Android 4.0 devices.
- Added an experimental text-to-speech add-on with two different voices - “Hui” and “Lulu,” each available for $4.95 in “Add-ons.” These make audio for custom cards that aren’t in our “extended” database sound much better, particularly if they represent phrases or sentences, and also add the ability to listen to audio for entire sentences / paragraphs in the document reader and the ability to hear audio for any dictionary example sentence by tapping on an extra audio button next to it.
- Greatly improved the interruptibility of audio playback, so in general the audio you’re currently playing should stop almost immediately once new audio starts playing.
- Eliminated our old launcher apps after we were accused by a competitor of spamming Google Play with them, and replaced them with an option in Settings / General to install shortcut icons that accomplish pretty much the same thing.
- Changed our app’s startup mode so that it should now return you to your last location when you launch it from a program launcher icon; if you preferred things the old way, one of the new launcher icons mentioned above lets you always return to the main dictionary search screen.
- Added an “invert back button” option (Settings / General / Startup) to reverse the current back button behavior so that now it will open the keyboard if it’s closed / exit the app if the keyboard is open, as opposed to the default behavior of closing it if it’s open / exiting the app if it’s closed.
- Added support for pronouncing English words through Android’s built-in speech synthesizer on compatible devices.
- Updated app icon.
- Disabled our Android 4.1 crashing bug workaround (which causes a lot of annoying superflous extra spaces) on devices running Android 4.1.2 or later, since the relevant Android bug appears to have been fixed in that update.
- Moved the “example headword color” option to the General color scheme preferences.
- Buffered add-on unpack file writing for slightly faster performance.
- Made the bundle file download startup screen keep bugging you if your files are out of date until you explicitly tell it not to (with a don’t ask again button) or update them.
- Added support for the automatic update checker to also check for / notify you of / offer to download updates to the app itself if you didn’t download it from Google Play (as with this beta).
- Added a “copy ID to clipboard” button in Manage Registration and a corresponding button in the ID alert that comes up after a free HWR registration.
- Added an option in Settings / Dictionary / Search Settings / Result Display to clear the search field immediately bring up the Browse / History / etc screen, since many people seem to feel that this is far more useful than seeing their previous search results - this will be off by default for now, though.
- Made Settings refresh properly after a “reset all settings to defaults.”
- Made the “update bundle files” option automatically kill and reopen Pleco so you don’t have to fiddle around with the task manager for it.
- Improved memory handling for formatted text to reduce garbage collection lag / speed up performance a bit on older devices.

Dictionary UI

- Added experimental, display-only support for Cantonese to the PLC dictionary; you can turn this on in Settings / General. Searching is not supported yet (you can use a free Cantonese IME for that), nor is there an option to display in any system other than Jyutping, nor is there any Cantonese audio or any support for Cantonese in flashcards / user dictionary entries, nor is there a dedicated dictionary of Cantonese-specific vocabulary; all of these problems are in the process of being addressed, but this was the first Cantonese feature to be in a release-able state and we figured it would be better than nothing at least.
- Added options to use custom English/Pinyin fonts as well as custom Chinese ones, and made the custom Chinese font apply in more places (like radical input).
- Switched to a much much prettier font (Tablet Gothic Compressed Semibold by TypeTogether, if you’re wondering) for dictionary abbreviation icons.
- Added a dedicated “Dictionary Browser” screen (accessible through Manage Dicts or by tap-holding on a search results entry) to let you view all of the entries in a dictionary in order and (for a user dictionary) easily edit / delete them.
- Added an “always save first result” option (Settings / Dictionary / Main) to save the first entry in the results list to history even if you don’t bother tapping on it to view it in detail.
- Added an automatic database update check option.
- Improved the reliability of background file downloads.
- Improved the usefulness of “Components” data in the “Chars” tab of dictionary entries - it should now provide definitions / character searches for a lot of components that were previously missing them. (requires database update in Add-ons)
- Added an option to support “Words” items by frequency when they’re set to be merged multi-dict (Settings / Dictionary / Definition Screen Interface / Words)
- Added an option to force the speech recognizer to recognize English instead of Chinese. (Settings / Dictionary / Search / Input Methods)
- Added an option to shrink the text in the search input box. (Settings / Dictionary / Main Screen Interface / Portrait or Landscape)
- On tablets, made the handwriting and radical input areas only take up the bottom half of the screen by default, and added an option (Settings / Dictionary / Search / Input Methods) to switch them back to fullscreen.
- Successfully forced (we think) the built-in keyboards on devices by HTC and Sony Ericsson (among others) to not auto-replace / make suggestions in the search field, in spite of the fact that they ignore the standard Android API for doing this and display suggestions even when our app asks them not to. We also added an option in Settings / Dictionary / Input Methods to use an alternate approach for this (pretending this is a visible password field) on devices where our first workaround doesn’t work.
- Eliminated the “show reader if search string > N” option for startup searches - it made sense back on Palm OS when we originally introduced it, but between our new Reader shortcut icon and Android’s “Share” and recent activity switching features it really didn’t seem like it was worth having anymore.
- Added an option in Settings / Dictionary / Main to keep the phone from turning off with the dictionary screen open
- Made the dictionary switch button and menu language-independent when the search field is clear, so that it’s easier to cycle through / verify the presence of all of your available dictionaries.
- Improved the welcome screen to only show “welcome” text the first time the app is run, and to show several useful options (browse dictionary, “search tips,” search history, and the instruction manual) any time you switch dictionaries with a blank search field.
- Changed the document reader selection behavior on headwords to select the entire word rather than just the specific character you tapped on.
- Retooled dictionary switching behavior a bit to make it more logical: among other things, the dictionary fallback order when cycling between dictionaries with a button press now differs slightly from that when entering a new search term (with a new search term it just starts from the beginning if it can’t find a match in the current dictionary, since it seems unlikely that anyone would want to search the dictionary right after the one they happen to be in rather than the first one), the system will no longer skip over a multi-part regular Chinese search in favor of a fulltext one, and there’s now an additional checkbox in Manage Dict Groups to specify that a full-text search group should only be used in a full-text (#-prefixed) search (so that now those “full-text, Eng dicts” type groups are accessible in those searches at least and not just after choosing them from the menu). We’ve also now changed the “use in search” option into a general “use in dictionary” option - if it’s disabled then the cycle / menu options don’t apply.
- Updated nearly all of our dictionary databases to begin to converge towards our new typographic design - we’re not done with that yet, and there are still a number of discrepancies between dictionaries, but we do at least have everything more-or-less properly tagged now (so examples everywhere will be TTSable, Pinyin everywhere will correctly display as Zhuyin if you’ve selected that, English full-text searches will no longer pull up a bunch of Pinyin results, and ~s are now replaced by their headwords almost everywhere) and should be able to fully synchronize everything in conjunction with the rollout of that new type design in the next few months, after which all sorts of other lovely things become possible (like a cross-dictionary example sentence search).
- On top of all of that, Unihan is also updated to better cover rare characters and to use tone colors / support Pinyin searches.
- Added support for inter-dictionary hyperlinks.
- Sped up the scrolling of long dictionary entries and short reader documents on certain Android 4.0 devices.
- Somewhat improved the speed of result list scrolling for long entries (e.g. 21C ones).
- Greatly improved the speed of radical list scrolling on Android 4.x devices.
- Slightly improved the speed with which handwriting returns results after each stroke.
- Made full-text English search results attempt to clip the definition in the results list to the section containing the searched-for term.
- Changed the behavior of multi-part character search results to show you results for the first character instead of the last.
- Added a menu option when viewing a dictionary definition to copy the current headword to the clipboard.
- Added an option to create a new user dictionary entry from a Chinese character search with incomplete results - this will only appear if you’ve already created a user dictionary in Settings / Manage Dicts.
- Added “Waiting” result list text for long searches.
- Tweaked the size of characters in the radical input box on smartphones with 768-pixel-wide displays (like the Nexus 4) so that it’ll fill up the space more nicely.
- Removed the “clipboard monitor” option, as the majority of Pleco users are now running an OS version that’s not compatible with it (and that’s unlikely to change with Android’s generally stricter security policies).

Search engine

- Merged multi-dict search now works in all search types and is enabled by default.
- Merged full-text English searches now factor in frequency in their search result ranking as well as relevance and number-of-dictionaries-the-word-appears-in.
- Introduced “Dictionary Groups,” which allow you to specify a subset of your dictionaries and perform a merged search that includes them but no others. These are cycled through just like regular dictionaries, and can be configured the same way through their own screen in Settings / Dictionary. You can use this system to (among other things) prioritize full-text English over regular English searches - all of the built-in merged options are listed as groups too. You may want to disable “Use in toolbar” for some (or even all) dictionaries in Manage Dicts in conjunction with this, so that you can very efficiently switch between search types.
- Added / enabled-by-default an option to reset to the first dictionary group if merged search is selected and you’ve switched to a single dictionary
- Multi-word full-text English searches are much faster, especially when they involve very common words, and all full-text English searches handle partial searches much more intelligently (essentially they match on whatever word is alphabetically first across all dictionaries)
- Chinese wildcard searches are also much faster and are no longer limited to the first few characters of a word
- Full-text English searches are now supported in user dictionaries; you have to manually enable this feature for a particular dictionary in Settings / Manage Dicts, but it will automatically update the index when you add / delete / edit entries after that.
- Added / enabled-by-default an option to intelligently handle regional spelling variations in full-text English searches (Settings / Dictionary / Search Settings / Full-text / Fuzzy English); if you type in “color” you’ll also get “colour” matches and vice versa
- Regular English-Chinese searches now return just the results that begin with your search term, rather than giving you every entry from the entire dictionary with the search term simply the top visible row.
- Variants are now handled much, much more intelligently. Though a seemingly rather boring new feature, this was actually the trickiest single part of the whole overhaul: merged searches should be able to intelligently distinguish between unique words and different ways of writing the same word so you’ll get fewer unnecessary results, and finally (finally!) most of the definition-less “alternate form of” / “see” / etc entries point to the actual definitions instead of requiring you to tap on a link. This is still a bit buggy for data file related reasons - takes a lot of work to correctly tag variants in all of them - but even in its current form it should be a vast improvement over what we had before.
- English and Pinyin searches will now return a “no results found” if you enter a string that’s too long, rather than returning the longest match - the former behavior was responsible for a lot of weird glitches (unwanted toggling between English and Chinese search, for example) and just in general didn’t seem like the most logical / intelligent way to handle those cases.
- Searches are now interruptible, the upshot of which is that in some searches you’ll find that results come back a lot faster because the system doesn’t have to wait for the previous search to finish first.
- Stopped paying attention to capitalization in user-entered Pinyin searches, since it wasn’t really helpful and some manufacturers’ keyboards (we’re looking at you, HTC) can switch you into caps-lock mode unintentionally.
- Greatly sped up single-character and single-syllable searches by fixing a bug that was preventing them from using our new accelerated indexing system.
- Also greatly sped up all wildcard searches, especially those on some older Android devices with performance-challenged virtual memory systems; this has given a modest speed boost to other search types as well.
- Changed our wildcard system so that the standard ? for single character and * for multi-character wildcards are now supported regardless of configuration settings; however, you can still configure additional wildcards as well if you prefer, and to avoid confusing everyone we’ve left the @ and $ wildcards in as the defaults for those. (though those really only made sense on certain Palm OS keyboards where they were easier to enter than ? and *)

Flashcards

- Added a simple one-button option to install (without an internet connection) premade flashcard lists; currently limited to HSK but about to support several others as soon as we get the copyright status checked out.
- Improved flashcard sketch box and handwriting UIs: the former now has an Undo button, is now much faster / smoother and lets you operate the reveal / correct / incorrect / etc buttons while it’s visible, the latter is now a good bit more reliable at showing you whatever’s behind it and may be a bit smoother too.
- Added an option in Interface to shrink the buttons on the bottom of the session screen.
  “Limit unlearned” option in Card Selection turned into a “Limit new cards” option which will let you specify a maximum number of new cards to introduce per day instead of a maximum number total to have around at one time.
- Added a new option in Card Selection for Repetition Spaced tests to show new cards at the start of the session.
- Added an option in Scoring to show text below score buttons in Rep-spaced to tell you how long the interval will be before the next repetition if you select this score.
- Added a menu command to directly resume the current flashcard session from the main screen on Android 4.0 devices.
- Added options on Card Info to restore / discard the “dormant” custom definitions that are saved when you convert a card with a custom definition to a built-in dictionary one, and an option to skip those definitions when exporting in Export Cards.
- Added a “view dictionary entry” tap-hold menu command in Organize Cards.
- Improved explanatory alerts when skipping over invalid cards during a session.
- Enabled the “undo” command in the period between tapping on the “correct” or “incorrect” button and choosing a particular score in SRS tests.
- Gave card filter options more intelligent names.
- Made import / export cards commands work more reliably in the background / with the device screen off
- Changed the margins of text-less flashcard control buttons so that they’ll appear more centered.
- Updated SQLite to slightly improve performance of a few flashcard / user dictionary functions.
- Added an option to select whether the flashcard sketch box should cover the session control buttons or not.
- Added a menu option for “Organize Cards” to the flashcard testing screen.
- Made the status / notification bar no longer hidden during flashcard tests.
- Made the Card Info screen only remove a category when tap-held.
- Made the sketch box “undo” button more visible in flashcard tests in night mode.
- Gave the “tap with two fingers to clear” text an opaque background when the drawing box is transparent, so you don’t have the ugly appearance of text on top of other text.
- Enabled scrolling in the “View as dict entry” command in Organize Cards, though this can cause strange behavior with custom cards.

OCR

- Added a “Crosshairs mode” option in live OCR - you can enable it through the corresponding menu command. This should let you OCR without having to manually resize the recognition area, which a lot of people seem to find annoying. We’re still tweaking the text detection algorithm (it can get confused by computer monitors on some devices, for example) but in general it’s working pretty well and in future releases we plan to combine this with more sophisticated motion tracking to really offer a whole new experience in live OCR - something that both totally eliminates “jitter” and improves recognition accuracy too.
- Greatly improved the usefulness of the OCR continuous autofocus system, which you can enable in Settings / OCR / Live; it now works in macro mode and on pre-Android–4.0 devices, and is tied into the motion detection and character recognition systems so that it will (hopefully) only refocus when needed.
- Heavily redesigned the OCR interface to make many more functions available, and all of them from a single button tap when the recognizer is paused; you’re now two taps away from Google Translate (via the Share command), one tap away from searching for / bringing up the document reader on / copying-to-the-clipboard / playing audio for the current text (tap-hold on the audio button to hear the entire thing via text-to-speech), and one tap away from enabling / disabling our new “crosshairs mode,” our old-but-improved continuous autofocus mode, and the “scroll rec area” still image option (where the recognition area is stuck on / scrolls with the image instead of floating above it).
- Added all of these OCR commands in “Pulse Mode” too, which previously lacked even the flashcard / view entry buttons.
- Added an OCR settings option to use our continuous autofocus system instead of the one built into Android, since we’ve found the performance of that to be lacking on some devices.
- Greatly streamlined the code for taking a picture / loading a picture from within an OCR session, so that it’ll switch screens a lot faster, load the new image more reliably when it’s done, and not throw you back to the main dictionary search screen if you cancel.
- Added direct clipboard copy commands to the menu bar.
- Killed the annoying motion detection popup the first time you run OCR and made motion detection always on by default.
- Made macro focus no longer on by default in OCR (since on the majority of phones now it seems to do more harm than good).
- Added an OCR menu option to create a custom card (so no need to permanently change the “unknown word handling” setting, though that’s still an option too).

Reader

- Added a useful little shortcut: if you tap-hold on the “expand” button (|->, second from the left) it will immediately select an entire sentence, and if you tap-hold on it again, an entire paragraph.
- Added optional (Settings / Reader) support for scrolling documents with direction pad buttons, mainly useful on some Sony e-readers which use those button codes for page scrolling.
- Added an option (Settings / Popup Reader) to hide the popup reader search button in case you have a tendency to hit it accidentally and get taken away from your document.
- Eliminated the annoying text encoding prompt that appeared after saving the clipboard to a file.
- Changed the document reader’s default behavior when adding a flashcard for a selection that’s not in the dictionary to create a custom card with that text (rather than creating a card with the longest dictionary match)
- Made the document reader refuse to open files that don’t have a .txt/.gb/.b5/.u8 extension unless you specifically turn on an option to override that, to help with confusion concerning what file formats the reader supports.
- Added an option (under Popup Definition) to auto-play audio after tapping on a word (but only that initial word tap) with the popup reader.
- Increased the tappable area of the popup reader arrow buttons.
- Added the ability for the Text File Reader to view “share”d online text files and Gmail attachments.
- Improved support for Unicode Extension B/C characters in the popup reader.

Bug Fixes

- Fixed several crashing bugs, including an additional, catch-any-lingering-problems fix for Android 4.1’s notorious formatted text crashing bug.
- Fixed rendering issues in the document reader and other places.
- Fixed issue which caused search box sentence breakdowns to be interrupted by punctuation marks
- Fixed issue which could cause erroneous conversions from tone marks back to tone numbers in certain instances
- Fixed issue with flashcard multi-choice definition questions not always expanding correctly
- Shrank the fonts in the audio download prompt so they’d fit in the buttons better.
- Fixed a bug that could cause buggy stroke order rendering on extremely-high-resolution tablet screens
- Fixed a bug that could cause the category “combine children” feature to fail in the middle of combining and end up not integrating all of the cards into the new parent category.
- Made our most comprehensive attempt yet to fix the persistent crash-when-switching-screens issues - hopefully this one will finally squash them.
- Fixed a bug that prevented the flashcard category “add new” option from appearing correctly if the option for multi-level category selection is enabled
- Fixed a bug that could cause flashcard sessions to be shorter than configured when dealing with a huge number of “invalid” cards.
- Fixed a crashing bug when performing batch flashcard commands.
- Fixed a bug that caused the background of the color picker to be white instead of dark.
- Fixed a crashing bug in the document reader when opening extremely long documents.
- Fixed a bug that could cause audio to fail to play correctly with some Bluetooth headsets for very short recordings.
- Fixed a bug that prevented the definition / character info / etc screen from remembering its last tab correctly.
- Fixed a bug that could cause the “Chars” tab to be incorrectly blank for some characters.
- Fixed a bug that prevented add-on file sizes from being calculated correctly if they involved lots of smaller files.
- Fixed a rare crashing bug when tapping on an empty text field.
- Fixed a bug that made the popup reader needlessly cramped on some smaller-screened phones.
- Fixed a bug that made the popup reader needlessly far away from text at the end of a line
- Fixed a bug that caused strokes in the the flashcard sketch box to be needlessly thick
- Fixed a bug that caused null / corrupted search results on updating or deleting a dictionary
- Fixed a bug that caused the search command in a copy of the document reader entered via another app with “Share” to fail to actually copy the selected text to the search input field
- Fixed a bug that could cause flashcards to fail to be added to a category in OCR capture list mode when the duplicate handling for “not in cat” was set to “prompt.”
- Fixed a bug that could prevent some English-Chinese hyperlinks from linking correctly.
- Fixed a crashing bug when viewing text at the very end of a long reader document.
- Fixed a bug that caused the history screen to fail to return to the top of a list when switching tabs.
- Fixed truncated buttons in the flashcard duplicate dialog.
- Fixed a bug that could append erroneous 5th-tone numbers at the end of custom pronunciation strings in user dictionary imports.
- Fixed a bug that caused English audio playback in definitions to include superscripts.
- Fixed a bunch of flashcard test screen rotation bugs - editable fields should now retain their content and focus correctly on a screen rotation, the drawing box should preserve its contents, and the drawing box should no longer disappear and refuse to reappear after rotation.
- Fixed a bug that prevented tap-holding on the + button in OCR from letting you select a flashcard category.
- Made the Manage Dicts screen save changes more reliably.
- Made the system save clipboard checksums more aggressively so that it should accidentally trigger the clipboard lookup option less often.
- Fixed a bug that could cause interfaces to be reset when they weren’t supposed to be when rotating the screen on devices running Android 3.0/4.0.
- Added an actual error message when Pleco fails to load because of a corrupted code library (a surprisingly common problem on some Android devices).
- Fixed a bug that could cause corrupted display of text containing tabs in the text file reader.
- Fixed a bug that caused the clipboard command in the text file reader to copy the wrong data (or none at all).
- Fixed the fuzzy rendering of the arrow buttons in the popup reader and stroke order diagrams box.
- Fixed a bug that made the “browse entries” etc items on a failed search still tappable.
- Fixed a bug that could cause the button bar in the Edit Entry screen to remain bright even in Night Mode.
- Fixed (we hope) an issue that kept the keyboard from reappearing when the screen was rotated on some HTC devices.
- Fixed a bug that could make it impossible to click on search results to view them in cases of extremely long result lists.
- Fixed a bug that kept the “Searching…” progress spinner from showing up on some older Android devices.
- Fixed a bug that caused the flashcard drawing box to sometimes clear when it wasn’t supposed to.
- Fixed a few other rare crashing bugs, including one related to resuming from the background after a long time off.Fixed a number of crashing bugs when various parts of Pleco were left in the background for a while - this was actually quite challenging since it involved coming up with a way to package up various data structures in a format that Android would be willing to hold on to for a longer time.
- Corrected the sort order of Pinyin results in some dictionaries - this was a rather complicated low-level change too so please let us know if you find any discrepancies.
- Fixed a bug that could sometimes cause OCR to fail to return results and fail to show a result even when tapped on.
- Fixed a bug that prevented plecoregister: links from working correctly.
- Fixed a bug that prevented full-width letters / numbers in headwords from being searched correctly (though implementing this requires some database updates).
- Fixed a number of bugs related to the new launcher shortcuts not launching the app correctly.
- Fixed a bug that allowed the creation of new user dictionaries with empty names.
- Fixed a bug that caused garbled recognition results with some rotated still images.
- Fixed a number of OCR crashing bugs related to buggy camera drivers.
- Fixed a bug that could garble text copied to the clipboard from the popup reader.
- Fixed a bug that could prevent full-text highlighted entries from correctly scrolling to the first matching section.
- Fixed a couple of rare crashes relating to search result list updates.
- Fixed a bug that could mix up the sort order of merged full-text English search results in English dictionaries.
- Fixed a bug that could make the search input field so small as to be useless.
- Fixed a bug that could screw up flashcard duplicate-checking for cards containing Unicode Extension B/C characters.
- Fixed a bug that could occasionally prevent the search result list from updating correctly on startup.
- Fixed a bug that kept the “can’t connect to server” error from coming up repeatedly in “Add-ons.”
- Fixed a bug that kept the “choices from” custom category option for multiple-choice tests from working correctly.
- Fixed a rare crashing bug when scrolling still image OCR.
- Fixed a bug that could cause the standalone letter ‘V’ to appear as an umlauted u in Pinyin transcriptions (which applied to a single CC entry, V沟).
- Fixed a bug that prevented ‘r’ syllables from rendering correctly in Zhuyin.
- Fixed a bug that caused the [] and / display to be a bit odd in some traditional character variant cases.
- Fixed a bug that prevented the @-to-ignore-pronunciation override character from working consistently in user dictionaries.
- Fixed a crash when ending a flashcard session on a “skip card” or “delete card” command.
- Fixed a bug that could cause flashcards to be added to a nonexisting category after doing an “erase database.”
- Fixed a bug that could prevent uppercase ABC hyperlinks from working correctly.
- Fixed a crashing bug when viewing full-text search results for certain rare words.
- Fixed a bug that could add extra spaces before headwords in some dictionaries.
- Fixed a bug that could cause a “storage location changed” error on startup in cases where there’s actually just an optional file update.
- Fixed a bug that made the OCR launcher exit with no error message when the OCR database file was not installed.
- Fixed a bug that prevented the controls in the General screen in Settings from updating correctly after a “reset all.”
- Fixed a bug that prevented the “(add new)” category option from working correctly in some screens with multi-level category selection enabled.
- Put up an error (instead of just crashing) when attempting to take a photo in OCR on a device with no SD card.
- Offered to re-download files in the case of the rare “no dictionaries found” error (which generally only happens on serious filesystem corruption), instead of simply putting up an error message.

## 2.3.14

- Worked around the crash-on-startup / crash-on-viewing-entry bug on Android 4.1 in a much more definitive way; we went through and found the precise issue in Google’s code (in fact in our bug report we told them exactly how to fix the bug for Android 4.2), and armed with this knowledge we were then able to re-structure the way our software handles text in such a way as to avoid triggering the bug. (rather annoying to spend ~5 days working around a bug that Google could have caught and fixed in a 10 minute code review, but manufacturer-created bugs like this have been part of mobile app development since the Palm days)
- Fixed a smaller Android 4.1 bug that prevented the list selection from updating correctly when tapping on a new list item in two-panel mode.
- Re-added some bug fixes in flashcards in 2.3.8 that had somehow been rolled back in the last few releases.

## 2.3.13

- Fixed yet another Android 4.1 bug that could sometimes cause handwriting input to enter a new character after every stroke.

## 2.3.12

- Fixed another Android 4.1 crashing bug relating to the same style-text word-wrapping issue on Google’s side. (Google seriously needs to start doing developer beta-tests of new Android releases like Apple does)
- Fixed a different Android 4.1 bug that prevented interrupted downloads from resuming correctly.
- Fixed a rare crashing bug when moving Pleco into the background while in the middle of purchasing an add-on.
- Fixed a crashing bug when leaving a numeric input field blank in Search Cards.

## 2.3.11

- Rolled back the handwriting fix from 2.3.10 since it had some unintended side effects on a few devices (e.g. in the flashcard sketch box).

## 2.3.10

- Fixed a slightly less nasty crashing bug in Android 4.1 that was caused by our previous bug fix.
- Fixed an issue with superscripts not displaying correctly on Android 4.1.
- Fixed an issue with flashcard categories not being selectable on Android 4.1 (when choosing categories to use in a flashcard test session).
- Fixed a bug that prevented text sharing from certain apps (like “Pocket” via its email-sharing mode) from coming up in Pleco’s reader correctly.
- Fixed a bug that caused the handwriting recognizer box to be cleared but the virtual points to remain intact (so the recognizer still tried to recognize them) when switching out of / back into Pleco on Android 2.x.
- Fixed a crash when trying to turn the OCR flash on / off on certain devices with no camera flash.
- Attempted to fix occasional crashing bugs when putting Pleco in the background and when running background tasks like fetching the add-on catalog.
- Put up an error message instead of crashing when attempting to open flashcards with a corrupted flashcard database.

## 2.3.9

- Fixed a nasty crashing bug in Android 4.1 (technically working around a Google bug related to word-wrapping of styled text, but if our app crashes then it’s our problem).
- Fixed an intermittent crash when editing user dictionary entries.

## 2.3.8

- Extended our free handwriting promotion until the end of 2012.
- Fixed a bug that could prevent keyboard input from working correctly on the Samsung Galaxy Tab 2.
- Fixed a bug that prevented flashcard sessions from saving correctly when exiting the flashcard system by tapping on the reader ‘search’ button (magnifying glass).
- Fixed a bug that could prevent changes to date/time-related flashcard settings from saving correctly.
- Fixed a bug that could cause handwriting input to ignore very short strokes on some devices.
- Fixed a bug that caused multiple-choice choices to become invisible after “Back” ing during a multi-choice test.
- Fixed a bug that caused “Search Cards” setting changes to fail to register in some cases.
- Fixed a crashing bug when “Share”ing a locally-stored web page with Pleco.
- Fixed a bug that could prevent flashcard profile names from updating correctly after they were changed.
- Fixed a bug that could cause crashes when viewing certain weirdly-formatted document files.
- Fixed a bug that could cause crashes when exiting Pleco with no search history.
- Fixed a bug that could cause crashes when editing cards in Organize with a weird ratio of categories to cards.
- Fixed a bug that could cause crashes when putting Pleco in the background during the initial add-on download.
- Fixed a bug that could cause crashes when viewing user dictionary entries with missing Pinyin.
- Fixed a bug that could cause crashes when an add-on purchase was canceled / invalidated without Pleco already running in the background.
- Fixed a bug that could cause audio to play when rotating the screen or resuming a saved session.
- Tweaked the multi-choice Pinyin font size to keep “g”s from being truncated on super-high-res screens.
- Fixed a crashing bug when copying empty document bookmarks.
- Fixed a bunch of other rare crashing bugs relating to tasks running in the background.

## 2.3.7

- Cleaned up the look of buttons in Night Mode a bit.
- Prevented devices from sleeping during the initial data file download.
- Rolled back our change to the appearance of full-text highlighting from 2.3.6, since a few people found the new one distracting.
- Fixed a bug that caused problems for users repeatedly Restoring Market Purchases.
- Fixed a bug that caused the background of the flashcard drawing box to be partially white (and therefore useless) in Night Mode
- Fixed a bug that caused repeated custom font installs in the same session to fail on devices running Android 4.0.

## 2.3.6

New Features

- Greatly simplified the process of installing a custom Chinese font file - it can now be done through Settings / General without having to kill and reopen Pleco.
- Also greatly simplified the process of installing and backing up user dictionary databases - the former can be done through the “Add User” command in Manage Dicts, the latter through the “Backup Database” command on the individual dictionary’s configuration screen.
- Added an option (in Settings / Dictionary / Main screen interface / Portrait (or Landscape) orientation) to hide the gray “definition toolbar” that appears at the bottom of dictionary entries (but only in two-panel mode).
- Added an option (in Settings / Dictionary / Main screen interface / Portrait (or Landscape) orientation) to replace the microphone and OCR buttons in the input selection toolbar with Full and Wild buttons, mimicking the design of our iOS software.

Design Tweaks

- Made merged multi-dict search ignore Pinyin tones for multi-syllable words, which should improve its ability to merge entries from dictionaries with slightly different interpretations of Pinyin. (mostly an issue with neutral tones)
- Made the flashcard batch “rebuild from dict entries” command clear out any previous custom flashcard definitions, so that cards will always pull text from their linked dictionary entries on a “convert to custom card.”
- Shrank and de–3Dified the “clear” button icon in the search bar, to fit with the rest of the app’s theme better.
- Android-ified the handwriting interface a bit by getting rid of the button background on the “undo” button, changing the “night mode” stroke area background to pure black, and making the backspace icon thinner and more Android-like.
- Made the handwriting results box scroll back to the first item after every new stroke.
- Made the OCR system remember the last recognition area size when reopened.
- Made files in the “Updated” section of Add-ons display their updated dates.
- Made the full-text highlight easier to spot by coloring the background behind the highlighted text rather than the text itself.
- Made the default user interface layout on the Galaxy Note that of a normal-size smartphone rather than a 7" tablet.
- Made the Chars and Words screens correctly jump to the top of their respective lists when a new character is selected.
- Reduced the amount of keyboard “flicker” when starting up in handwriting input mode on devices running Android 4.0 (though we haven’t been able to eliminate it altogether yet).
- Added an alert pointing people to our own online store on the first attempt to make an in-app purchase after previously canceling one.
- Made the OCR system copy text that you “send to reader” to the clipboard, so that you can easily get back to it later.

Bug Fixes

- Fixed a bug that caused the handwriting input system to enter a new character after every stroke on Android 4.0 when using the Google Pinyin IME.
- Fixed a bug that could occasionally cause purchases made through Android Market to fail to register correctly in Pleco’s system until you “Restore Market Purchases.”
- Fixed a bug that could cause characters tapped on in the “Chars” tab, or in the “Radical” button below stroke order diagrams, to bring up info on their opposite-character-set versions.
- Fixed a bug that could cause dictionary search “from first” to fail to trigger correctly when switching a dictionary with handwriting or radical input open.
- Reduced the frequency of connection timeout errors when downloading a file in Add-ons.
- Fixed a bug that could cause the order of dictionaries in Manage Dicts to reset itself on a dictionary update. (it will continue to reset on a new paid dictionary install, though)
- Fixed a bug that made the character bar at the top of the definition screen scroll vertically instead of horizontally on devices running Android 4.0.
- Fixed a bug that prevented our new install-addon-from-SD-card feature from working correctly after a device reset.
- Fixed a bug that could cause the “Radical” appearing below stroke order diagrams to be in the wrong character set (simplified or traditional).
- Fixed a bug that prevented the “Radical” below stroke order diagrams from appearing at all on normal-size smartphones in two-panel mode in portrait orientation.
- Fixed a bug that prevented full-text search results that partially overlapped with a dictionary entry headword from being highlighted correctly.
- Fixed a bug that caused changes to settings for score-based flashcard test subject selection to fail to be reflected on the screen.
- Fixed an obscure bug that could prevent a few devices from activating any paid add-ons correctly.
- Fixed a few very obscure crashing bugs (mostly in the add-on manager screen).

## 2.3.5

New Features

- Added much easier methods to install files downloaded from outside of Pleco; there’s a new package containing only Pleco’s required files that you can place in the root directory of your device’s storage memory to have Pleco automatically detect and offer to install the files from it, and a new menu command in “Add-ons” to install a single Pleco add-on package from a .zip archive.
- Added Night-Mode-specific settings for tone colors and for the color of highlighted instances of the headword in example sentences; if you’ve already installed Pleco then these will default to preserving your old colors, but for new users they’ll be a bit lighter and easier to spot against a dark background, and you can customize them to whatever you like.
- Officially released our new “launcher icon” apps - these add extra icons to your Android program launcher screen to instantly open up Pleco in flashcard / reader / OCR mode.

Design Tweaks
* Lightened the color of the full-text match highlighting in Night Mode (though for various technical reasons we haven’t yet it made it customizable).
* Made the handwriting recognition candidate highlight disappear when tapping on the search input field.
* Added a helpful error message when attempting to restore an old database via Import Cards instead of Restore Database.
* Made the popup reader scroll up text at the bottom of English-Chinese dictionary entries in two-panel mode so that it’s visible above the bottom toolbar, or turn the toolbar transparent when that’s impossible.
* Made the option to clear pending purchases in Add-ons available when tapping on the Restore button as well as the Buy button.
* Made the duplicate card dialog scrollable on devices with small screens that can’t otherwise fit the whole thing.
* Made the “Words” definition tab list scroll to the top when changing between 1 / 2+ / 1+.

Bug Fixes

- Fixed a bug that prevented the insertion point from appearing correctly in the input field on devices running Android 4.0 when in handwriting or radical input mode.
- Fixed a crashing bug when opening up images in OCR by “Send”ing them from the Gallery app.
- Fixed a crashing bug in OCR when opening up invalid still images in general.
- Fixed a bug that prevented the currently selected characters from being highlighted correctly in the document reader in Night Mode.
- Fixed two obscure crashing bugs when downloading add-ons on a device with very low storage memory and/or very low RAM.
- Fixed a bug that prevented entries from being consistently added to history on tablets when the definition remains visible with the keyboard open; now, if you simply go 3 seconds without changing the text in the search field or otherwise navigating to a different entry, Pleco will add the current entry to history.

## 2.3.4

- Made the category selection dialog in flashcard sessions save your category selections upon pressing the back button, rather than popping up that annoying save prompt message and requiring you to tap “OK.”
- Rolled back the 2.3.2 change that caused the system to switch to keyboard input after running the voice recognizer, since it turns out that that causes a crash on certain Android 4.0 devices.
- Fixed a few other obscure Android 4.0 crashes.

## 2.3.3

- Actually fixed the stroke order test crash we’d thought we’d fixed in 2.3.2.
- Fixed a bug that made flashcards that linked to demo version dictionaries show up totally blank instead of still showing their headword + Pinyin as they would for a dictionary that wasn’t installed.
- Cleaned up the delete confirmation dialogs in Organize Cards.

## 2.3.2

New Features

- Added a new “Update Text” option to the flashcard duplicate handling prompt, and new dupe-handling options in Settings to do it automatically. This will change the text of the existing / matching card to that of your current dictionary entry. We’ve added this in response to a bunch of feedback we’ve gotten lately from people who don’t like the fact that when you add an existing card to a new category, the card keeps its old definition even if you prefer the definition you just selected - mainly a problem if you import a big list of flashcards but then later start adding more cards individually as you look at dictionary entries.
- Added similar “Update” options to import duplicate handling as well.
- Added database backup and restore commands to Flashcards.
- Added a button to let you override the “purchase pending” error when attempting to buy an Android Market add-on while Pleco thinks that another purchase is still in progress.
- Made the flashcard “import” command continue running even when Pleco is put into the background - when you reopen, however, it will immediately pop up an import dialog (rather than letting you continue to use the dictionary during the import), since the system hasn’t yet been redesigned to let you continue doing searches / manually adding flashcards / etc with an import in progress.

Design Tweaks

- Improved the positioning / sizing of buttons in the popup reader bubble.
- Made the system switch to keyboard input mode after using the voice recognizer with input open (since otherwise you’d have to switch modes to see the results).
- Improved the positioning of icons on flashcard tone practice test buttons (which were a bit off-center vertically before).
- Eliminated the confusing “Downloaded but not purchased” section in “Add-ons” - now those items will appear in the same place they appeared before you downloaded them, they’ll just have an “already downloaded” after their names instead of a file size.
- Made the progress dialog for the initial package download not quite so ridiculously wide on large-screen tablets.
- Made downloading the demo version of a bundle in Add-ons jump you to the “D/Ls” tab so you can see the download progress.
- Renamed the “Save” button in flashcard category selection to “OK.”

Bug Fixes

- Fixed (again) a crashing bug that mostly occurred when entering handwriting strokes on devices running Android 4.0.x.
- Fixed a crashing bug when the option to “allow extra characters” is turned off in Search Settings.
- Attempted to fix an unreproducible crashing bug in stroke order flashcard tests by adding extra checks / fixes everywhere that it might possibly be lurking.
- Fixed a bug that caused the flashcard + button in combined results + definition mode to add a card based on the dictionary used in the search results, rather than the one selected in the definition panel, and that likewise caused that + button to fail to reflect the flashcard-added status of the dictionary + definition selected in the definition panel.
- Fixed a bug that caused Pleco to simply do nothing when launching OCR from the OCR Launcher app on a device without OCR installed.
- Fixed a crashing bug involving blank flashcards in Organize Cards.
- Fixed a bug that made the “grayed-out” switch dictionary button in combined results + definition mode look identical to the non-grayed out one when in Night Mode.
- Fixed a bug that caused words tapped on at the very top of the screen in fullscreen English-Chinese definitions to be hidden behind the top toolbar, even when it’s possible to move them below it by scrolling.
- Fixed a crashing bug relating to “Send”ing some types of images to the Pleco still image OCR system.
- Fixed a bug that caused still image OCR to crash instead of gracefully exiting on some types of out-of-memory errors.
- Fixed a number of display glitches relating to “pron mode” being set to “skip” - that will now hide pronunciation from items in the Entry List (without having to separately configure it), and will also hide them in ABC/PLC (and soon other) example sentences without leaving any weird parentheses / numbers / etc behind. And hyperlinks that rely on having some sort of pronunciation text to work correctly will now show pronunciation even with “skip” turned on.
- Fixed a bug that prevented disabling the “1-char for 1-char” option from taking effect on character (but not Pinyin) searches.
- Fixed a crashing bug when exporting XML flashcards that have had their priority or “force add” / “exclude” status changed from their default value.

## 2.3.1

- Fixed a bug that could cause repeated crashes when using In-App Billing on some devices. (the “took too long to deliver” errors, however, are entirely on Google’s end and there’s not much we can do about them aside from pointing you towards our own store)
- Added a new live OCR option “Alternate video display” which should improve compatibility on some devices with buggy camera drivers like the Sony Ericsson Xperia Ray.
- Fixed two rare crashing bugs related to very strange configurations in text fields.
- Fixed a bug that caused copyright symbols in the About box to appear as empty boxes.
- Fixed a bug that could cause items in “Add-ons” to appear as black text on a black background.
- Fixed a rare crashing bug related to OCR exiting at a very precise time in the OCR recognition cycle. (at least that’s what we think was causing it)

## 2.3.0

- First release of Pleco on Android.

Back to Index