Commit graph

1377 commits

Author SHA1 Message Date
Brett Chabot
c05a70a4ca Migrate packages/inputmethods/LatinIME to androidx.test
See go/jetpack-test-android-migration

Test: make checkbuild
Change-Id: I63edeced1465725cd8d6467cd75ea1acc2608932
2018-12-13 19:06:42 -08:00
Yohei Yukawa
04573e30ff Bump targetSdkVersion to "28" and minSdkVersion to "21"
With this CL, targetSdkVersion and minSdkVersion will be bumped as
follows:

  targetSdkVersion: 23 -> 28
     minSdkVersion: 14 -> 21

As far as we know, there should be no user-visible behavior change on
supported OS versions.

Fix: 119489995
Test: manually verified that LatinIME still is functional
Change-Id: I68f1545778b0c8b44c6850f22f3f5ca25bdb6de0
2018-11-13 13:51:59 -08:00
Yohei Yukawa
69ceec9045 Re-introduce <uses-sdk> to the main AndroidManifest.xml
This logically reverts my previous CL [1], which moved <uses-sdk />
from AndroidManifest.xml to AndroidManifest_SdkVersion.xml, which was
later accidentally removed during Android.bp migration [2].

Since gradle support in LatinIME is still experimental and not used in
official build, it is OK to keep it broken for a while.  A more
important problem right now is letting LatinIME target API 28.

As the first step to let LatinIME target SDK 28, <uses-sdk> will be
revived in AndroidManifest.xml

 [1]: Ib673bca5a31b2f95329c9310a127ec0701bd8fdc
      9cd42f39eb
 [2]: Ib8867d3b74f09fc1d9f95adc9a49a81ac0f7f054
      22ebec6e2e

Bug: 110741422
Bug: 119489995
Test: manually verified that LatinIME still is functional
Change-Id: I8b04caa56fe2431c07e076fb6f97c560d5da8838
2018-11-13 13:49:23 -08:00
Dan Willemsen
22ebec6e2e Convert to Android.bp
See build/soong/README.md for more information.

Test: cd packages/inputmethods/LatinIME; mma
Change-Id: Ib8867d3b74f09fc1d9f95adc9a49a81ac0f7f054
2018-10-31 21:49:02 -07:00
Tadashi G. Takaoka
b6301306fa Merge "Fix dicttool build" am: a92d0f9262 am: 438a303732
am: 6aed05232b

Change-Id: I558fb5ff22a7428d1d82eac82b4caba469ed48d4
2018-10-31 09:24:08 -07:00
Tadashi G. Takaoka
6a1b37353d Fix dicttool build
This CL partially reverts
  - Id88b02b74bdfe4ca05b08181ceb6b34d5652fc0c
  - I05c7d8429e8d9a26139456763c77997340fea8c2
And followup (remove shortcut support)
  - I73b7dc008a5acaf75a31a36a2d332b5afabd82d0

Bug: 28255684
Test: make -j10 dicttool_aosp
Change-Id: I2e01ed86b9517a1141aee35ea6d8ef39258981d1
2018-10-29 15:59:05 +09:00
Yohei Yukawa
d6525756a1 Add missing test runner annotations
These tests are supposed to run even withotu @RunWith annocation, but
for better consistency we should have it there.

Bug: 110805255
Test: verified as follows. No new test failures.
    tapas adb LatinIME LatinIMETests arm64 userdebug && \
    DISABLE_PROGUARD=true make -j LatinIME && \
    adb install -r $OUT/system/app/LatinIME/LatinIME.apk && \
    atest LatinIMETests:com.android.inputmethod.latin.ContactsDictionaryUtilsTest && \
    atest LatinIMETests:com.android.inputmethod.latin.ContactsContentObserverTest
Change-Id: I5c115d57b2ad41642f5f9b09b0c0d8f8c12480b0
2018-08-13 14:36:49 -07:00
Yohei Yukawa
41f89ae88c Specify version code in AndroidManifest.xml
This should be the most convenient way for both make build and Android
Studio build to share the same version code.

