summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk17
-rw-r--r--AndroidManifest.xml29
-rw-r--r--CleanSpec.mk49
-rw-r--r--MODULE_LICENSE_APACHE20
-rw-r--r--NOTICE190
-rw-r--r--res/layout/application_list_item.xml41
-rw-r--r--res/values-af/strings.xml23
-rw-r--r--res/values-am/strings.xml23
-rw-r--r--res/values-ar/strings.xml23
-rw-r--r--res/values-be/strings.xml23
-rw-r--r--res/values-bg/strings.xml23
-rw-r--r--res/values-ca/strings.xml23
-rw-r--r--res/values-cs/strings.xml23
-rw-r--r--res/values-da/strings.xml23
-rw-r--r--res/values-de/strings.xml23
-rw-r--r--res/values-el/strings.xml23
-rw-r--r--res/values-en-rGB/strings.xml23
-rw-r--r--res/values-es-rUS/strings.xml23
-rw-r--r--res/values-es/strings.xml23
-rw-r--r--res/values-et/strings.xml23
-rw-r--r--res/values-fa/strings.xml23
-rw-r--r--res/values-fi/strings.xml23
-rw-r--r--res/values-fr/strings.xml23
-rw-r--r--res/values-hi/strings.xml23
-rw-r--r--res/values-hr/strings.xml23
-rw-r--r--res/values-hu/strings.xml23
-rw-r--r--res/values-in/strings.xml23
-rw-r--r--res/values-it/strings.xml23
-rw-r--r--res/values-iw/strings.xml23
-rw-r--r--res/values-ja/strings.xml23
-rw-r--r--res/values-ko/strings.xml23
-rw-r--r--res/values-lt/strings.xml23
-rw-r--r--res/values-lv/strings.xml23
-rw-r--r--res/values-ms/strings.xml23
-rw-r--r--res/values-nb/strings.xml23
-rw-r--r--res/values-nl/strings.xml23
-rw-r--r--res/values-pl/strings.xml23
-rw-r--r--res/values-pt-rPT/strings.xml23
-rw-r--r--res/values-pt/strings.xml23
-rw-r--r--res/values-rm/strings.xml24
-rw-r--r--res/values-ro/strings.xml23
-rw-r--r--res/values-ru/strings.xml23
-rw-r--r--res/values-sk/strings.xml23
-rw-r--r--res/values-sl/strings.xml23
-rw-r--r--res/values-sr/strings.xml23
-rw-r--r--res/values-sv/strings.xml23
-rw-r--r--res/values-sw/strings.xml23
-rw-r--r--res/values-th/strings.xml23
-rw-r--r--res/values-tl/strings.xml23
-rw-r--r--res/values-tr/strings.xml23
-rw-r--r--res/values-uk/strings.xml23
-rw-r--r--res/values-vi/strings.xml23
-rw-r--r--res/values-zh-rCN/strings.xml23
-rw-r--r--res/values-zh-rTW/strings.xml23
-rw-r--r--res/values-zu/strings.xml23
-rw-r--r--res/values/strings.xml31
-rw-r--r--res/xml/searchable.xml24
-rw-r--r--src/com/android/providers/applications/ApplicationLauncher.java103
-rw-r--r--src/com/android/providers/applications/ApplicationsAdapter.java70
-rw-r--r--src/com/android/providers/applications/ApplicationsProvider.java702
-rw-r--r--tests/Android.mk18
-rw-r--r--tests/AndroidManifest.xml28
-rw-r--r--tests/runtests6
-rw-r--r--tests/src/com/android/providers/applications/ApplicationsProviderForTesting.java108
-rw-r--r--tests/src/com/android/providers/applications/ApplicationsProviderTest.java305
-rw-r--r--tests/src/com/android/providers/applications/MockActivityManager.java42
-rw-r--r--tests/src/com/android/providers/applications/MockPackageManager.java101
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
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index c5b1efa..0000000
--- a/NOTICE
+++ /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);
- }
-}