diff options
author | Mathew Inwood <mathewi@google.com> | 2013-08-21 10:19:30 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-08-21 10:19:30 -0700 |
commit | 11baa5b47675071beb82df2805161750d25db99b (patch) | |
tree | e3fbb654e9c3a31faf9f82b2c6513313dc2a3f45 | |
parent | 1b96d366b7954d2af5e1e959003b3f6833deb93b (diff) | |
parent | 3347f31bd268ca3153abe5def9361f625bd73efd (diff) | |
download | ApplicationsProvider-11baa5b47675071beb82df2805161750d25db99b.tar.gz |
am 3347f31b: Delete all ApplicationsProvider code.
* commit '3347f31bd268ca3153abe5def9361f625bd73efd':
Delete all ApplicationsProvider code.
67 files changed, 0 insertions, 2992 deletions
diff --git a/Android.mk b/Android.mk deleted file mode 100644 index 7171564..0000000 --- a/Android.mk +++ /dev/null @@ -1,17 +0,0 @@ -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := optional - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_JAVA_LIBRARIES := ext guava - -LOCAL_PACKAGE_NAME := ApplicationsProvider -LOCAL_CERTIFICATE := shared -LOCAL_PRIVILEGED_MODULE := true - -include $(BUILD_PACKAGE) - -# Also build our test apk -include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/AndroidManifest.xml b/AndroidManifest.xml deleted file mode 100644 index b69f6d9..0000000 --- a/AndroidManifest.xml +++ /dev/null @@ -1,29 +0,0 @@ -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.providers.applications" - android:sharedUserId="android.uid.shared"> - - <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" /> - - <application android:process="android.process.acore" android:label="@string/app_label"> - - <provider android:name="ApplicationsProvider" android:authorities="applications" - android:exported="true" - android:syncable="false" android:multiprocess="false" /> - - <activity android:name="ApplicationLauncher" - android:label="@string/search_label" - android:icon="@android:drawable/sym_def_app_icon" - android:stateNotNeeded="true" - android:excludeFromRecents="true"> - - <intent-filter> - <action android:name="android.intent.action.SEARCH" /> - <category android:name="android.intent.category.DEFAULT" /> - </intent-filter> - - <meta-data android:name="android.app.searchable" - android:resource="@xml/searchable" /> - </activity> - - </application> -</manifest> diff --git a/CleanSpec.mk b/CleanSpec.mk deleted file mode 100644 index b84e1b6..0000000 --- a/CleanSpec.mk +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (C) 2007 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# If you don't need to do a full clean build but would like to touch -# a file or delete some intermediate files, add a clean step to the end -# of the list. These steps will only be run once, if they haven't been -# run before. -# -# E.g.: -# $(call add-clean-step, touch -c external/sqlite/sqlite3.h) -# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates) -# -# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with -# files that are missing or have been moved. -# -# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory. -# Use $(OUT_DIR) to refer to the "out" directory. -# -# If you need to re-do something that's already mentioned, just copy -# the command and add it to the bottom of the list. E.g., if a change -# that you made last week required touching a file and a change you -# made today requires touching the same file, just copy the old -# touch step and add it to the end of the list. -# -# ************************************************ -# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST -# ************************************************ - -# For example: -#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates) -#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates) -#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f) -#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*) - -# ************************************************ -# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST -# ************************************************ diff --git a/MODULE_LICENSE_APACHE2 b/MODULE_LICENSE_APACHE2 deleted file mode 100644 index e69de29..0000000 --- a/MODULE_LICENSE_APACHE2 +++ /dev/null @@ -1,190 +0,0 @@ - - Copyright (c) 2005-2008, The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - diff --git a/res/layout/application_list_item.xml b/res/layout/application_list_item.xml deleted file mode 100644 index c8ac8f7..0000000 --- a/res/layout/application_list_item.xml +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2010 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<RelativeLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:paddingLeft="4dip" - android:paddingRight="4dip" - android:layout_width="match_parent" - android:layout_height="56dip" > - - <ImageView android:id="@+id/icon1" - android:layout_width="48dip" - android:layout_height="48dip" - android:scaleType="centerInside" - android:layout_alignParentLeft="true" - android:layout_alignParentTop="true" - android:layout_alignParentBottom="true" /> - - <TextView android:id="@+id/text1" - android:textAppearance="?android:attr/textAppearanceLarge" - android:singleLine="true" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:paddingLeft="4dip" - android:layout_centerVertical="true" - android:layout_toRightOf="@id/icon1" /> - -</RelativeLayout> diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml deleted file mode 100644 index 88ff9f6..0000000 --- a/res/values-af/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Deursoek programverskaffer"</string> - <string name="search_label" msgid="6182832093760999173">"Apps"</string> - <string name="application_desc" msgid="888412554142684749">"Program"</string> - <string name="settings_description" msgid="966629744054022387">"Name van geïnstalleerde programme"</string> -</resources> diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml deleted file mode 100644 index c6d4bbc..0000000 --- a/res/values-am/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"የትግበራዎች አቅራቢ ፈልግ"</string> - <string name="search_label" msgid="6182832093760999173">"ትግበራዎች"</string> - <string name="application_desc" msgid="888412554142684749">"ትግበራ"</string> - <string name="settings_description" msgid="966629744054022387">"የተጫኑ ትግበራዎች ስሞች"</string> -</resources> diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml deleted file mode 100644 index 5814bbf..0000000 --- a/res/values-ar/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"مزودو تطبيقات البحث"</string> - <string name="search_label" msgid="6182832093760999173">"تطبيقات"</string> - <string name="application_desc" msgid="888412554142684749">"التطبيق"</string> - <string name="settings_description" msgid="966629744054022387">"أسماء التطبيقات المثبتة"</string> -</resources> diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml deleted file mode 100644 index 6b7d1a1..0000000 --- a/res/values-be/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Пошук пастаўшчыка прыкладанняў"</string> - <string name="search_label" msgid="6182832093760999173">"Прыкладанні"</string> - <string name="application_desc" msgid="888412554142684749">"Прыкладанне"</string> - <string name="settings_description" msgid="966629744054022387">"Назвы усталяваных прыкладанняў"</string> -</resources> diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml deleted file mode 100644 index b3117be..0000000 --- a/res/values-bg/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Търсене в приложенията"</string> - <string name="search_label" msgid="6182832093760999173">"Приложения"</string> - <string name="application_desc" msgid="888412554142684749">"Приложение"</string> - <string name="settings_description" msgid="966629744054022387">"Имена на инсталирани приложения"</string> -</resources> diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml deleted file mode 100644 index 3fa4176..0000000 --- a/res/values-ca/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Proveïdor d\'aplicacions de cerca"</string> - <string name="search_label" msgid="6182832093760999173">"Aplicacions"</string> - <string name="application_desc" msgid="888412554142684749">"Aplicació"</string> - <string name="settings_description" msgid="966629744054022387">"Noms d\'aplicacions instal·lades"</string> -</resources> diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml deleted file mode 100644 index c5808cc..0000000 --- a/res/values-cs/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Vyhledávací aplikace"</string> - <string name="search_label" msgid="6182832093760999173">"Aplikace"</string> - <string name="application_desc" msgid="888412554142684749">"Aplikace"</string> - <string name="settings_description" msgid="966629744054022387">"Názvy instalovaných aplikací"</string> -</resources> diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml deleted file mode 100644 index d118fb3..0000000 --- a/res/values-da/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Udbyder af søgeprogram"</string> - <string name="search_label" msgid="6182832093760999173">"Applikationer"</string> - <string name="application_desc" msgid="888412554142684749">"Program"</string> - <string name="settings_description" msgid="966629744054022387">"Navne på installerede applikationer"</string> -</resources> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml deleted file mode 100644 index 2a9231a..0000000 --- a/res/values-de/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Suchanwendungsanbieter"</string> - <string name="search_label" msgid="6182832093760999173">"Apps"</string> - <string name="application_desc" msgid="888412554142684749">"App"</string> - <string name="settings_description" msgid="966629744054022387">"Namen der installierten Apps"</string> -</resources> diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml deleted file mode 100644 index 1068c79..0000000 --- a/res/values-el/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Αναζήτηση παρόχου εφαρμ."</string> - <string name="search_label" msgid="6182832093760999173">"Εφαρμογές"</string> - <string name="application_desc" msgid="888412554142684749">"Εφαρμογή"</string> - <string name="settings_description" msgid="966629744054022387">"Ονόματα εγκατεστημένων εφαρμογών"</string> -</resources> diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml deleted file mode 100644 index 7a29dca..0000000 --- a/res/values-en-rGB/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Search Applications Provider"</string> - <string name="search_label" msgid="6182832093760999173">"Apps"</string> - <string name="application_desc" msgid="888412554142684749">"Application"</string> - <string name="settings_description" msgid="966629744054022387">"Names of installed applications"</string> -</resources> diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml deleted file mode 100644 index 5b2bdff..0000000 --- a/res/values-es-rUS/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Buscar el proveedor de aplicaciones"</string> - <string name="search_label" msgid="6182832093760999173">"Aplicaciones"</string> - <string name="application_desc" msgid="888412554142684749">"Aplicación"</string> - <string name="settings_description" msgid="966629744054022387">"Nombres de aplicaciones instaladas"</string> -</resources> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml deleted file mode 100644 index 2dbd88c..0000000 --- a/res/values-es/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Proveedor aplicaciones búsqueda"</string> - <string name="search_label" msgid="6182832093760999173">"Aplicaciones"</string> - <string name="application_desc" msgid="888412554142684749">"Aplicación"</string> - <string name="settings_description" msgid="966629744054022387">"Nombres de aplicaciones instaladas"</string> -</resources> diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml deleted file mode 100644 index 754d96a..0000000 --- a/res/values-et/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Otsi rakendusepakkujat"</string> - <string name="search_label" msgid="6182832093760999173">"Rakendused"</string> - <string name="application_desc" msgid="888412554142684749">"Rakendus"</string> - <string name="settings_description" msgid="966629744054022387">"Installitud rakenduste nimed"</string> -</resources> diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml deleted file mode 100644 index 775972a..0000000 --- a/res/values-fa/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"ارائه دهنده برنامههای جستجو"</string> - <string name="search_label" msgid="6182832093760999173">"برنامههای کاربردی"</string> - <string name="application_desc" msgid="888412554142684749">"برنامهٔ کاربردی"</string> - <string name="settings_description" msgid="966629744054022387">"نامهای برنامههای نصب شده"</string> -</resources> diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml deleted file mode 100644 index 7bb15d7..0000000 --- a/res/values-fi/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Hae sovellusten tarjoajaa"</string> - <string name="search_label" msgid="6182832093760999173">"Sovellukset"</string> - <string name="application_desc" msgid="888412554142684749">"Sovellus"</string> - <string name="settings_description" msgid="966629744054022387">"Asennettujen sovelluksien nimet"</string> -</resources> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml deleted file mode 100644 index 69c597d..0000000 --- a/res/values-fr/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Fourn. appl. recherche"</string> - <string name="search_label" msgid="6182832093760999173">"Applications"</string> - <string name="application_desc" msgid="888412554142684749">"Application"</string> - <string name="settings_description" msgid="966629744054022387">"Noms des applications installées"</string> -</resources> diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml deleted file mode 100644 index 3c6eb89..0000000 --- a/res/values-hi/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"एप्लिकेशन प्रदाता खोजें"</string> - <string name="search_label" msgid="6182832093760999173">"Apps"</string> - <string name="application_desc" msgid="888412554142684749">"एप्लिकेशन"</string> - <string name="settings_description" msgid="966629744054022387">"इंस्टॉल किए गए एप्लिकेशन के नाम"</string> -</resources> diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml deleted file mode 100644 index dc1712e..0000000 --- a/res/values-hr/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Pružatelj aplik. pretraž."</string> - <string name="search_label" msgid="6182832093760999173">"Aplikacije"</string> - <string name="application_desc" msgid="888412554142684749">"Aplikacija"</string> - <string name="settings_description" msgid="966629744054022387">"Nazivi instaliranih aplikacija"</string> -</resources> diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml deleted file mode 100644 index 29f5d91..0000000 --- a/res/values-hu/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Alk. szolgáltató keresése"</string> - <string name="search_label" msgid="6182832093760999173">"Alkalmazások"</string> - <string name="application_desc" msgid="888412554142684749">"Alkalmazás"</string> - <string name="settings_description" msgid="966629744054022387">"A telepített alkalmazások nevei"</string> -</resources> diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml deleted file mode 100644 index eb3af26..0000000 --- a/res/values-in/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Penyedia Aplikasi Penelusuran"</string> - <string name="search_label" msgid="6182832093760999173">"Apps"</string> - <string name="application_desc" msgid="888412554142684749">"Aplikasi"</string> - <string name="settings_description" msgid="966629744054022387">"Nama aplikasi yang terpasang"</string> -</resources> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml deleted file mode 100644 index e5d6a1f..0000000 --- a/res/values-it/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Search Applications Provider"</string> - <string name="search_label" msgid="6182832093760999173">"App"</string> - <string name="application_desc" msgid="888412554142684749">"Applicazione"</string> - <string name="settings_description" msgid="966629744054022387">"Nomi delle applicazioni installate"</string> -</resources> diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml deleted file mode 100644 index 14141bf..0000000 --- a/res/values-iw/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"ספק יישומי חיפוש"</string> - <string name="search_label" msgid="6182832093760999173">"יישומים"</string> - <string name="application_desc" msgid="888412554142684749">"יישום"</string> - <string name="settings_description" msgid="966629744054022387">"שמות של יישומים מותקנים"</string> -</resources> diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml deleted file mode 100644 index 40690f9..0000000 --- a/res/values-ja/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"検索アプリプロバイダ"</string> - <string name="search_label" msgid="6182832093760999173">"アプリケーション"</string> - <string name="application_desc" msgid="888412554142684749">"アプリケーション"</string> - <string name="settings_description" msgid="966629744054022387">"インストールされているアプリケーション名"</string> -</resources> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml deleted file mode 100644 index 332d0c7..0000000 --- a/res/values-ko/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"검색 애플리케이션 공급자"</string> - <string name="search_label" msgid="6182832093760999173">"애플리케이션"</string> - <string name="application_desc" msgid="888412554142684749">"애플리케이션"</string> - <string name="settings_description" msgid="966629744054022387">"설치된 애플리케이션의 이름"</string> -</resources> diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml deleted file mode 100644 index 66d3df9..0000000 --- a/res/values-lt/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Ieškoti programų teikėjo"</string> - <string name="search_label" msgid="6182832093760999173">"Apps"</string> - <string name="application_desc" msgid="888412554142684749">"Programa"</string> - <string name="settings_description" msgid="966629744054022387">"Įdiegtų programų pavadinimai"</string> -</resources> diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml deleted file mode 100644 index 77e4bfb..0000000 --- a/res/values-lv/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Mekl. liet. nodrošin."</string> - <string name="search_label" msgid="6182832093760999173">"Lietojumprogrammas"</string> - <string name="application_desc" msgid="888412554142684749">"Lietojumprogramma"</string> - <string name="settings_description" msgid="966629744054022387">"Instalēto lietojumprogrammu nosaukumi"</string> -</resources> diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml deleted file mode 100644 index aa7cc2d..0000000 --- a/res/values-ms/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Pembekal Aplikasi Carian"</string> - <string name="search_label" msgid="6182832093760999173">"Apl"</string> - <string name="application_desc" msgid="888412554142684749">"Aplikasi"</string> - <string name="settings_description" msgid="966629744054022387">"Nama aplikasi yang dipasang"</string> -</resources> diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml deleted file mode 100644 index ee066be..0000000 --- a/res/values-nb/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Leverandør av søkeprog."</string> - <string name="search_label" msgid="6182832093760999173">"Apps"</string> - <string name="application_desc" msgid="888412554142684749">"Applikasjon"</string> - <string name="settings_description" msgid="966629744054022387">"Navn på installerte apper"</string> -</resources> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml deleted file mode 100644 index b84382e..0000000 --- a/res/values-nl/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Provider zoektoepassingen"</string> - <string name="search_label" msgid="6182832093760999173">"Apps"</string> - <string name="application_desc" msgid="888412554142684749">"App"</string> - <string name="settings_description" msgid="966629744054022387">"Namen van geïnstalleerde apps"</string> -</resources> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml deleted file mode 100644 index 12c1d58..0000000 --- a/res/values-pl/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Dostawca aplikacji wyszukiwania"</string> - <string name="search_label" msgid="6182832093760999173">"Aplikacje"</string> - <string name="application_desc" msgid="888412554142684749">"Aplikacja"</string> - <string name="settings_description" msgid="966629744054022387">"Nazwy zainstalowanych aplikacji"</string> -</resources> diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml deleted file mode 100644 index 34d021e..0000000 --- a/res/values-pt-rPT/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Forn. pesquisa de aplic."</string> - <string name="search_label" msgid="6182832093760999173">"Aplicações"</string> - <string name="application_desc" msgid="888412554142684749">"Aplicação"</string> - <string name="settings_description" msgid="966629744054022387">"Nomes das aplicações instaladas"</string> -</resources> diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml deleted file mode 100644 index a89a1c5..0000000 --- a/res/values-pt/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Search Applications Provider"</string> - <string name="search_label" msgid="6182832093760999173">"Aplicativos"</string> - <string name="application_desc" msgid="888412554142684749">"Aplicativo"</string> - <string name="settings_description" msgid="966629744054022387">"Nomes dos aplicativos instalados"</string> -</resources> diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml deleted file mode 100644 index 6097fff..0000000 --- a/res/values-rm/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- no translation found for app_label (8842303127802367578) --> - <skip /> - <string name="search_label" msgid="6182832093760999173">"Applicaziuns"</string> - <string name="application_desc" msgid="888412554142684749">"Applicaziun"</string> - <string name="settings_description" msgid="966629744054022387">"Nums da las applicaziuns installadas"</string> -</resources> diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml deleted file mode 100644 index d2aa3cb..0000000 --- a/res/values-ro/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Furnizor aplic. căutare"</string> - <string name="search_label" msgid="6182832093760999173">"Aplicaţii"</string> - <string name="application_desc" msgid="888412554142684749">"Aplicaţie"</string> - <string name="settings_description" msgid="966629744054022387">"Numele aplicaţiilor instalate"</string> -</resources> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml deleted file mode 100644 index 0f25d2d..0000000 --- a/res/values-ru/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Поставщик средств поиска"</string> - <string name="search_label" msgid="6182832093760999173">"Приложения"</string> - <string name="application_desc" msgid="888412554142684749">"Приложение"</string> - <string name="settings_description" msgid="966629744054022387">"Названия установленных приложений"</string> -</resources> diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml deleted file mode 100644 index d837fe3..0000000 --- a/res/values-sk/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Poskyt. vyhľad. aplikácií"</string> - <string name="search_label" msgid="6182832093760999173">"Aplikácie"</string> - <string name="application_desc" msgid="888412554142684749">"Aplikácia"</string> - <string name="settings_description" msgid="966629744054022387">"Názvy inštalovaných aplikácií"</string> -</resources> diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml deleted file mode 100644 index 9ddde55..0000000 --- a/res/values-sl/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Iskanje ponudnika programov"</string> - <string name="search_label" msgid="6182832093760999173">"Google Aplikacije"</string> - <string name="application_desc" msgid="888412554142684749">"Program"</string> - <string name="settings_description" msgid="966629744054022387">"Imena nameščenih aplikacij"</string> -</resources> diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml deleted file mode 100644 index 09060e9..0000000 --- a/res/values-sr/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Претрага добављача апликација"</string> - <string name="search_label" msgid="6182832093760999173">"Апликације"</string> - <string name="application_desc" msgid="888412554142684749">"Апликација"</string> - <string name="settings_description" msgid="966629744054022387">"Називи инсталираних апликација"</string> -</resources> diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml deleted file mode 100644 index 706ed02..0000000 --- a/res/values-sv/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Sökprogramsleverantör"</string> - <string name="search_label" msgid="6182832093760999173">"Appar"</string> - <string name="application_desc" msgid="888412554142684749">"App"</string> - <string name="settings_description" msgid="966629744054022387">"Namn på installerade appar"</string> -</resources> diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml deleted file mode 100644 index 4c3aad4..0000000 --- a/res/values-sw/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Mtoa huduma wa Programu za Utafutaji"</string> - <string name="search_label" msgid="6182832093760999173">"Apps"</string> - <string name="application_desc" msgid="888412554142684749">"Programu"</string> - <string name="settings_description" msgid="966629744054022387">"Majina ya programu za kompyuta zilizowekwa"</string> -</resources> diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml deleted file mode 100644 index f2fe511..0000000 --- a/res/values-th/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"ผู้ให้บริการแอปพลิเคชันการค้นหา"</string> - <string name="search_label" msgid="6182832093760999173">"แอป"</string> - <string name="application_desc" msgid="888412554142684749">"แอปพลิเคชัน"</string> - <string name="settings_description" msgid="966629744054022387">"ชื่อแอปพลิเคชันที่ติดตั้ง"</string> -</resources> diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml deleted file mode 100644 index e395d74..0000000 --- a/res/values-tl/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Search Applications Provider"</string> - <string name="search_label" msgid="6182832093760999173">"Apps"</string> - <string name="application_desc" msgid="888412554142684749">"Application"</string> - <string name="settings_description" msgid="966629744054022387">"Mga pangalan ng mga naka-install na application"</string> -</resources> diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml deleted file mode 100644 index 8740223..0000000 --- a/res/values-tr/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Arama Uyglmlr Sağlayıcısı"</string> - <string name="search_label" msgid="6182832093760999173">"Uygulamalar"</string> - <string name="application_desc" msgid="888412554142684749">"Uygulama"</string> - <string name="settings_description" msgid="966629744054022387">"Yüklenen uygulamaların adları"</string> -</resources> diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml deleted file mode 100644 index 498bb10..0000000 --- a/res/values-uk/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Search Applications Provider"</string> - <string name="search_label" msgid="6182832093760999173">"Програми"</string> - <string name="application_desc" msgid="888412554142684749">"Програма"</string> - <string name="settings_description" msgid="966629744054022387">"Назви встановлених програм"</string> -</resources> diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml deleted file mode 100644 index 938ed32..0000000 --- a/res/values-vi/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"T.kiếm Nhà cung cấp ư.dụng"</string> - <string name="search_label" msgid="6182832093760999173">"Ứng dụng"</string> - <string name="application_desc" msgid="888412554142684749">"Ứng dụng"</string> - <string name="settings_description" msgid="966629744054022387">"Tên của các ứng dụng đã cài đặt"</string> -</resources> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml deleted file mode 100644 index dda1efd..0000000 --- a/res/values-zh-rCN/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"搜索应用提供程序"</string> - <string name="search_label" msgid="6182832093760999173">"应用"</string> - <string name="application_desc" msgid="888412554142684749">"应用"</string> - <string name="settings_description" msgid="966629744054022387">"已安装的应用的名称"</string> -</resources> diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml deleted file mode 100644 index 272fcbd..0000000 --- a/res/values-zh-rTW/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"搜尋應用程式供應商"</string> - <string name="search_label" msgid="6182832093760999173">"應用程式"</string> - <string name="application_desc" msgid="888412554142684749">"應用程式"</string> - <string name="settings_description" msgid="966629744054022387">"已安裝的應用程式名稱"</string> -</resources> diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml deleted file mode 100644 index 9e39744..0000000 --- a/res/values-zu/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="8842303127802367578">"Sesha Umhlinzeki Wezinhlelo Zokusebenza"</string> - <string name="search_label" msgid="6182832093760999173">"Izinhlelo zokusebenza"</string> - <string name="application_desc" msgid="888412554142684749">"Uhlelo lokusebenza"</string> - <string name="settings_description" msgid="966629744054022387">"Amagama ezinhlelo zokusebenza ezifakiwe"</string> -</resources> diff --git a/res/values/strings.xml b/res/values/strings.xml deleted file mode 100644 index 2c296ef..0000000 --- a/res/values/strings.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - - <!-- [CHAR LIMIT=25] Label of this application. --> - <string name="app_label">Search Applications Provider</string> - - <!-- Search label for applications. --> - <string name="search_label">Apps</string> - - <!-- Description line displayed for an application entry in the search suggest list. --> - <string name="application_desc">Application</string> - - <!-- Description line displayed for 'apps' as a searchable item within system search - settings. --> - <string name="settings_description">Names of installed applications</string> - -</resources> diff --git a/res/xml/searchable.xml b/res/xml/searchable.xml deleted file mode 100644 index e6df7cd..0000000 --- a/res/xml/searchable.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2008 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<searchable xmlns:android="http://schemas.android.com/apk/res/android" - android:label="@string/search_label" - android:includeInGlobalSearch="true" - android:searchSuggestAuthority="applications" - android:searchSuggestIntentAction="android.intent.action.MAIN" - android:searchSettingsDescription="@string/settings_description" -> -</searchable> diff --git a/src/com/android/providers/applications/ApplicationLauncher.java b/src/com/android/providers/applications/ApplicationLauncher.java deleted file mode 100644 index 0b38dfe..0000000 --- a/src/com/android/providers/applications/ApplicationLauncher.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.providers.applications; - -import android.app.ListActivity; -import android.app.SearchManager; -import android.content.ActivityNotFoundException; -import android.content.ComponentName; -import android.content.Intent; -import android.database.Cursor; -import android.net.Uri; -import android.os.Bundle; -import android.provider.Applications; -import android.util.Log; -import android.view.View; -import android.widget.ListView; - -/** - * This class is purely here to get launch intents. - */ -public class ApplicationLauncher extends ListActivity { - - private static final String TAG = "ApplicationLauncher"; - - private Cursor mCursor; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Intent intent = getIntent(); - if (intent == null) { - finish(); - return; - } - String action = intent.getAction(); - if (Intent.ACTION_MAIN.equals(action)) { - Uri contentUri = intent.getData(); - launchApplication(contentUri); - finish(); - } else if (Intent.ACTION_SEARCH.equals(action)) { - String query = intent.getStringExtra(SearchManager.QUERY); - showSearchResults(query); - } - } - - private void showSearchResults(String query) { - setTitle(query); - - mCursor = Applications.search(getContentResolver(), query); - startManagingCursor(mCursor); - - ApplicationsAdapter adapter = new ApplicationsAdapter(this, mCursor); - setListAdapter(adapter); - } - - @Override - protected void onListItemClick(ListView l, View v, int position, long id) { - if (mCursor == null) { - Log.e(TAG, "Got click on position " + position + " but there is no cursor"); - return; - } - if (mCursor.isClosed()) { - Log.e(TAG, "Got click on position " + position + " but the cursor is closed"); - return; - } - if (!mCursor.moveToPosition(position)) { - Log.e(TAG, "Failed to move to position " + position); - return; - } - Uri uri = ApplicationsAdapter.getColumnUri(mCursor, Applications.ApplicationColumns.URI); - launchApplication(uri); - } - - private void launchApplication(Uri uri) { - ComponentName componentName = Applications.uriToComponentName(uri); - Log.i(TAG, "Launching " + componentName); - if (componentName != null) { - Intent launchIntent = new Intent(Intent.ACTION_MAIN); - launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | - Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); - launchIntent.setComponent(componentName); - try { - startActivity(launchIntent); - } catch (ActivityNotFoundException ex) { - Log.w(TAG, "Activity not found: " + componentName); - } - } - } -} diff --git a/src/com/android/providers/applications/ApplicationsAdapter.java b/src/com/android/providers/applications/ApplicationsAdapter.java deleted file mode 100644 index 9cf3b31..0000000 --- a/src/com/android/providers/applications/ApplicationsAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.providers.applications; - -import android.content.Context; -import android.database.Cursor; -import android.net.Uri; -import android.provider.Applications; -import android.text.TextUtils; -import android.util.Log; -import android.view.View; -import android.widget.ImageView; -import android.widget.ResourceCursorAdapter; -import android.widget.TextView; - -public class ApplicationsAdapter extends ResourceCursorAdapter { - - private static final boolean DBG = false; - private static final String TAG = "ApplicationsAdapter"; - - public ApplicationsAdapter(Context context, Cursor c) { - super(context, R.layout.application_list_item, c); - } - - @Override - public void bindView(View view, Context context, Cursor cursor) { - ImageView icon1 = (ImageView) view.findViewById(R.id.icon1); - TextView text1 = (TextView) view.findViewById(R.id.text1); - Uri iconUri = getColumnUri(cursor, Applications.ApplicationColumns.ICON); - String name = getColumnString(cursor, Applications.ApplicationColumns.NAME); - if (DBG) Log.d(TAG, "name=" + name + ",icon=" + iconUri); - icon1.setImageURI(iconUri); - text1.setText(name); - } - - public static Uri getColumnUri(Cursor cursor, String columnName) { - String uriString = getColumnString(cursor, columnName); - if (TextUtils.isEmpty(uriString)) return null; - return Uri.parse(uriString); - } - - public static String getColumnString(Cursor cursor, String columnName) { - int col = cursor.getColumnIndex(columnName); - return getStringOrNull(cursor, col); - } - - private static String getStringOrNull(Cursor cursor, int col) { - if (col < 0) return null; - try { - return cursor.getString(col); - } catch (RuntimeException e) { - Log.e(TAG, "Failed to get column " + col + " from cursor", e); - return null; - } - } -} diff --git a/src/com/android/providers/applications/ApplicationsProvider.java b/src/com/android/providers/applications/ApplicationsProvider.java deleted file mode 100644 index 128fe2f..0000000 --- a/src/com/android/providers/applications/ApplicationsProvider.java +++ /dev/null @@ -1,702 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.providers.applications; - -import com.android.internal.content.PackageMonitor; -import com.android.internal.os.PkgUsageStats; - -import android.app.ActivityManager; -import android.app.AlarmManager; -import android.app.PendingIntent; -import android.app.SearchManager; -import android.content.BroadcastReceiver; -import android.content.ComponentName; -import android.content.ContentProvider; -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.UriMatcher; -import android.content.pm.ActivityInfo; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; -import android.content.res.Resources; -import android.database.Cursor; -import android.database.DatabaseUtils; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteQueryBuilder; -import android.net.Uri; -import android.os.CancellationSignal; -import android.os.Handler; -import android.os.HandlerThread; -import android.os.Looper; -import android.os.Message; -import android.provider.Applications; -import android.text.TextUtils; -import android.util.Log; - -import java.lang.Runnable; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.google.common.annotations.VisibleForTesting; - -/** - * Fetches the list of applications installed on the phone to provide search suggestions. - * If the functionality of this provider changes, the documentation at - * {@link android.provider.Applications} should be updated. - * - * TODO: this provider should be moved to the Launcher, which contains similar logic to keep an up - * to date list of installed applications. Alternatively, Launcher could be updated to use this - * provider. - */ -public class ApplicationsProvider extends ContentProvider { - - private static final boolean DBG = false; - - private static final String TAG = "ApplicationsProvider"; - - private static final int SEARCH_SUGGEST = 0; - private static final int SHORTCUT_REFRESH = 1; - private static final int SEARCH = 2; - - private static final UriMatcher sURIMatcher = buildUriMatcher(); - - private static final int THREAD_PRIORITY = android.os.Process.THREAD_PRIORITY_BACKGROUND; - - // Messages for mHandler - private static final int MSG_UPDATE_ALL = 0; - private static final int MSG_UPDATE_PACKAGE = 1; - - public static final String _ID = "_id"; - public static final String NAME = "name"; - public static final String DESCRIPTION = "description"; - public static final String PACKAGE = "package"; - public static final String CLASS = "class"; - public static final String ICON = "icon"; - public static final String LAUNCH_COUNT = "launch_count"; - public static final String LAST_RESUME_TIME = "last_resume_time"; - - // A query parameter to refresh application statistics. Used by QSB. - public static final String REFRESH_STATS = "refresh"; - - private static final String APPLICATIONS_TABLE = "applications"; - - private static final String APPLICATIONS_LOOKUP_JOIN = - "applicationsLookup JOIN " + APPLICATIONS_TABLE + " ON" - + " applicationsLookup.source = " + APPLICATIONS_TABLE + "." + _ID; - - private static final HashMap<String, String> sSearchSuggestionsProjectionMap = - buildSuggestionsProjectionMap(false); - private static final HashMap<String, String> sGlobalSearchSuggestionsProjectionMap = - buildSuggestionsProjectionMap(true); - private static final HashMap<String, String> sSearchProjectionMap = - buildSearchProjectionMap(); - - /** - * An in-memory database storing the details of applications installed on - * the device. Populated when the ApplicationsProvider is launched. - */ - private SQLiteDatabase mDb; - - // Handler that runs DB updates. - private Handler mHandler; - - /** - * We delay application updates by this many millis to avoid doing more than one update to the - * applications list within this window. - */ - private static final long UPDATE_DELAY_MILLIS = 1000L; - - private static UriMatcher buildUriMatcher() { - UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH); - matcher.addURI(Applications.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY, - SEARCH_SUGGEST); - matcher.addURI(Applications.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY + "/*", - SEARCH_SUGGEST); - matcher.addURI(Applications.AUTHORITY, SearchManager.SUGGEST_URI_PATH_SHORTCUT, - SHORTCUT_REFRESH); - matcher.addURI(Applications.AUTHORITY, SearchManager.SUGGEST_URI_PATH_SHORTCUT + "/*", - SHORTCUT_REFRESH); - matcher.addURI(Applications.AUTHORITY, Applications.SEARCH_PATH, - SEARCH); - matcher.addURI(Applications.AUTHORITY, Applications.SEARCH_PATH + "/*", - SEARCH); - return matcher; - } - - /** - * Updates applications list when packages are added/removed. - * - * TODO: Maybe this should listen for changes to individual apps instead. - */ - private class MyPackageMonitor extends PackageMonitor { - @Override - public void onSomePackagesChanged() { - postUpdateAll(); - } - - @Override - public void onPackageModified(String packageName) { - postUpdatePackage(packageName); - } - } - - // Broadcast receiver for updating applications list when the locale changes. - private BroadcastReceiver mLocaleChangeReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - if (Intent.ACTION_LOCALE_CHANGED.equals(action)) { - if (DBG) Log.d(TAG, "locale changed"); - postUpdateAll(); - } - } - }; - - @Override - public boolean onCreate() { - createDatabase(); - // Start thread that runs app updates - HandlerThread thread = new HandlerThread("ApplicationsProviderUpdater", THREAD_PRIORITY); - thread.start(); - mHandler = createHandler(thread.getLooper()); - // Kick off first apps update - postUpdateAll(); - // Listen for package changes - new MyPackageMonitor().register(getContext(), null, true); - // Listen for locale changes - IntentFilter localeFilter = new IntentFilter(Intent.ACTION_LOCALE_CHANGED); - getContext().registerReceiver(mLocaleChangeReceiver, localeFilter); - return true; - } - - @VisibleForTesting - Handler createHandler(Looper looper) { - return new UpdateHandler(looper); - } - - @VisibleForTesting - class UpdateHandler extends Handler { - - public UpdateHandler(Looper looper) { - super(looper); - } - - @Override - public void handleMessage(Message msg) { - switch (msg.what) { - case MSG_UPDATE_ALL: - updateApplicationsList(null); - break; - case MSG_UPDATE_PACKAGE: - updateApplicationsList((String) msg.obj); - break; - default: - Log.e(TAG, "Unknown message: " + msg.what); - break; - } - } - } - - /** - * Posts an update to run on the DB update thread. - */ - private void postUpdateAll() { - // Clear pending updates - mHandler.removeMessages(MSG_UPDATE_ALL); - // Post a new update - Message msg = Message.obtain(); - msg.what = MSG_UPDATE_ALL; - mHandler.sendMessageDelayed(msg, UPDATE_DELAY_MILLIS); - } - - private void postUpdatePackage(String packageName) { - Message msg = Message.obtain(); - msg.what = MSG_UPDATE_PACKAGE; - msg.obj = packageName; - mHandler.sendMessageDelayed(msg, UPDATE_DELAY_MILLIS); - } - - // ---------- - // END ASYC UPDATE CODE - // ---------- - - /** - * Creates an in-memory database for storing application info. - */ - private void createDatabase() { - mDb = SQLiteDatabase.create(null); - mDb.execSQL("CREATE TABLE IF NOT EXISTS " + APPLICATIONS_TABLE + " (" + - _ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + - NAME + " TEXT COLLATE LOCALIZED," + - DESCRIPTION + " description TEXT," + - PACKAGE + " TEXT," + - CLASS + " TEXT," + - ICON + " TEXT," + - LAUNCH_COUNT + " INTEGER DEFAULT 0," + - LAST_RESUME_TIME + " INTEGER DEFAULT 0" + - ");"); - // Needed for efficient update and remove - mDb.execSQL("CREATE INDEX applicationsComponentIndex ON " + APPLICATIONS_TABLE + " (" - + PACKAGE + "," + CLASS + ");"); - // Maps token from the app name to records in the applications table - mDb.execSQL("CREATE TABLE applicationsLookup (" + - "token TEXT," + - "source INTEGER REFERENCES " + APPLICATIONS_TABLE + "(" + _ID + ")," + - "token_index INTEGER" + - ");"); - mDb.execSQL("CREATE INDEX applicationsLookupIndex ON applicationsLookup (" + - "token," + - "source" + - ");"); - // Triggers to keep the applicationsLookup table up to date - mDb.execSQL("CREATE TRIGGER applicationsLookup_update UPDATE OF " + NAME + " ON " + - APPLICATIONS_TABLE + " " + - "BEGIN " + - "DELETE FROM applicationsLookup WHERE source = new." + _ID + ";" + - "SELECT _TOKENIZE('applicationsLookup', new." + _ID + ", new." + NAME + ", ' ', 1);" - + "END"); - mDb.execSQL("CREATE TRIGGER applicationsLookup_insert AFTER INSERT ON " + - APPLICATIONS_TABLE + " " + - "BEGIN " + - "SELECT _TOKENIZE('applicationsLookup', new." + _ID + ", new." + NAME + ", ' ', 1);" - + "END"); - mDb.execSQL("CREATE TRIGGER applicationsLookup_delete DELETE ON " + - APPLICATIONS_TABLE + " " + - "BEGIN " + - "DELETE FROM applicationsLookup WHERE source = old." + _ID + ";" + - "END"); - } - - /** - * This will always return {@link SearchManager#SUGGEST_MIME_TYPE} as this - * provider is purely to provide suggestions. - */ - @Override - public String getType(Uri uri) { - switch (sURIMatcher.match(uri)) { - case SEARCH_SUGGEST: - return SearchManager.SUGGEST_MIME_TYPE; - case SHORTCUT_REFRESH: - return SearchManager.SHORTCUT_MIME_TYPE; - case SEARCH: - return Applications.APPLICATION_DIR_TYPE; - default: - throw new IllegalArgumentException("URL " + uri + " doesn't support querying."); - } - } - - @Override - public Cursor query(Uri uri, String[] projectionIn, String selection, - String[] selectionArgs, String sortOrder) { - return query(uri, projectionIn, selection, selectionArgs, sortOrder, null); - } - - /** - * Queries for a given search term and returns a cursor containing - * suggestions ordered by best match. - */ - @Override - public Cursor query(Uri uri, String[] projectionIn, String selection, - String[] selectionArgs, String sortOrder, CancellationSignal cancellationSignal) { - if (DBG) Log.d(TAG, "query(" + uri + ")"); - - if (!TextUtils.isEmpty(selection)) { - throw new IllegalArgumentException("selection not allowed for " + uri); - } - if (selectionArgs != null && selectionArgs.length != 0) { - throw new IllegalArgumentException("selectionArgs not allowed for " + uri); - } - if (!TextUtils.isEmpty(sortOrder)) { - throw new IllegalArgumentException("sortOrder not allowed for " + uri); - } - - switch (sURIMatcher.match(uri)) { - case SEARCH_SUGGEST: { - String query = null; - if (uri.getPathSegments().size() > 1) { - query = uri.getLastPathSegment().toLowerCase(); - } - if (uri.getQueryParameter(REFRESH_STATS) != null) { - updateUsageStats(); - } - return getSuggestions(query, projectionIn, cancellationSignal); - } - case SHORTCUT_REFRESH: { - String shortcutId = null; - if (uri.getPathSegments().size() > 1) { - shortcutId = uri.getLastPathSegment(); - } - return refreshShortcut(shortcutId, projectionIn); - } - case SEARCH: { - String query = null; - if (uri.getPathSegments().size() > 1) { - query = uri.getLastPathSegment().toLowerCase(); - } - return getSearchResults(query, projectionIn, cancellationSignal); - } - default: - throw new IllegalArgumentException("URL " + uri + " doesn't support querying."); - } - } - - private Cursor getSuggestions(String query, String[] projectionIn, - CancellationSignal cancellationSignal) { - Map<String, String> projectionMap = sSearchSuggestionsProjectionMap; - // No zero-query suggestions or launch times except for global search, - // to avoid leaking info about apps that have been used. - if (hasGlobalSearchPermission()) { - projectionMap = sGlobalSearchSuggestionsProjectionMap; - } else if (TextUtils.isEmpty(query)) { - return null; - } - return searchApplications(query, projectionIn, projectionMap, cancellationSignal); - } - - /** - * Refreshes the shortcut of an application. - * - * @param shortcutId Flattened component name of an activity. - */ - private Cursor refreshShortcut(String shortcutId, String[] projectionIn) { - ComponentName component = ComponentName.unflattenFromString(shortcutId); - if (component == null) { - Log.w(TAG, "Bad shortcut id: " + shortcutId); - return null; - } - SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); - qb.setTables(APPLICATIONS_TABLE); - qb.setProjectionMap(sSearchSuggestionsProjectionMap); - qb.appendWhere("package = ? AND class = ?"); - String[] selectionArgs = { component.getPackageName(), component.getClassName() }; - Cursor cursor = qb.query(mDb, projectionIn, null, selectionArgs, null, null, null); - if (DBG) Log.d(TAG, "Returning " + cursor.getCount() + " results for shortcut refresh."); - return cursor; - } - - private Cursor getSearchResults(String query, String[] projectionIn, - CancellationSignal cancellationSignal) { - return searchApplications(query, projectionIn, sSearchProjectionMap, cancellationSignal); - } - - private Cursor searchApplications(String query, String[] projectionIn, - Map<String, String> columnMap, CancellationSignal cancelationSignal) { - final boolean zeroQuery = TextUtils.isEmpty(query); - SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); - qb.setTables(APPLICATIONS_LOOKUP_JOIN); - qb.setProjectionMap(columnMap); - String orderBy = null; - if (!zeroQuery) { - qb.appendWhere(buildTokenFilter(query)); - } else { - if (hasGlobalSearchPermission()) { - qb.appendWhere(LAST_RESUME_TIME + " > 0"); - } - } - if (!hasGlobalSearchPermission()) { - orderBy = getOrderBy(zeroQuery); - } - // don't return duplicates when there are two matching tokens for an app - String groupBy = APPLICATIONS_TABLE + "." + _ID; - Cursor cursor = qb.query(mDb, projectionIn, null, null, groupBy, null, orderBy, null, - cancelationSignal); - if (DBG) Log.d(TAG, "Returning " + cursor.getCount() + " results for " + query); - return cursor; - } - - private String getOrderBy(boolean zeroQuery) { - // order first by whether it a full prefix match, then by launch - // count (if allowed, frequently used apps rank higher), then name - // MIN(token_index) != 0 is true for non-full prefix matches, - // and since false (0) < true(1), this expression makes sure - // that full prefix matches come first. - StringBuilder orderBy = new StringBuilder(); - if (!zeroQuery) { - orderBy.append("MIN(token_index) != 0, "); - } - - if (hasGlobalSearchPermission()) { - orderBy.append(LAST_RESUME_TIME + " DESC, "); - } - - orderBy.append(NAME); - - return orderBy.toString(); - } - - @SuppressWarnings("deprecation") - private String buildTokenFilter(String filterParam) { - StringBuilder filter = new StringBuilder("token GLOB "); - // NOTE: Query parameters won't work here since the SQL compiler - // needs to parse the actual string to know that it can use the - // index to do a prefix scan. - DatabaseUtils.appendEscapedSQLString(filter, - DatabaseUtils.getHexCollationKey(filterParam) + "*"); - return filter.toString(); - } - - private static HashMap<String, String> buildSuggestionsProjectionMap(boolean forGlobalSearch) { - HashMap<String, String> map = new HashMap<String, String>(); - addProjection(map, Applications.ApplicationColumns._ID, _ID); - addProjection(map, SearchManager.SUGGEST_COLUMN_TEXT_1, NAME); - addProjection(map, SearchManager.SUGGEST_COLUMN_TEXT_2, DESCRIPTION); - addProjection(map, SearchManager.SUGGEST_COLUMN_INTENT_DATA, - "'content://" + Applications.AUTHORITY + "/applications/'" - + " || " + PACKAGE + " || '/' || " + CLASS); - addProjection(map, SearchManager.SUGGEST_COLUMN_ICON_1, ICON); - addProjection(map, SearchManager.SUGGEST_COLUMN_ICON_2, "NULL"); - addProjection(map, SearchManager.SUGGEST_COLUMN_SHORTCUT_ID, - PACKAGE + " || '/' || " + CLASS); - if (forGlobalSearch) { - addProjection(map, SearchManager.SUGGEST_COLUMN_LAST_ACCESS_HINT, - LAST_RESUME_TIME); - } - return map; - } - - private static HashMap<String, String> buildSearchProjectionMap() { - HashMap<String, String> map = new HashMap<String, String>(); - addProjection(map, Applications.ApplicationColumns._ID, _ID); - addProjection(map, Applications.ApplicationColumns.NAME, NAME); - addProjection(map, Applications.ApplicationColumns.ICON, ICON); - addProjection(map, Applications.ApplicationColumns.URI, - "'content://" + Applications.AUTHORITY + "/applications/'" - + " || " + PACKAGE + " || '/' || " + CLASS); - return map; - } - - private static void addProjection(HashMap<String, String> map, String name, String value) { - if (!value.equals(name)) { - value = value + " AS " + name; - } - map.put(name, value); - } - - /** - * Updates the cached list of installed applications. - * - * @param packageName Name of package whose activities to update. - * If {@code null}, all packages are updated. - */ - private synchronized void updateApplicationsList(String packageName) { - if (DBG) Log.d(TAG, "Updating database (packageName = " + packageName + ")..."); - - DatabaseUtils.InsertHelper inserter = - new DatabaseUtils.InsertHelper(mDb, APPLICATIONS_TABLE); - int nameCol = inserter.getColumnIndex(NAME); - int descriptionCol = inserter.getColumnIndex(DESCRIPTION); - int packageCol = inserter.getColumnIndex(PACKAGE); - int classCol = inserter.getColumnIndex(CLASS); - int iconCol = inserter.getColumnIndex(ICON); - int launchCountCol = inserter.getColumnIndex(LAUNCH_COUNT); - int lastResumeTimeCol = inserter.getColumnIndex(LAST_RESUME_TIME); - - Map<String, PkgUsageStats> usageStats = fetchUsageStats(); - - mDb.beginTransaction(); - try { - removeApplications(packageName); - String description = getContext().getString(R.string.application_desc); - // Iterate and find all the activities which have the LAUNCHER category set. - Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); - mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); - if (packageName != null) { - // Limit to activities in the package, if given - mainIntent.setPackage(packageName); - } - final PackageManager manager = getPackageManager(); - List<ResolveInfo> activities = manager.queryIntentActivities(mainIntent, 0); - int activityCount = activities == null ? 0 : activities.size(); - for (int i = 0; i < activityCount; i++) { - ResolveInfo info = activities.get(i); - String title = info.loadLabel(manager).toString(); - String activityClassName = info.activityInfo.name; - if (TextUtils.isEmpty(title)) { - title = activityClassName; - } - - String activityPackageName = info.activityInfo.applicationInfo.packageName; - if (DBG) Log.d(TAG, "activity " + activityPackageName + "/" + activityClassName); - PkgUsageStats stats = usageStats.get(activityPackageName); - int launchCount = 0; - long lastResumeTime = 0; - if (stats != null) { - launchCount = stats.launchCount; - if (stats.componentResumeTimes.containsKey(activityClassName)) { - lastResumeTime = stats.componentResumeTimes.get(activityClassName); - } - } - - String icon = getActivityIconUri(info.activityInfo); - inserter.prepareForInsert(); - inserter.bind(nameCol, title); - inserter.bind(descriptionCol, description); - inserter.bind(packageCol, activityPackageName); - inserter.bind(classCol, activityClassName); - inserter.bind(iconCol, icon); - inserter.bind(launchCountCol, launchCount); - inserter.bind(lastResumeTimeCol, lastResumeTime); - inserter.execute(); - } - mDb.setTransactionSuccessful(); - } finally { - mDb.endTransaction(); - inserter.close(); - } - - if (DBG) Log.d(TAG, "Finished updating database."); - } - - @VisibleForTesting - protected synchronized void updateUsageStats() { - if (DBG) Log.d(TAG, "Update application usage stats."); - Map<String, PkgUsageStats> usageStats = fetchUsageStats(); - - mDb.beginTransaction(); - try { - for (Map.Entry<String, PkgUsageStats> statsEntry : usageStats.entrySet()) { - ContentValues updatedLaunchCount = new ContentValues(); - String packageName = statsEntry.getKey(); - PkgUsageStats stats = statsEntry.getValue(); - updatedLaunchCount.put(LAUNCH_COUNT, stats.launchCount); - - mDb.update(APPLICATIONS_TABLE, updatedLaunchCount, - PACKAGE + " = ?", new String[] { packageName }); - - for (Map.Entry<String, Long> crtEntry: stats.componentResumeTimes.entrySet()) { - ContentValues updatedLastResumeTime = new ContentValues(); - String componentName = crtEntry.getKey(); - updatedLastResumeTime.put(LAST_RESUME_TIME, crtEntry.getValue()); - - mDb.update(APPLICATIONS_TABLE, updatedLastResumeTime, - PACKAGE + " = ? AND " + CLASS + " = ?", - new String[] { packageName, componentName }); - } - } - mDb.setTransactionSuccessful(); - } finally { - mDb.endTransaction(); - } - - if (DBG) Log.d(TAG, "Finished updating application usage stats in database."); - } - - private String getActivityIconUri(ActivityInfo activityInfo) { - int icon = activityInfo.getIconResource(); - if (icon == 0) return null; - Uri uri = getResourceUri(activityInfo.applicationInfo, icon); - return uri == null ? null : uri.toString(); - } - - private void removeApplications(String packageName) { - if (packageName == null) { - mDb.delete(APPLICATIONS_TABLE, null, null); - } else { - mDb.delete(APPLICATIONS_TABLE, PACKAGE + " = ?", new String[] { packageName }); - } - } - - @Override - public Uri insert(Uri uri, ContentValues values) { - throw new UnsupportedOperationException(); - } - - @Override - public int update(Uri uri, ContentValues values, String selection, - String[] selectionArgs) { - throw new UnsupportedOperationException(); - } - - @Override - public int delete(Uri uri, String selection, String[] selectionArgs) { - throw new UnsupportedOperationException(); - } - - private Uri getResourceUri(ApplicationInfo appInfo, int res) { - try { - Resources resources = getPackageManager().getResourcesForApplication(appInfo); - return getResourceUri(resources, appInfo.packageName, res); - } catch (PackageManager.NameNotFoundException e) { - return null; - } catch (Resources.NotFoundException e) { - return null; - } - } - - private static Uri getResourceUri(Resources resources, String appPkg, int res) - throws Resources.NotFoundException { - String resPkg = resources.getResourcePackageName(res); - String type = resources.getResourceTypeName(res); - String name = resources.getResourceEntryName(res); - return makeResourceUri(appPkg, resPkg, type, name); - } - - private static Uri makeResourceUri(String appPkg, String resPkg, String type, String name) - throws Resources.NotFoundException { - Uri.Builder uriBuilder = new Uri.Builder(); - uriBuilder.scheme(ContentResolver.SCHEME_ANDROID_RESOURCE); - uriBuilder.encodedAuthority(appPkg); - uriBuilder.appendEncodedPath(type); - if (!appPkg.equals(resPkg)) { - uriBuilder.appendEncodedPath(resPkg + ":" + name); - } else { - uriBuilder.appendEncodedPath(name); - } - return uriBuilder.build(); - } - - @VisibleForTesting - protected Map<String, PkgUsageStats> fetchUsageStats() { - try { - ActivityManager activityManager = (ActivityManager) - getContext().getSystemService(Context.ACTIVITY_SERVICE); - - if (activityManager != null) { - Map<String, PkgUsageStats> stats = new HashMap<String, PkgUsageStats>(); - PkgUsageStats[] pkgUsageStats = activityManager.getAllPackageUsageStats(); - if (pkgUsageStats != null) { - for (PkgUsageStats pus : pkgUsageStats) { - stats.put(pus.packageName, pus); - } - } - return stats; - } - } catch (Exception e) { - Log.w(TAG, "Could not fetch usage stats", e); - } - return new HashMap<String, PkgUsageStats>(); - } - - @VisibleForTesting - protected PackageManager getPackageManager() { - return getContext().getPackageManager(); - } - - @VisibleForTesting - protected boolean hasGlobalSearchPermission() { - // Only the global-search system is allowed to see the usage stats of - // applications. Without this restriction the ApplicationsProvider - // could leak information about the user's behavior to applications. - return (PackageManager.PERMISSION_GRANTED == - getContext().checkCallingPermission(android.Manifest.permission.GLOBAL_SEARCH)); - } -} diff --git a/tests/Android.mk b/tests/Android.mk deleted file mode 100644 index 7d1fe34..0000000 --- a/tests/Android.mk +++ /dev/null @@ -1,18 +0,0 @@ -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -# We only want this apk build for tests. -LOCAL_MODULE_TAGS := tests - -# Include all test java files. -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_INSTRUMENTATION_FOR := ApplicationsProvider - -# framework is required to access android.provider.Applications -LOCAL_JAVA_LIBRARIES := android.test.runner - -LOCAL_PACKAGE_NAME := ApplicationsProviderTests -LOCAL_CERTIFICATE := shared - -include $(BUILD_PACKAGE) diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml deleted file mode 100644 index c614afc..0000000 --- a/tests/AndroidManifest.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - --> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.providers.applications.tests"> - - <application> - <uses-library android:name="android.test.runner" /> - </application> - - <instrumentation android:name="android.test.InstrumentationTestRunner" - android:targetPackage="com.android.providers.applications" - android:label="Tests for the ApplicationsProvider"> - </instrumentation> -</manifest> diff --git a/tests/runtests b/tests/runtests deleted file mode 100644 index be1c779..0000000 --- a/tests/runtests +++ /dev/null @@ -1,6 +0,0 @@ -mmm packages/providers/ApplicationsProvider || return -mmm packages/providers/ApplicationsProvider/tests || return -adb install -r ${OUT}/system/app/ApplicationsProvider.apk || return -adb install -r ${OUT}/data/app/ApplicationsProviderTests.apk || return -adb shell am instrument -w -e class com.android.providers.applications.ApplicationsProviderTest com.android.providers.applications.tests/android.test.InstrumentationTestRunner || return - diff --git a/tests/src/com/android/providers/applications/ApplicationsProviderForTesting.java b/tests/src/com/android/providers/applications/ApplicationsProviderForTesting.java deleted file mode 100644 index 56a3d80..0000000 --- a/tests/src/com/android/providers/applications/ApplicationsProviderForTesting.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.providers.applications; - -import android.content.pm.PackageManager; -import android.os.Handler; -import android.os.Looper; -import android.os.Message; - -import com.android.internal.os.PkgUsageStats; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * An extension of {@link ApplicationsProvider} that makes its testing easier. - */ -public class ApplicationsProviderForTesting extends ApplicationsProvider { - - private PackageManager mMockPackageManager; - - private MockActivityManager mMockActivityManager; - - private boolean mHasGlobalSearchPermission; - - private MockUpdateHandler mMockUpdateHandler; - - @Override - protected PackageManager getPackageManager() { - return mMockPackageManager; - } - - protected void setMockPackageManager(PackageManager mockPackageManager) { - mMockPackageManager = mockPackageManager; - } - - @Override - protected Map<String, PkgUsageStats> fetchUsageStats() { - Map<String, PkgUsageStats> stats = new HashMap<String, PkgUsageStats>(); - for (PkgUsageStats pus : mMockActivityManager.getAllPackageUsageStats()) { - stats.put(pus.packageName, pus); - } - return stats; - } - - protected void setMockActivityManager(MockActivityManager mockActivityManager) { - mMockActivityManager = mockActivityManager; - } - - protected void setHasGlobalSearchPermission(boolean hasGlobalSearchPermission) { - mHasGlobalSearchPermission = hasGlobalSearchPermission; - } - - @Override - protected boolean hasGlobalSearchPermission() { - return mHasGlobalSearchPermission; - } - - @Override - Handler createHandler(Looper looper) { - mMockUpdateHandler = new MockUpdateHandler(looper); - return mMockUpdateHandler; - } - - public boolean dispatchNextMessage() { - return mMockUpdateHandler.dispatchNextMessage(); - } - - private class MockUpdateHandler extends UpdateHandler { - - List<Message> mMessages = new ArrayList<Message>(); - - MockUpdateHandler(Looper looper) { - super(looper); - } - - @Override - public boolean sendMessageAtTime(Message msg, long uptimeMillis) { - mMessages.add(msg); - return true; - } - - public boolean dispatchNextMessage() { - if (!mMessages.isEmpty()) { - dispatchMessage(mMessages.remove(0)); - return true; - } else { - return false; - } - } - } -} diff --git a/tests/src/com/android/providers/applications/ApplicationsProviderTest.java b/tests/src/com/android/providers/applications/ApplicationsProviderTest.java deleted file mode 100644 index 99a8a2e..0000000 --- a/tests/src/com/android/providers/applications/ApplicationsProviderTest.java +++ /dev/null @@ -1,305 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.providers.applications; - -import android.app.SearchManager; -import android.content.ComponentName; -import android.content.Context; -import android.content.pm.PackageManager; -import android.database.Cursor; -import android.net.Uri; -import android.provider.Applications; -import android.test.ProviderTestCase2; -import android.test.suitebuilder.annotation.SmallTest; - -import java.util.concurrent.FutureTask; - - -/** - * Instrumentation test for the ApplicationsProvider. - * - * The tests use an IsolatedContext, and are not affected by the real list of - * applications on the device. The ApplicationsProvider's persistent database - * is also created in an isolated context so it doesn't interfere with the - * database of the actual ApplicationsProvider installed on the device. - */ -@SmallTest -public class ApplicationsProviderTest extends ProviderTestCase2<ApplicationsProviderForTesting> { - - private ApplicationsProviderForTesting mProvider; - - private MockActivityManager mMockActivityManager; - - public ApplicationsProviderTest() { - super(ApplicationsProviderForTesting.class, Applications.AUTHORITY); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - mProvider = getProvider(); - mMockActivityManager = new MockActivityManager(); - } - - /** - * Ensures that the ApplicationsProvider is in a ready-to-test state. - */ - private void initProvider(ApplicationsProviderForTesting provider) throws Exception { - // Decouple the provider from Android's real list of applications. - MockPackageManager mockPackageManager = new MockPackageManager(); - addDefaultTestPackages(mockPackageManager); - - initProvider(provider, mockPackageManager); - } - - private void initProvider(ApplicationsProviderForTesting provider, - MockPackageManager mockPackageManager) throws Exception { - provider.setMockPackageManager(mockPackageManager); - provider.setMockActivityManager(mMockActivityManager); - - assertTrue(provider.dispatchNextMessage()); - } - - /** - * Register a few default applications with the ApplicationsProvider that - * tests can query. - */ - private void addDefaultTestPackages(MockPackageManager mockPackageManager) { - mockPackageManager.addPackage( - "Email", new ComponentName("com.android.email", "com.android.email.MainView")); - mockPackageManager.addPackage( - "Ebay", new ComponentName("com.android.ebay", "com.android.ebay.Shopping")); - mockPackageManager.addPackage( - "Fakeapp", new ComponentName("com.android.fakeapp", "com.android.fakeapp.FakeView")); - - // Apps that can be used to test ordering. - mockPackageManager.addPackage("AlphabeticA", new ComponentName("a", "a.AView")); - mockPackageManager.addPackage("AlphabeticB", new ComponentName("b", "b.BView")); - mockPackageManager.addPackage("AlphabeticC", new ComponentName("c", "c.CView")); - mockPackageManager.addPackage("AlphabeticD", new ComponentName("d", "d.DView")); - mockPackageManager.addPackage("AlphabeticD2", new ComponentName("d", "d.DView2")); - } - - public void testSearch_singleResult() throws Exception { - initProvider(mProvider); - testSearch("ema", "Email"); - } - - public void testSearch_multipleResults() throws Exception { - initProvider(mProvider); - testSearch("e", "Ebay", "Email"); - } - - public void testSearch_noResults() throws Exception { - initProvider(mProvider); - testSearch("nosuchapp"); - } - - public void testSearch_orderingIsAlphabeticByDefault() throws Exception { - initProvider(mProvider); - testSearch("alphabetic", "AlphabeticA", "AlphabeticB", "AlphabeticC", "AlphabeticD", - "AlphabeticD2"); - } - - public void testSearch_emptySearchQueryReturnsEverything() throws Exception { - initProvider(mProvider); - testSearch("", - "AlphabeticA", "AlphabeticB", "AlphabeticC", "AlphabeticD", "AlphabeticD2", - "Ebay", "Email", "Fakeapp"); - } - - public void testSearch_appsAreRankedByUsageTimeOnStartup() throws Exception { - mMockActivityManager.addLastResumeTime("d", "d.DView", 3); - mMockActivityManager.addLastResumeTime("b", "b.BView", 1); - // Missing usage time for "a". - mMockActivityManager.addLastResumeTime("c", "c.CView", 0); - - // Launch count database is populated on startup. - mProvider.setHasGlobalSearchPermission(true); - - initProvider(mProvider); - - // New ranking: D, B, A, C (first by launch count, then - // - if the launch counts of two apps are equal - alphabetically) - testSearch("alphabetic", "AlphabeticD", "AlphabeticB", "AlphabeticA", "AlphabeticC", - "AlphabeticD2"); - } - - public void testSearch_appsAreRankedByResumeTimeAfterUpdate() throws Exception { - initProvider(mProvider); - mProvider.setHasGlobalSearchPermission(true); - - mMockActivityManager.addLastResumeTime("d", "d.DView", 3); - mMockActivityManager.addLastResumeTime("b", "b.BView", 1); - // Missing launch count for "a". - mMockActivityManager.addLastResumeTime("c", "c.CView", 0); - - // Fetch new data from usage stat provider (in the real instance this - // is triggered by a zero-query from global search). - mProvider.updateUsageStats(); - - // New ranking: D, B, A, C (first by launch count, then - // - if the launch counts of two apps are equal - alphabetically) - testSearch("alphabetic", "AlphabeticD", "AlphabeticB", "AlphabeticA", "AlphabeticC", - "AlphabeticD2"); - } - - public void testSearch_noLastAccessTimesWithoutPermission() throws Exception { - initProvider(mProvider); - mProvider.setHasGlobalSearchPermission(false); - mMockActivityManager.addLastResumeTime("d", "d.DView", 1); - mMockActivityManager.addLastResumeTime("b", "b.BView", 2); - mMockActivityManager.addLastResumeTime("c", "c.CView", 3); - - assertNull(getGlobalSearchCursor("", false)); - - Cursor cursor = getGlobalSearchCursor("alphabetic", false); - assertEquals(-1, cursor.getColumnIndex(SearchManager.SUGGEST_COLUMN_LAST_ACCESS_HINT)); - } - - public void testSearch_lastAccessTimes() throws Exception { - initProvider(mProvider); - mProvider.setHasGlobalSearchPermission(true); - mMockActivityManager.addLastResumeTime("d", "d.DView", 1); - mMockActivityManager.addLastResumeTime("b", "b.BView", 2); - mMockActivityManager.addLastResumeTime("c", "c.CView", 3); - - testLastAccessTimes("", true, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0); - - testLastAccessTimes("alphabetic", true, 3, 2, 1, 0, 0); - - // Update the last resume time of "c". - mMockActivityManager.addLastResumeTime("c", "c.CView", 5); - // Without a refresh, we should see the same results as before. - testLastAccessTimes("alphabetic", false, 3, 2, 1, 0, 0); - // If we refresh, we should see the change. - testLastAccessTimes("alphabetic", true, 5, 2, 1, 0, 0); - } - - /** - * The ApplicationsProvider must only rank by launch count if the caller - * is a privileged application - ordering apps by launch count when asked - * by a regular application would leak information about user behavior. - */ - public void testSearch_notAllowedToRankByLaunchCount() throws Exception { - initProvider(mProvider); - // Simulate non-privileged calling application. - mProvider.setHasGlobalSearchPermission(false); - - mMockActivityManager.addLastResumeTime("d", "d.DView", 3); - mMockActivityManager.addLastResumeTime("b", "b.BView", 1); - mMockActivityManager.addLastResumeTime("a", "a.AView", 0); - mMockActivityManager.addLastResumeTime("c", "c.CView", 0); - - // Fetch new data from launch count provider. - mProvider.updateUsageStats(); - - // Launch count information mustn't be leaked - ranking is still - // alphabetic. - testSearch("alphabetic", "AlphabeticA", "AlphabeticB", "AlphabeticC", "AlphabeticD", - "AlphabeticD2"); - } - - public void testSearch_disabledPackage() throws Exception { - MockPackageManager mockPackageManager = new MockPackageManager(); - mockPackageManager.addPackage("DisabledPackageApp1", - new ComponentName("dp", "dp.DisView1")); - mockPackageManager.addPackage("DisabledPackageApp2", - new ComponentName("dp", "dp.DisView2"), - PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.COMPONENT_ENABLED_STATE_DEFAULT); - initProvider(mProvider, mockPackageManager); - - mProvider.setHasGlobalSearchPermission(true); - testSearch("dis"); - } - - public void testSearch_disabledComponent() throws Exception { - MockPackageManager mockPackageManager = new MockPackageManager(); - mockPackageManager.addPackage("DisabledApp1", new ComponentName("da", "da.DaView1"), - PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, - PackageManager.COMPONENT_ENABLED_STATE_DISABLED); - mockPackageManager.addPackage("DisabledApp2", new ComponentName("da", "da.DaView2"), - PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, - PackageManager.COMPONENT_ENABLED_STATE_DEFAULT); - initProvider(mProvider, mockPackageManager); - - mProvider.setHasGlobalSearchPermission(true); - testSearch("dis", "DisabledApp2"); - } - - private void testSearch(String searchQuery, String... expectedResultsInOrder) { - Cursor cursor = Applications.search(getMockContentResolver(), searchQuery); - - assertNotNull(cursor); - assertFalse(cursor.isClosed()); - - verifySearchResults(cursor, expectedResultsInOrder); - - cursor.close(); - } - - private void verifySearchResults(Cursor cursor, String... expectedResultsInOrder) { - int expectedResultCount = expectedResultsInOrder.length; - assertEquals("Wrong number of app search results.", - expectedResultCount, cursor.getCount()); - - if (expectedResultCount > 0) { - cursor.moveToFirst(); - int nameIndex = cursor.getColumnIndex(ApplicationsProvider.NAME); - // Verify that the actual results match the expected ones. - for (int i = 0; i < cursor.getCount(); i++) { - assertEquals("Wrong search result at position " + i, - expectedResultsInOrder[i], cursor.getString(nameIndex)); - cursor.moveToNext(); - } - } - } - - private Cursor getGlobalSearchCursor(String searchQuery, boolean refresh) { - Uri.Builder uriBuilder = Applications.CONTENT_URI.buildUpon(); - uriBuilder.appendPath(SearchManager.SUGGEST_URI_PATH_QUERY).appendPath(searchQuery); - if (refresh) { - uriBuilder.appendQueryParameter(ApplicationsProvider.REFRESH_STATS, ""); - } - return getMockContentResolver().query(uriBuilder.build(), null, null, null, null); - } - - private void testLastAccessTimes(String searchQuery, boolean refresh, - int... expectedLastAccessTimesInOrder) { - Cursor cursor = getGlobalSearchCursor(searchQuery, refresh); - - assertNotNull(cursor); - assertFalse(cursor.isClosed()); - - verifyLastAccessTimes(cursor, expectedLastAccessTimesInOrder); - - cursor.close(); - } - - private void verifyLastAccessTimes(Cursor cursor, int... expectedLastAccessTimesInOrder) { - cursor.moveToFirst(); - int lastAccessTimeIndex = cursor.getColumnIndex( - SearchManager.SUGGEST_COLUMN_LAST_ACCESS_HINT); - // Verify that the actual results match the expected ones. - for (int i = 0; i < cursor.getCount(); i++) { - assertEquals("Wrong last-access time at position " + i, - expectedLastAccessTimesInOrder[i], cursor.getInt(lastAccessTimeIndex)); - cursor.moveToNext(); - } - } -} diff --git a/tests/src/com/android/providers/applications/MockActivityManager.java b/tests/src/com/android/providers/applications/MockActivityManager.java deleted file mode 100644 index 5ac5cf3..0000000 --- a/tests/src/com/android/providers/applications/MockActivityManager.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.providers.applications; - -import com.android.internal.os.PkgUsageStats; - -import java.util.HashMap; -import java.util.Map; - -/** - * The real ActivityManager is difficult to mock out (has a package visibility - * constructor), so this doesn't extend it. - */ -public class MockActivityManager { - - private Map<String, PkgUsageStats> mPackageUsageStats = new HashMap<String, PkgUsageStats>(); - - public void addLastResumeTime(String packageName, String componentName, long lastResumeTime) { - if (!mPackageUsageStats.containsKey(packageName)) { - PkgUsageStats stats = new PkgUsageStats(packageName, 1, 0, new HashMap<String, Long>()); - mPackageUsageStats.put(packageName, stats); - } - mPackageUsageStats.get(packageName).componentResumeTimes.put(componentName, lastResumeTime); - } - - public PkgUsageStats[] getAllPackageUsageStats() { - return mPackageUsageStats.values().toArray(new PkgUsageStats[mPackageUsageStats.size()]); - } -} diff --git a/tests/src/com/android/providers/applications/MockPackageManager.java b/tests/src/com/android/providers/applications/MockPackageManager.java deleted file mode 100644 index 9db7ee5..0000000 --- a/tests/src/com/android/providers/applications/MockPackageManager.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// Copyright 2011 Google Inc. All Rights Reserved. - -package com.android.providers.applications; - -import android.content.ComponentName; -import android.content.Intent; -import android.content.pm.ActivityInfo; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class MockPackageManager extends android.test.mock.MockPackageManager { - - private List<ResolveInfo> mPackages = new ArrayList<ResolveInfo>(); - - private Map<String, Integer> mApplicationEnabledSettings = new HashMap<String, Integer>(); - private Map<String, Integer> mComponentEnabledSettings = new HashMap<String, Integer>(); - - /** - * Returns all packages registered with the mock package manager. - * ApplicationsProvider uses this method to query the list of applications. - */ - @Override - public List<ResolveInfo> queryIntentActivities(Intent intent, int flags) { - return mPackages; - } - - @Override - public int getApplicationEnabledSetting(String packageName) { - return mApplicationEnabledSettings.get(packageName); - } - - @Override - public int getComponentEnabledSetting(ComponentName componentName) { - return mComponentEnabledSettings.get(componentName.flattenToString()); - } - - /** - * Adds a new package to the mock package manager. - * - * Example: - * addPackage("Email", new ComponentName("com.android.email", "com.android.email.MainView"), - * PackageManager.COMPONENT_ENABLED_STATE_ENABLED, - * PackageManager.COMPONENT_ENABLED_STATE_ENABLED); - * - * @param title the user-friendly title of the application (this is what - * users will search for) - * @param componentName The full component name of the app. - * @param appEnabledSetting The setting which should be returned from - * {@link #getApplicationEnabledSetting}, for this component's package. - * @param componentEnabledSetting The setting which should be returned from - * {@link #getComponentEnabledSetting}, for this component. - */ - public void addPackage(final String title, ComponentName componentName, int appEnabledSetting, - int componentEnabledSetting) { - // Set the application's title. - ResolveInfo packageInfo = new ResolveInfo() { - @Override - public CharSequence loadLabel(PackageManager pm) { - return title; - } - }; - - // Set the application's ComponentName. - packageInfo.activityInfo = new ActivityInfo(); - packageInfo.activityInfo.name = componentName.getClassName(); - packageInfo.activityInfo.applicationInfo = new ApplicationInfo(); - packageInfo.activityInfo.applicationInfo.packageName = componentName.getPackageName(); - - mPackages.add(packageInfo); - - mApplicationEnabledSettings.put(componentName.getPackageName(), appEnabledSetting); - mComponentEnabledSettings.put(componentName.flattenToString(), componentEnabledSetting); - } - - public void addPackage(final String title, ComponentName componentName) { - addPackage(title, componentName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, - PackageManager.COMPONENT_ENABLED_STATE_DEFAULT); - } -} |