Bug: 110741422
Test: tapas LatinIME LatinIMETests arm64 userdebug && make -j
Change-Id: I35f850c392553b2640a4c3c7398441ac28e90eca
2018-07-25 17:08:47 -07:00
Yohei Yukawa
9cd42f39eb Move <uses-sdk /> to a differnt XML
Basically Android Studio does want targetSdkVersion to be specified in
build.gradle rather than AndroidManifest.xml.  To make both make build
and Android Studio build happy, this CL splits <uses-sdk /> from the
main AndroidManifest.xml to a different file and let them merged in
make build.

There should be no behavior change.

Bug: 110741422
Test: Manually verified that there is no difference in
      AndroidManifest.xml in the APK.
Change-Id: Ib673bca5a31b2f95329c9310a127ec0701bd8fdc
2018-07-25 14:21:09 -07:00
Yohei Yukawa
c0aa76f897 Migrate to Android Testing Support Lib (part 7/N)
InstrumentationTestCase and ActivityInstrumentationTestCase2 are
deprecated.  This CL rewrites tests that rely on those deprecated
classes by using Android Testing Support Library.

Bug: 110805255
Test: verified as follows. No new test failures.
    tapas adb LatinIME LatinIMETests arm64 userdebug && \
    DISABLE_PROGUARD=true make -j LatinIME && \
    adb install -r $OUT/system/app/LatinIME/LatinIME.apk && \
    atest LatinIMETests:com.android.inputmethod.keyboard.internal.MoreKeySpecStringReferenceTests LatinIMETests:com.android.inputmethod.latin.settings.AccountsSettingsFragmentTests
Change-Id: I4fefccaa0c480cfba7142ed36883da2f19b6a5f9
2018-07-24 11:29:20 -07:00
Yohei Yukawa
560a5bc596 Migrate to Android Testing Support Lib (part 6/N)
This is a follow up CL to previous CLs that converted unit tests to
use Android Testing Support Library but forgot to remove unused import
lines.

Bug: 110805255
Test: verified as follows. No new test failures.
        tapas adb LatinIME LatinIMETests arm64 userdebug && \
        DISABLE_PROGUARD=true make -j LatinIME && \
        adb install -r $OUT/system/app/LatinIME/LatinIME.apk && \
        atest LatinIMETests:com.android.inputmethod.latin
Change-Id: I8762b0dfc209bdf68867f725b03a22286026faae
2018-07-23 17:19:51 -07:00
Yohei Yukawa
d3b93cc950 Migrate to Android Testing Support Lib (part 5/N)
This CL converts 19 test classes under com.android.inputmethod.latin
to Android Testing Support Library.

Bug: 110805255
Test: verified as follows. No new test failures.
        tapas adb LatinIME LatinIMETests arm64 userdebug && \
        DISABLE_PROGUARD=true make -j LatinIME && \
        adb install -r $OUT/system/app/LatinIME/LatinIME.apk && \
        atest LatinIMETests:com.android.inputmethod.latin
Change-Id: I878fcae0126f57c43a644af341e5a0a8ac8f5cc9
2018-07-06 10:10:54 -07:00
Yohei Yukawa
a497886dda Migrate to Android Testing Support Lib (part 4/N)
This CL converts 7 test classes under com.android.inputmethod.keyboard
to Android Testing Support Library.

This CL also fix missing annotations in KeyboardLayoutTest.

Bug: 110805255
Test: verified as follows. No new test failures.
        tapas adb LatinIME LatinIMETests arm64 userdebug && \
        DISABLE_PROGUARD=true make -j LatinIME && \
        adb install -r $OUT/system/app/LatinIME/LatinIME.apk && \
        atest LatinIMETests:com.android.inputmethod.keyboard
Change-Id: I8ab9e3329f159f0df02812fafe44c25efa76c0d1
2018-07-06 10:09:43 -07:00
TreeHugger Robot
bba9005cb4 Merge "Migrate to Android Testing Support Lib (part 3/N)" 2018-07-06 03:02:21 +00:00
TreeHugger Robot
231a28a3f7 Merge "Migrate to Android Testing Support Lib (part 2/N)" 2018-07-06 03:02:05 +00:00
Yohei Yukawa
5fb15a463c Migrate to Android Testing Support Lib (part 3/N)
This CL converts the following 3 test cases to Android Testing Support
Library.
 * MoreKeysKeyboardBuilderAutoOrderTests
 * MoreKeysKeyboardBuilderFixedOrderTests
 * MoreKeysKeyboardBuilderMaxOrderTests

Bug: 110805255
Test: atest LatinIMETests:com.android.inputmethod.keyboard.MoreKeysKeyboardBuilderAutoOrderTests
Test: atest LatinIMETests:com.android.inputmethod.keyboard.MoreKeysKeyboardBuilderFixedOrderTests
Test: atest LatinIMETests:com.android.inputmethod.keyboard.MoreKeysKeyboardBuilderMaxOrderTests
Change-Id: I68d6c1901d4bb77bdc59d0be71eb565984fbd97d
2018-07-05 15:47:01 -07:00
Yohei Yukawa
9c49581eeb Migrate to Android Testing Support Lib (part 1/N)
This CL converts tests under com.android.inputmethod.latin.utils to
Android Testing Support Library.

Bug: 110805255
Test: verified as follows. No new test failures.
        tapas adb LatinIME LatinIMETests arm64 userdebug && \
        DISABLE_PROGUARD=true make -j LatinIME && \
        adb install -r $OUT/system/app/LatinIME/LatinIME.apk && \
        atest LatinIMETests:com.android.inputmethod.latin.utils
Change-Id: I5cc2ddbc4116003ab6407432ab521b6b560052ae
2018-07-05 13:45:04 -07:00
Yohei Yukawa
bfa5581857 Migrate to Android Testing Support Lib (part 2/N)
This CL converts tests under com.android.inputmethod.compat to
Android Testing Support Library.

Bug: 110805255
Test: verified as follows. No new test failures.
        tapas adb LatinIME LatinIMETests arm64 userdebug && \
        DISABLE_PROGUARD=true make -j LatinIME && \
        adb install -r $OUT/system/app/LatinIME/LatinIME.apk && \
        atest LatinIMETests:com.android.inputmethod.compat
Change-Id: I6766447ca27f5cccdb1e9f7e751235daa04cc252
2018-07-05 13:44:00 -07:00
Yohei Yukawa
2802250415 Remove unused class PersonalDictionaryLookup
PersonalDictionaryLookup has never been used.  Usually proguard can
remove this class but it also makes it difficult to run unit tests.

We should just remove this unused class.

Bug: 111164993
Test: compile
Test: No new test failure
Change-Id: I732db94cb3aac4ed9c6b5954679b896334a12a9c
2018-07-04 23:13:18 -07:00
Yohei Yukawa
f623196477 Add AndroidTest.xml for LatinIME
Fix: 111161344
Test: Manually tested as follows
        tapas adb LatinIME LatinIMETests arm64 userdebug && \
        DISABLE_PROGUARD=true make -j LatinIME && \
        adb install -r $OUT/system/app/LatinIME/LatinIME.apk && \
        atest LatinIMETests
Change-Id: If9f5691d5c624c9856acd31a3e1de307360d2c7c
2018-07-04 18:25:53 -07:00
Paul Duffin
8a45a970ab Add android.test.base/stubs dependency
In preparation for the removal of the non-junit classes in the
android.test.base library from the android.jar this adds a dependency
on android.test.base/stubs to ensure this code will continue to
compile.

The following change descriptions were generated automatically and so
may be a little repetitive. They are provided to give the reviewer
enough information to check the comments match what has actually been
changed and check the reasoning behind the changes.

* tests/Android.mk
    Added 'android.test.base.stubs' to LOCAL_JAVA_LIBRARIES because
    LatinIMETests's will need them in order to compile once its classes
    are removed from the current SDK on which it currently depends.

Bug: 30188076
Test: make dist
Change-Id: I9f2244d4b5711620dc02dd24dc407807d726480e
2017-12-15 07:22:38 +00:00
Paul Duffin
2ccdf50ae2 Flatten dependency hierarchy of legacy-android-test
Previous changes statically included legacy-android-test in preparation
for removing android.test.* and junit.* classes from the android.jar.
Unfortunately, that lead to duplicate classes between APKs and the
bootclasspath which caused build problems (Proguard) and also runtime
problems (when targeting and running on older releases).

Switching from statically including the classes to using the runtime
libraries cannot be done in one step because legacy-android-test is
statically included in libraries which are used in many APKs and so
removing it from those libraries requires that all APKs be updated at
once. Doing that atomically across dozens of projects is not practical.

This change modifies APKS that statically include the
legacy-android-test library indirectly.

* If the APK manifest uses the android.test.runner library then the APK
  is modified to stop statically including legacy-android-test and
  instead build against android.test.base/mock/runner libraries instead.

* Otherwise, the APK statically includes legacy-android-test.

Also, any libraries that statically include are modified to stop
statically including it and if it has source dependencies on the classes
is changed to build against the android.test.base/mock/runner libraries.

The following change descriptions were generated automatically and so
may be a little repetitive. They are provided to give the reviewer
enough information to check the comments match what has actually been
changed and check the reasoning behind the changes.

* tests/Android.mk
    Replaced 'legacy-android-test' with 'android.test.runner.stubs' in
    LOCAL_JAVA_LIBRARIES because LatinIMETests's source depends on its
    classes. The classes do not need to be statically included because
    the classes will be provided by the runtime, either from the
    default bootclasspath or from the android.test.runner library that
    LatinIMETests specifies in its manifest.

Bug: 30188076
Test: make checkbuild
Change-Id: I3c70889b35d402626f79c986771b9c2ea8823b8a
2017-12-05 18:36:57 +00:00
Paul Duffin
097130d198 Use a.t.mock.stubs instead of a.t.mock.sdk
Remove dependencies on android.test.mock.sdk as it is a duplicate of
android.test.mock.stubs and will be removed.

The following change descriptions were generated automatically and so
may be a little repetitive. They are provided to give the reviewer
enough information to check the comments match what has actually been
changed and check the reasoning behind the changes.

* tests/Android.mk
    Replaced 'android.test.mock.sdk' with 'android.test.mock.stubs' in
    LOCAL_JAVA_LIBRARIES because android.test.mock.sdk has been
    deprecated.

Bug: 30188076
Test: make checkbuild
Change-Id: I50a306c3bb80a9d7cdf2d19744734f304abf3bd1
2017-11-16 12:57:31 +00:00
Paul Duffin
6767e05934 Fix dependencies of packages that target earlier releases
A previous change added legacy-android-test as a static dependency to
all packages that build against the current, test_current or
system_current and failed to compile when the junit and android.test
classes were removed from the API. Unfortunately, those changes did not
take into account that some of those packages target earlier API
versions and so will always have the classes available at runtime.

This change replaces those static dependencies with dynamic dependencies
for any package that targets an earlier API version. The file changes
were made automatically by a tool that constructed and then analyzed a
full dependency graph of all the Android Java modules. The individual
changes were checked manually to ensure that the changes matched the
intent. The affected modules were built against an API with the junit
and android.test classes removed. Any issues found during this process
resulted in either the tool being updated to address the issue or a
separate change being made to fix an existing problem with the build. A
sample of the affected packages were run to ensure that they worked as
expected at runtime; no issues were found during testing.

The following change descriptions were generated automatically and so
may be a little repetitive. They are provided to give the reviewer
enough information to check the comments match what has actually been
changed and check the reasoning behind the changes.

* tests/Android.mk
    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES
    because LatinIMETests's manifest file (AndroidManifest.xml) targets
    API level 21 and dynamically includes the android.test.runner
    library at runtime so there is no point in statically including the
    classes.

    Added 'android.test.mock.sdk' and 'legacy-android-test' to
    LOCAL_JAVA_LIBRARIES because module LatinIMETests builds against
    'LOCAL_SDK_VERSION := current' and uses classes from packages
    android.test and android.test.mock (possibly indirectly) so will no
    longer compile once they are removed from the API.

    Dependency 'android.test.mock.sdk' is used instead of
    'android.test.mock' because module LatinIMETests builds against the
    API not internal jars and so should use libraries that build
    against the API not internal jars.

    A future change will replace the dependency on
    'legacy-android-test', which builds against the internal jars with
    a dependency on 'android.legacy.test' which will build against the
    API.

Bug: 30188076
Test: make checkbuild and ran a sample of tests
Change-Id: Icab8a4c4801536f112e29dfd2dc66be8b90b811d
2017-06-13 16:13:10 +01:00
Paul Duffin
381c38a127 Prepare for removal of junit and android.test classes from Android API (step 1)
In preparation for removing junit and android.test classes from
the Android API this change adds explicit dependencies on junit
and/or legacy-android-test to ensure that modules will compile
properly once it is removed.

Care was taken to ensure that any targets that depended,
directly or indirectly, on android-support-test did not also
depend on junit or hamcrest as they conflict with the versions
embedded within android-support-test.

Bug: 30188076
Test: make checkbuild
Change-Id: Icf844999082db141cffcb099aa4004afc7a7c749
Merged-In: I743f9e20e1e60836ceba9b9051fa17835deba3a2
2017-05-10 09:45:07 +01:00
Guang Zhu
d8539fbb9b Avoid JUnit4 collision in android-support-test, mockito-target
Bug: 31072145
Test: make droid checkbuild

Change-Id: I507b476694f88cc960804904feff330e6f9358c4
2016-08-25 19:43:11 +00:00
Mohammadinamul Sheik
604158669b [LatinIME] Support MNC permissions.
This build has been compiled against API 23

This build is approved to go out with the M OTA, but may NOT be released
to the public until the Play Store has enabled API level 23 apps

Version: 4.1.2300x.build_id

1. Replaces the personalization is on information with the suggest
   contacts.
2. Enables "Use Contacts" only if the app has permission to read
   contacts.
3. Disables the contacts dictionary in the Facilitator.
4. Do not register/read the contacts in the contact observer.

Bug: 22236416
Change-Id: I9674e13d0d0f4a2014c5024fde0178de684c07e7
2015-07-15 22:51:53 +00:00
Tom Ouyang
f470729df2 Fix breakage in tests.
Change-Id: I4f0472b9f2ea2daeeba3025c588e6d0042c31be7
2015-06-23 13:52:19 -07:00
Yohei Yukaw
490fa47a46 Always specify non-null Locale object to SuggestionSpan
Confusingly, specifying a null Locale object to the constructor
of SuggestionSpan does not necessarily mean that
SuggestionSpan#getLocale() returns null.  The constructor in
question also receives Context object, and Context's locale can
be used as a fallback locale to initialize locale of
SuggestionSpan.

With this CL, LatinIME always specify non-null Locale object
when instantiating SuggestionSpan object.  It basically
corresponds to the active main dictionary, but can be
Locale#ROOT when one locale is not determined for some reasons.

BUG: 20435013
Change-Id: I2c152466410327300e7dba4d7ed9a22f57c17c4f
2015-04-20 20:29:44 -07:00
Tom Ouyang
cdfe8b93ec Merge "Add affinity model for contact names." 2015-04-17 01:05:44 +00:00
Tom Ouyang
44a175732d Add affinity model for contact names.
This allows us to:
1. Rank contacts and only add the top N names to the keyboard LM.
2. Avoid adding duplicate names.

Note: The affinity calcualuation is limited by the fact that some apps
currently do not update the TIMES_CONTACTED counter. To better handle
this case, the new measure also takes into account whether or not a
name is in the visible contacts group.

Bug: 20053274
Change-Id: I2741cb8958667d4a294aba8c437a45cec4b42dc7
2015-04-16 11:33:54 -07:00
Jatin Matani
1bfd7be208 Store raw strings for personal dictionary
The raw strings would be sent to personal LM for decoding.
Earlier lowercased strings were being used with the purpose
of isValid checks (spelling does not consider casing for spell
checking calls). But for showing these in suggestion, we need the
raw strings.

Note: PersonalDictionaryLookup#getWordsForLocale is used to feed
the personal LM in PersonalLanguageModelHelper.

Bug:20152986
Change-Id: I9d796fa57bf2073036bf11d86b143ff205a6199c
2015-04-13 16:28:26 -07:00
Dan Zivkovic
541ef56e05 Personal dictionary feeds a personal LM.
Bug 20043003.

Change-Id: I5ccac344c089855474263d1cdc547da1e6779301
2015-04-09 18:35:57 -07:00
Dan Zivkovic
ec2891b007 Define stats for UserDictionaryLookup.
Bug 20071513.

Change-Id: Iaab909575da29bfe6e17bb3865ce51d1e7720e7c
2015-04-06 11:10:55 -07:00
Dan Zivkovic
c79ed10cf7 Merge "Revert "Declare that LatinIME does not use cleartext network traffic."" 2015-04-06 15:33:26 +00:00
Dan Zivkovic
a9a46a6408 Revert "Declare that LatinIME does not use cleartext network traffic."
This reverts commit 24a9683ac9.

Change-Id: I6f305aac6ac8d5c550a39eb5c88ec2881203cecc
Reason: Breaks a clean build on master.
2015-04-06 15:32:19 +00:00
Alex Klyubin
5760cdf750 Merge "Declare that LatinIME does not use cleartext network traffic." 2015-04-03 20:32:46 +00:00
Dan Zivkovic
5a53505fe4 Log interrupted tasks in AOSP.
Bug 19987461.

Change-Id: Ia2714f555146f8f31a6d8c61f555d2b6fecdab7d
2015-04-02 14:47:36 -07:00
Alex Klyubin
24a9683ac9 Declare that LatinIME does not use cleartext network traffic.
This declares to the platform and tools that this app does not use
cleartext network traffic. The platform and tools will be blocking
(on best effort basis) attempts to use such traffic by this app.
For example, attempts to use HTTP (rather than HTTPS) will be blocked.

Bug: 19215516
Change-Id: I4c933a214457025797e077b72d8daf8a0c876923
2015-04-02 13:32:22 -07:00
Dan Zivkovic
87eb7ac29c Add shortcut support to UserDictionaryLookup.
Also move the class to the parent package, since it's no longer tied to the
spell checking service.

Bug 19966848.
Bug 20036810.

Change-Id: I35014d212fd87281eb90def03ee92e6872dcd63e
2015-04-02 11:15:27 -07:00
Chieu Nguyen
d4ee11f9a4 "spellcheking" needs spellchecking.
Change-Id: Iaf4cd5d11b113be4738182fb662e5dc54b2f5366
2015-03-27 14:48:20 -07:00
Mohammadinamul Sheik
8f526c9a55 Use the complete Locale in generating the dictionary id.
- Also deleted a couple of dead methods.

Bug:19929051
Change-Id: I4f88dbc2a8204d5e2a20d1ad8c205a23c6319f8d
2015-03-25 16:45:56 -07:00
Chieu Nguyen
37cb7a7371 Merge "Disable Hinglish locale." 2015-03-24 01:34:02 +00:00
Chieu Nguyen
67bb8cbe61 Disable Hinglish locale.
Bug: 19899126.
Change-Id: I1824233b3bcb6cb6579714a7eb375ea2cebc39db
2015-03-23 18:05:04 -07:00
Dan Zivkovic
4262ef4e11 We can't spell check Russian without an LM.
Change-Id: I635a51acc2e45aebe23a1cf69da1b5c72a6ac9e1
2015-03-23 16:37:13 -07:00
Dan Zivkovic
ffd808b446 We ship with English, so we can't unit test French
Change-Id: I20a470a18ca0cd47fe7588958be904eb23fdf1a2
2015-03-23 14:42:10 -07:00
Dan Zivkovic
3e792f61ad Minor unit test fixes.
Change-Id: I800bb33a10f31d5b934b00768bc8fe4776e36f90
2015-03-23 13:31:51 -07:00
Jatin Matani
cb27c4fe2e Move ManagedProfileUtils to overridable
Bug:19532354
Change-Id: I50b3ae11b6e58f07b482353b624b1a7a73eadc99
2015-03-23 11:57:48 -07:00
Dan Zivkovic
b98a0380ff Fix InputLogicTests.
Change-Id: Ie319a6087297251e6b22ffd80014b69c746458e0
2015-03-20 14:13:25 -07:00
Dan Zivkovic
c15bbb52a3 Retire Delight2 migration code to speed up tests.
We're waiting 10 minutes for tests to run, and half of that time is spent in
depreacted code related to migration of Delight2 dictionary files.
LatinIME will never migrate another Delight2 dictionary file again, so we can
delete this code.

Change-Id: I05c7d8429e8d9a26139456763c77997340fea8c2
2015-03-20 11:16:46 -07:00