diff options
35 files changed, 0 insertions, 2602 deletions
diff --git a/Android.mk b/Android.mk deleted file mode 100644 index 1362d039..00000000 --- a/Android.mk +++ /dev/null @@ -1,11 +0,0 @@ -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_MODULE_TAGS := user development - -LOCAL_SRC_FILES := $(call all-subdir-java-files) - -LOCAL_PACKAGE_NAME := PackageInstaller -LOCAL_CERTIFICATE := platform - -include $(BUILD_PACKAGE) diff --git a/AndroidManifest.xml b/AndroidManifest.xml deleted file mode 100644 index 303897ad..00000000 --- a/AndroidManifest.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.packageinstaller"> - <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> - <uses-permission android:name="android.permission.DELETE_PACKAGES" /> - <uses-permission android:name="android.permission.CLEAR_APP_CACHE" /> - <uses-permission android:name="android.permission.READ_PHONE_STATE" /> - <application android:label="@string/app_name"> - <activity android:name=".PackageInstallerActivity"> - <intent-filter> - <action android:name="android.intent.action.VIEW" /> - <category android:name="android.intent.category.DEFAULT" /> - <data android:scheme="content" /> - <data android:scheme="file" /> - <data android:mimeType="application/vnd.android.package-archive" /> - </intent-filter> - </activity> - <activity android:name=".InstallAppConfirmation"> - </activity> - <activity android:name=".InstallAppProgress"> - </activity> - <activity android:name=".InstallAppDone"> - </activity> - <activity android:name=".UninstallerActivity"> - <intent-filter> - <action android:name="android.intent.action.VIEW" /> - <action android:name="android.intent.action.DELETE" /> - <category android:name="android.intent.category.DEFAULT" /> - <data android:scheme="package" /> - </intent-filter> - </activity> - <activity android:name=".UninstallAppProgress"> - </activity> - <activity android:name=".UninstallAppDone"> - </activity> - </application> -</manifest> diff --git a/MODULE_LICENSE_APACHE2 b/MODULE_LICENSE_APACHE2 deleted file mode 100644 index e69de29b..00000000 --- a/MODULE_LICENSE_APACHE2 +++ /dev/null diff --git a/NOTICE b/NOTICE deleted file mode 100644 index c5b1efa7..00000000 --- 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/drawable/button_indicator_finish.png b/res/drawable/button_indicator_finish.png Binary files differdeleted file mode 100755 index 5a01bcc4..00000000 --- a/res/drawable/button_indicator_finish.png +++ /dev/null diff --git a/res/layout/app_details.xml b/res/layout/app_details.xml deleted file mode 100755 index 3ea84309..00000000 --- a/res/layout/app_details.xml +++ /dev/null @@ -1,52 +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. ---> - -<!-- -Defines the layout of the application snippet that appears on top of the -installation screens ---> -<!-- The snippet about the application - title, icon, description. --> -<RelativeLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/app_snippet" - android:layout_width="fill_parent" - android:layout_height="65dip" - android:background="@color/title_background"> - <ImageView android:id="@+id/app_icon" - android:paddingLeft="6dip" - android:layout_width="54dip" - android:layout_height="48dip" - android:background="@color/transparent" - android:layout_alignParentLeft="true" - android:gravity="center" - android:layout_centerInParent="true" - android:scaleType="centerCrop" /> - <TextView android:id="@+id/app_name" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceLarge" - android:textColor="?android:attr/textColorPrimary" - android:shadowColor="@color/shadow" - android:shadowRadius="2" - android:layout_toRightOf="@id/app_icon" - android:singleLine="true" - android:gravity="center" - android:layout_centerInParent="true" - android:paddingRight="6dip" - android:paddingLeft="6dip" - android:ellipsize="end"/> -</RelativeLayout> - diff --git a/res/layout/install_confirm.xml b/res/layout/install_confirm.xml deleted file mode 100755 index bc4fde2a..00000000 --- a/res/layout/install_confirm.xml +++ /dev/null @@ -1,108 +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. ---> - -<!-- - - Defines the layout of the splash screen that displays the security - settings required for an application and requests the confirmation of the - user before it is installed. ---> - -<ScrollView - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:fillViewport="true" - android:background="@color/view_background"> - - <LinearLayout - android:id="@+id/all_details" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:orientation="vertical"> - - <include - layout="@layout/app_details" - android:id="@+id/app_snippet"/> - <TextView - android:id="@+id/install_confirm_question" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="1.0" - android:text="@string/install_confirm_question" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textColor="?android:attr/textColorSecondary" - android:paddingTop="20dip" - android:paddingLeft="20dip" - android:paddingBottom="20dip"/> - - <!-- Security settings description. --> - <LinearLayout - android:id="@+id/permissions_section" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - <TextView - android:id="@+id/security_settings_desc" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textColor="?android:attr/textColorSecondary" - android:paddingTop="20dip" - android:paddingLeft="20dip" - android:paddingBottom="20dip"/> - - <LinearLayout - android:id="@+id/security_settings_list" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_weight="1.0" - android:orientation="vertical"/> - </LinearLayout> - - <!-- OK confirm and cancel buttons. --> - <LinearLayout - android:background="@color/title_background" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:gravity="bottom" - android:orientation="horizontal"> - <Button - android:id="@+id/ok_button" - android:text="@string/install" - android:layout_width="150dip" - android:paddingLeft="6dip" - android:layout_gravity="left" - android:layout_weight="0.4" - android:layout_height="wrap_content"/> - <!-- Spacer --> - <View - android:id="@+id/buttons_spacer_left" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:visibility="gone" - android:layout_weight="0.2" /> - <Button - android:id="@+id/cancel_button" - android:layout_width="150dip" - android:paddingRight="6dip" - android:layout_gravity="right" - android:text="@string/cancel" - android:layout_weight="0.4" - android:layout_height="wrap_content"/> - </LinearLayout> - </LinearLayout> -</ScrollView> diff --git a/res/layout/install_done.xml b/res/layout/install_done.xml deleted file mode 100755 index e33f57b7..00000000 --- a/res/layout/install_done.xml +++ /dev/null @@ -1,71 +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. ---> - -<RelativeLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="fill_parent" - android:layout_height="fill_parent"> - - <include - layout="@layout/app_details" - android:gravity="top" - android:id="@+id/app_snippet" /> - <TextView - android:id="@+id/center_text" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:paddingLeft="20dip" - android:paddingTop="36dip" - android:drawablePadding="6dip" - android:layout_below="@id/app_snippet" - android:textColor="?android:attr/textColorSecondary" - android:textAppearance="?android:attr/textAppearanceMedium"/> - - <!-- Launch and close buttons. --> - <LinearLayout - android:background="@color/title_background" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_alignParentBottom="true" - android:orientation="horizontal"> - <Button - android:id="@+id/launch_button" - android:text="@string/launch" - android:layout_width="150dip" - android:paddingLeft="6dip" - android:layout_gravity="left" - android:layout_weight="0.4" - android:layout_height="wrap_content"/> - <!-- Spacer --> - <View - android:id="@+id/buttons_spacer_left" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:visibility="gone" - android:layout_weight="0.2" /> - <Button - android:id="@+id/done_button" - android:layout_width="150dip" - android:paddingRight="6dip" - android:layout_gravity="right" - android:text="@string/done" - android:layout_weight="0.4" - android:layout_height="wrap_content"/> - </LinearLayout> - -</RelativeLayout> - - diff --git a/res/layout/install_start.xml b/res/layout/install_start.xml deleted file mode 100755 index 1ef0ab5d..00000000 --- a/res/layout/install_start.xml +++ /dev/null @@ -1,27 +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. ---> - -<RelativeLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="fill_parent" - android:layout_height="fill_parent"> - - <include - layout="@layout/app_details" - android:id="@+id/app_snippet"/> -</RelativeLayout> - - diff --git a/res/layout/op_progress.xml b/res/layout/op_progress.xml deleted file mode 100755 index b957fdf7..00000000 --- a/res/layout/op_progress.xml +++ /dev/null @@ -1,46 +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. ---> - -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" - android:layout_width="fill_parent" - android:layout_height="wrap_content"> - - <include - layout="@layout/app_details" - android:id="@+id/app_snippet"/> - <ProgressBar - android:id="@+id/progress_bar" - style="?android:attr/progressBarStyleHorizontal" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:paddingTop="24dip" - android:paddingLeft="24dip" - android:paddingRight="24dip" - android:max="100" /> - <TextView - android:id="@+id/center_text" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:paddingLeft="24dip" - android:paddingTop="16dip" - android:text="@string/installing" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textColor="?android:attr/textColorSecondary"/> -</LinearLayout> - - diff --git a/res/layout/uninstall_confirm.xml b/res/layout/uninstall_confirm.xml deleted file mode 100755 index 62bd1544..00000000 --- a/res/layout/uninstall_confirm.xml +++ /dev/null @@ -1,91 +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. ---> - -<!-- - - Defines the layout of the confirmation screen that gets displayed when an - application is about to be uninstalled. Includes ok and cancel buttons - to let the uinstallation continue or abort. ---> - -<RelativeLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:background="@color/view_background"> - - <!-- The snippet about the application - title, icon, description. --> - <include - layout="@layout/app_details" - android:layout_alignParentTop="true" - android:id="@+id/app_snippet" /> - - <!-- uninstall application confirmation question --> - <TextView - android:id="@+id/uninstall_question" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:text="@string/uninstall_application_question" - android:textStyle="bold" - android:paddingTop="16dip" - android:paddingLeft="16dip" - android:layout_below="@id/app_snippet" - android:textColor="?android:attr/textColorSecondary" - android:textAppearance="?android:attr/textAppearanceMedium" - android:paddingBottom="36dip"/> - - <!-- uninstall application confirmation text --> - <TextView - android:id="@+id/uninstall_confirm_text" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:text="@string/uninstall_application_text" - android:textColor="?android:attr/textColorSecondary" - android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_below="@id/uninstall_question" - android:paddingLeft="16dip"/> - <!-- OK confirm and cancel buttons. --> - <LinearLayout - android:background="@color/title_background" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_alignParentBottom="true" - android:orientation="horizontal"> - <Button - android:id="@+id/ok_button" - android:text="@string/ok" - android:layout_width="150dip" - android:paddingLeft="6dip" - android:layout_gravity="left" - android:layout_weight="0.4" - android:layout_height="wrap_content"/> - <!-- Spacer --> - <View - android:id="@+id/buttons_spacer_left" - android:layout_width="0dip" - android:layout_height="wrap_content" - android:visibility="gone" - android:layout_weight="0.2" /> - <Button - android:id="@+id/cancel_button" - android:layout_width="150dip" - android:paddingRight="6dip" - android:layout_gravity="right" - android:text="@string/cancel" - android:layout_weight="0.4" - android:layout_height="wrap_content"/> - </LinearLayout> -</RelativeLayout> diff --git a/res/layout/uninstall_done.xml b/res/layout/uninstall_done.xml deleted file mode 100755 index 082d48b5..00000000 --- a/res/layout/uninstall_done.xml +++ /dev/null @@ -1,62 +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. ---> - -<RelativeLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="fill_parent" - android:layout_height="fill_parent"> - - <LinearLayout - android:id="@+id/top_box" - android:background="@color/title_background" - android:layout_width="fill_parent" - android:layout_height="65dip" - android:layout_alignParentTop="true"/> - - <TextView - android:id="@+id/center_text" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_centerHorizontal="true" - android:paddingTop="60dip" - android:textColor="?android:attr/textColorSecondary" - android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_below="@id/top_box"/> - <!-- OK confirm and cancel buttons. --> - <!-- LinearLayout - android:background="@color/title_background" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_alignParentBottom="true" - android:orientation="horizontal" --> - - <RelativeLayout - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:background="@color/title_background" - android:layout_alignParentBottom="true"> - - <Button - android:id="@+id/ok_button" - android:paddingRight="6dip" - android:layout_alignParentRight="true" - android:text="@string/ok" - android:layout_width="150dip" - android:layout_height="wrap_content"/> - </RelativeLayout> -</RelativeLayout> - - diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml deleted file mode 100644 index c76ddff1..00000000 --- a/res/values-cs/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"Nástroj na instalaci balíčků"</string> - <string name="install">"Instalovat"</string> - <string name="done">"Hotovo"</string> - <string name="security_settings_desc">"Povolit této aplikaci:"</string> - <string name="cancel">"Zrušit"</string> - <string name="unknown">"Neznámé"</string> - <string name="installing">"Instalace..."</string> - <string name="install_done">"Aplikace byla nainstalována"</string> - <string name="install_confirm_question">"Chcete tuto aplikaci nainstalovat?"</string> - <string name="install_failed">"Instalace aplikace se nezdařila"</string> - <string name="launch">"Otevřít"</string> - <string name="unknown_apps_dlg_title">"Instalace byla zablokována"</string> - <string name="unknown_apps_dlg_text">"Váš telefon je z důvodu zabezpečení nastaven tak, aby blokoval instalaci aplikací, které nepocházejí z webu Android Market."</string> - <string name="ok">"OK"</string> - <string name="settings">"Nastavení"</string> - <string name="manage_applications">"Správa aplikací"</string> - <string name="dlg_app_replacement_title">"Nahradit aplikaci"</string> - <string name="dlg_app_replacement_statement">"Aplikace, kterou instalujete, nahradí jinou aplikaci."\n\n"Všechna dříve zadaná data uživatelů budou uložena."</string> - <string name="out_of_space_dlg_title">"Nedostatek místa"</string> - <string name="out_of_space_dlg_text">"Aplikaci <xliff:g id="APP_NAME">%1$s</xliff:g> nebylo možné zobrazit. Uvolněte v telefonu nějaké místo a zkuste to znovu."</string> - <string name="dlg_ok">"OK"</string> - <string name="app_not_found_dlg_title">"Aplikace nebyla nalezena"</string> - <string name="app_not_found_dlg_text">"Aplikace nebyla nalezena na seznamu nainstalovaných aplikací."</string> - <string name="uninstall_application_question">"Odinstalovat aplikaci?"</string> - <string name="uninstall_application_text">"Tato aplikace bude odstraněna z vašeho telefonu."</string> - <string name="uninstalling">"Probíhá odinstalace..."</string> - <string name="uninstall_done">"Odinstalace byla dokončena."</string> - <string name="uninstall_failed">"Odinstalace aplikace se nezdařila."</string> - <string name="Parse_error_dlg_title">"Chyba analýzy"</string> - <string name="Parse_error_dlg_text">"Při analýze balíčku došlo k problému."</string> -</resources> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml deleted file mode 100644 index 1e5607e2..00000000 --- a/res/values-de/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"Paket-Installer"</string> - <string name="install">"Installieren"</string> - <string name="done">"Fertig"</string> - <string name="security_settings_desc">"Folgendes auf dieser Anwendung zulassen:"</string> - <string name="cancel">"Abbrechen"</string> - <string name="unknown">"Unbekannt"</string> - <string name="installing">"Installation..."</string> - <string name="install_done">"Anwendung installiert"</string> - <string name="install_confirm_question">"Möchten Sie diese Anwendung installieren?"</string> - <string name="install_failed">"Installation der Anwendung nicht erfolgreich"</string> - <string name="launch">"Öffnen"</string> - <string name="unknown_apps_dlg_title">"Installation gesperrt"</string> - <string name="unknown_apps_dlg_text">"Aus Sicherheitsgründen ist Ihr Telefon so eingestellt, dass die Installation von Nicht-Android Market-Anwendungen gesperrt ist."</string> - <string name="ok">"OK"</string> - <string name="settings">"Einstellungen"</string> - <string name="manage_applications">"Anwendungen verwalten"</string> - <string name="dlg_app_replacement_title">"Anwendung ersetzen"</string> - <string name="dlg_app_replacement_statement">"Die zu installierende Anwendung ersetzt eine andere Anwendung."\n\n"Alle vorhandenen Nutzerdaten werden gespeichert."</string> - <string name="out_of_space_dlg_title">"Kein freier Speicher vorhanden"</string> - <string name="out_of_space_dlg_text">"<xliff:g id="APP_NAME">%1$s</xliff:g> konnte nicht geprüft werden. Bereinigen Sie den Speicher Ihres Telefons und versuchen Sie es erneut."</string> - <string name="dlg_ok">"OK"</string> - <string name="app_not_found_dlg_title">"Anwendung nicht gefunden"</string> - <string name="app_not_found_dlg_text">"Diese Anwendung wurde in der Liste der installierten Anwendungen nicht gefunden."</string> - <string name="uninstall_application_question">"Anwendung deinstallieren?"</string> - <string name="uninstall_application_text">"Diese Anwendung wird von Ihrem Telefon entfernt."</string> - <string name="uninstalling">"Deinstallation..."</string> - <string name="uninstall_done">"Deinstallation abgeschlossen!"</string> - <string name="uninstall_failed">"Deinstallierung der Anwendung fehlgeschlagen"</string> - <string name="Parse_error_dlg_title">"Parsingfehler"</string> - <string name="Parse_error_dlg_text">"Beim Parsen des Pakets ist ein Problem aufgetreten."</string> -</resources> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml deleted file mode 100644 index d3403aef..00000000 --- a/res/values-es/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"Instalador de paquetes"</string> - <string name="install">"Instalar"</string> - <string name="done">"Hecho"</string> - <string name="security_settings_desc">"Permitir a esta aplicación:"</string> - <string name="cancel">"Cancelar"</string> - <string name="unknown">"Desconocida"</string> - <string name="installing">"Instalando…"</string> - <string name="install_done">"Aplicación instalada"</string> - <string name="install_confirm_question">"¿Quieres instalar esta aplicación?"</string> - <string name="install_failed">"La aplicación no se instaló correctamente."</string> - <string name="launch">"Abierta"</string> - <string name="unknown_apps_dlg_title">"Instalación bloqueada"</string> - <string name="unknown_apps_dlg_text">"Por motivos de seguridad, tu teléfono se ha configurado para bloquear la instalación de aplicaciones que no pertenecen a Android Market."</string> - <string name="ok">"Aceptar"</string> - <string name="settings">"Configuración"</string> - <string name="manage_applications">"Administrar aplicaciones"</string> - <string name="dlg_app_replacement_title">"Sustituir aplicación"</string> - <string name="dlg_app_replacement_statement">"La aplicación que quieres instalar sustituirá a otra aplicación."\n\n"Se guardarán todos los datos de usuarios anteriores."</string> - <string name="out_of_space_dlg_title">"Sin espacio"</string> - <string name="out_of_space_dlg_text">"No se ha podido ver el archivo <xliff:g id="APP_NAME">%1$s</xliff:g>. Libera espacio en el teléfono e inténtalo de nuevo."</string> - <string name="dlg_ok">"Aceptar"</string> - <string name="app_not_found_dlg_title">"No se ha encontrado la aplicación."</string> - <string name="app_not_found_dlg_text">"No se ha encontrado la aplicación en la lista de aplicaciones instaladas."</string> - <string name="uninstall_application_question">"Desinstalar aplicación?"</string> - <string name="uninstall_application_text">"Esta aplicación se eliminará de tu teléfono."</string> - <string name="uninstalling">"Desinstalando..."</string> - <string name="uninstall_done">"Desinstalación completada"</string> - <string name="uninstall_failed">"No se ha podido desinstalar la aplicación."</string> - <string name="Parse_error_dlg_title">"Error de análisis"</string> - <string name="Parse_error_dlg_text">"Se ha producido un problema al analizar el paquete."</string> -</resources> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml deleted file mode 100644 index f79724be..00000000 --- a/res/values-fr/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"Programme d\'installation du kit"</string> - <string name="install">"Installer"</string> - <string name="done">"Terminé"</string> - <string name="security_settings_desc">"Autoriser cette application à :"</string> - <string name="cancel">"Annuler"</string> - <string name="unknown">"Inconnu"</string> - <string name="installing">"Installation..."</string> - <string name="install_done">"Application installée"</string> - <string name="install_confirm_question">"Voulez-vous installer cette application ?"</string> - <string name="install_failed">"Échec de l\'installation de l\'application"</string> - <string name="launch">"Ouvrir"</string> - <string name="unknown_apps_dlg_title">"Installation bloquée"</string> - <string name="unknown_apps_dlg_text">"Pour plus de sécurité, votre téléphone est configuré de sorte à bloquer l\'installation des applications ne provenant pas d\'Android Market."</string> - <string name="ok">"OK"</string> - <string name="settings">"Paramètres"</string> - <string name="manage_applications">"Gérer les applications"</string> - <string name="dlg_app_replacement_title">"Remplacer l\'application"</string> - <string name="dlg_app_replacement_statement">"L\'application que vous installez actuellement remplacera l\'autre application."\n\n"Toutes les données d\'utilisateur existantes seront enregistrées."</string> - <string name="out_of_space_dlg_title">"Mémoire insuffisante"</string> - <string name="out_of_space_dlg_text">"Impossible d\'afficher <xliff:g id="APP_NAME">%1$s</xliff:g>. Libérez de l\'espace sur votre téléphone, puis réessayez."</string> - <string name="dlg_ok">"OK"</string> - <string name="app_not_found_dlg_title">"Application introuvable"</string> - <string name="app_not_found_dlg_text">"Cette application ne figure pas dans la liste des applications installées."</string> - <string name="uninstall_application_question">"Désinstaller l\'application ?"</string> - <string name="uninstall_application_text">"Cette application va être supprimée de votre téléphone."</string> - <string name="uninstalling">"Désinstallation..."</string> - <string name="uninstall_done">"Désinstallation terminée !"</string> - <string name="uninstall_failed">"Échec de la désinstallation de l\'application"</string> - <string name="Parse_error_dlg_title">"Erreur d\'analyse"</string> - <string name="Parse_error_dlg_text">"Un problème est survenu lors de l\'analyse du kit."</string> -</resources> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml deleted file mode 100644 index 033ce34f..00000000 --- a/res/values-it/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"Installazione pacchetti"</string> - <string name="install">"Installa"</string> - <string name="done">"Fine"</string> - <string name="security_settings_desc">"Consenti all\'applicazione di:"</string> - <string name="cancel">"Annulla"</string> - <string name="unknown">"Sconosciuto"</string> - <string name="installing">"Installazione..."</string> - <string name="install_done">"Applicazione installata"</string> - <string name="install_confirm_question">"Installare questa applicazione?"</string> - <string name="install_failed">"Installazione applicazione non riuscita"</string> - <string name="launch">"Apri"</string> - <string name="unknown_apps_dlg_title">"Installazione bloccata"</string> - <string name="unknown_apps_dlg_text">"Per motivi di sicurezza, il telefono è impostato per bloccare l\'installazione di applicazioni non provenienti da Android Market."</string> - <string name="ok">"OK"</string> - <string name="settings">"Impostazioni"</string> - <string name="manage_applications">"Gestisci applicazioni"</string> - <string name="dlg_app_replacement_title">"Sostituisci applicazione"</string> - <string name="dlg_app_replacement_statement">"L\'applicazione da installare sostituirà un\'altra applicazione."\n\n"Tutti i dati utente precedenti verranno salvati."</string> - <string name="out_of_space_dlg_title">"Spazio esaurito"</string> - <string name="out_of_space_dlg_text">"Impossibile visualizzare <xliff:g id="APP_NAME">%1$s</xliff:g>. Libera spazio sul telefono e riprova."</string> - <string name="dlg_ok">"OK"</string> - <string name="app_not_found_dlg_title">"Applicazione non trovata"</string> - <string name="app_not_found_dlg_text">"Impossibile trovare l\'applicazione \nnell\'elenco di applicazioni installate."</string> - <string name="uninstall_application_question">"Disinstallare l\'applicazione?"</string> - <string name="uninstall_application_text">"L\'applicazione verrà rimossa dal telefono."</string> - <string name="uninstalling">"Disinstallazione..."</string> - <string name="uninstall_done">"Disinstallazione completa."</string> - <string name="uninstall_failed">"Disinstallazione dell\'applicazione non riuscita"</string> - <string name="Parse_error_dlg_title">"Errore di analisi"</string> - <string name="Parse_error_dlg_text">"Errore durante l\'analisi del pacchetto."</string> -</resources> diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml deleted file mode 100644 index 1d4d6323..00000000 --- a/res/values-ja/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"パッケージインストーラ"</string> - <string name="install">"インストール"</string> - <string name="done">"完了"</string> - <string name="security_settings_desc">"このアプリケーションに許可する権限:"</string> - <string name="cancel">"キャンセル"</string> - <string name="unknown">"不明"</string> - <string name="installing">"インストール中..."</string> - <string name="install_done">"アプリケーションをインストールしました"</string> - <string name="install_confirm_question">"このアプリケーションをインストールしますか?"</string> - <string name="install_failed">"アプリケーションをインストールできませんでした"</string> - <string name="launch">"開く"</string> - <string name="unknown_apps_dlg_title">"インストールはブロックされました"</string> - <string name="unknown_apps_dlg_text">"セキュリティ保護のため、お使いの端末はAndroid Market以外から提供されたアプリケーションのインストールをブロックするよう設定されています。"</string> - <string name="ok">"OK"</string> - <string name="settings">"設定"</string> - <string name="manage_applications">"アプリケーションを管理"</string> - <string name="dlg_app_replacement_title">"アプリケーションを更新"</string> - <string name="dlg_app_replacement_statement">"このアプリケーションをインストールすると別のアプリケーションが上書きされます。"\n\n"過去のユーザーデータはすべて保存されます。"</string> - <string name="out_of_space_dlg_title">"容量不足です"</string> - <string name="out_of_space_dlg_text">"<xliff:g id="APP_NAME">%1$s</xliff:g>を表示できませんでした。端末の空き領域を増やしてもう一度試してください。"</string> - <string name="dlg_ok">"OK"</string> - <string name="app_not_found_dlg_title">"アプリケーションが見つかりません"</string> - <string name="app_not_found_dlg_text">"インストール済みアプリケーションのリストに、このアプリケーションはありません。"</string> - <string name="uninstall_application_question">"アプリケーションをアンインストールしますか?"</string> - <string name="uninstall_application_text">"このアプリケーションはお使いの端末から削除されます。"</string> - <string name="uninstalling">"アンインストール中..."</string> - <string name="uninstall_done">"アンインストールが完了しました。"</string> - <string name="uninstall_failed">"アプリケーションをアンインストールできませんでした"</string> - <string name="Parse_error_dlg_title">"解析エラー"</string> - <string name="Parse_error_dlg_text">"パッケージの解析中に問題が発生しました。"</string> -</resources> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml deleted file mode 100644 index 2c151e8f..00000000 --- a/res/values-ko/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"패키지 설치 프로그램"</string> - <string name="install">"설치"</string> - <string name="done">"완료"</string> - <string name="security_settings_desc">"이 응용프로그램에 다음을 수행할 권한을 부여:"</string> - <string name="cancel">"취소"</string> - <string name="unknown">"알 수 없음"</string> - <string name="installing">"설치 중..."</string> - <string name="install_done">"응용프로그램이 설치되었습니다."</string> - <string name="install_confirm_question">"이 응용프로그램을 설치하시겠습니까?"</string> - <string name="install_failed">"응용프로그램 설치에 실패했습니다."</string> - <string name="launch">"열기"</string> - <string name="unknown_apps_dlg_title">"설치가 차단됨"</string> - <string name="unknown_apps_dlg_text">"보안을 위해 전화기가 Android Market에서 제공하지 않은 응용프로그램의 설치를 차단하도록 설정되어 있습니다."</string> - <string name="ok">"확인"</string> - <string name="settings">"설정"</string> - <string name="manage_applications">"응용프로그램 관리"</string> - <string name="dlg_app_replacement_title">"응용프로그램 교체"</string> - <string name="dlg_app_replacement_statement">"설치 중인 응용프로그램이 다른 응용프로그램을 대체합니다."\n\n"이전의 모든 사용자 데이터는 저장됩니다.\n."</string> - <string name="out_of_space_dlg_title">"여유 공간이 없음"</string> - <string name="out_of_space_dlg_text">"<xliff:g id="APP_NAME">%1$s</xliff:g>을(를) 볼 수 없습니다. 전화기에서 여유 공간을 늘린 후에 다시 시도하세요."</string> - <string name="dlg_ok">"확인"</string> - <string name="app_not_found_dlg_title">"응용프로그램을 찾지 못했습니다."</string> - <string name="app_not_found_dlg_text">"응용프로그램이 설치된 응용프로그램 목록에 없습니다."</string> - <string name="uninstall_application_question">"응용프로그램을 제거하시겠습니까?"</string> - <string name="uninstall_application_text">"전화기에서 이 응용프로그램이 삭제됩니다."</string> - <string name="uninstalling">"제거 중..."</string> - <string name="uninstall_done">"제거가 완료되었습니다."</string> - <string name="uninstall_failed">"응용프로그램 제거에 실패했습니다."</string> - <string name="Parse_error_dlg_title">"구문 분석 오류"</string> - <string name="Parse_error_dlg_text">"패키지를 구문 분석하는 중 문제가 발생했습니다."</string> -</resources> diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml deleted file mode 100644 index d00f8f2d..00000000 --- a/res/values-nb/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"Pakkeinstallering"</string> - <string name="install">"Installer"</string> - <string name="done">"Ferdig"</string> - <string name="security_settings_desc">"La denne applikasjonen:"</string> - <string name="cancel">"Avbryt"</string> - <string name="unknown">"Ukjent"</string> - <string name="installing">"Installerer…"</string> - <string name="install_done">"Applikasjon installert"</string> - <string name="install_confirm_question">"Ønsker du å installere denne applikasjonen?"</string> - <string name="install_failed">"Installasjon vellykket"</string> - <string name="launch">"Åpne"</string> - <string name="unknown_apps_dlg_title">"Installasjonen ble blokkert"</string> - <string name="unknown_apps_dlg_text">"Av sikkerhetsgrunner er telefonen satt til å blokkere installasjon av applikasjoner som ikke kommer fra Android-markedet."</string> - <string name="ok">"OK"</string> - <string name="settings">"Innstillinger"</string> - <string name="manage_applications">"Administrer applikasjoner"</string> - <string name="dlg_app_replacement_title">"Erstatt applikasjon"</string> - <string name="dlg_app_replacement_statement">"Applikasjonen du installerer vil erstatte en annen applikasjon."\n\n"Alle eksisterende brukerdata vil bli lagret."</string> - <string name="out_of_space_dlg_title">"Tom for plass"</string> - <string name="out_of_space_dlg_text">"Kunne ikke vise <xliff:g id="APP_NAME">%1$s</xliff:g>. Frigjør plass på telefonen og prøv igjen."</string> - <string name="dlg_ok">"OK"</string> - <string name="app_not_found_dlg_title">"Fant ikke applikasjonen"</string> - <string name="app_not_found_dlg_text">"Fant ikke applikasjonen i listen over installerte applikasjoner."</string> - <string name="uninstall_application_question">"Avinstaller applikasjonen?"</string> - <string name="uninstall_application_text">"Applikasjonen vil bli fjernet fra telefonen."</string> - <string name="uninstalling">"Avinstallerer…"</string> - <string name="uninstall_done">"Avintallasjon fullført!"</string> - <string name="uninstall_failed">"Avinstallasjonen var mislykket"</string> - <string name="Parse_error_dlg_title">"Parsefeil"</string> - <string name="Parse_error_dlg_text">"Det oppsto et problem under tolkningen av pakken."</string> -</resources> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml deleted file mode 100644 index ece9b880..00000000 --- a/res/values-nl/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"Installatieprogramma van pakket"</string> - <string name="install">"Installeren"</string> - <string name="done">"Gereed"</string> - <string name="security_settings_desc">"Deze toepassing toestaan het volgende te doen:"</string> - <string name="cancel">"Annuleren"</string> - <string name="unknown">"Onbekend"</string> - <string name="installing">"Installeren..."</string> - <string name="install_done">"Toepassing is geïnstalleerd"</string> - <string name="install_confirm_question">"Wilt u deze toepassing installeren?"</string> - <string name="install_failed">"Installatie van toepassing is mislukt"</string> - <string name="launch">"Openen"</string> - <string name="unknown_apps_dlg_title">"De installatie is geblokkeerd"</string> - <string name="unknown_apps_dlg_text">"Voor de veiligheid is uw telefoon ingesteld op het blokkeren van de installatie van toepassingen die niet in Android Market zijn opgenomen."</string> - <string name="ok">"OK"</string> - <string name="settings">"Instellingen"</string> - <string name="manage_applications">"Toepassingen beheren"</string> - <string name="dlg_app_replacement_title">"Toepassing vervangen"</string> - <string name="dlg_app_replacement_statement">"De toepassing die u installeert, vervangt een andere toepassing."\n\n"Alle bestaande gebruikersgegevens worden opgeslagen."</string> - <string name="out_of_space_dlg_title">"Geen ruimte beschikbaar"</string> - <string name="out_of_space_dlg_text">"<xliff:g id="APP_NAME">%1$s</xliff:g> kan niet worden weergegeven. Maak ruimte vrij op uw telefoon en probeer het opnieuw."</string> - <string name="dlg_ok">"OK"</string> - <string name="app_not_found_dlg_title">"Toepassing niet gevonden"</string> - <string name="app_not_found_dlg_text">"De toepassing is niet gevonden in de lijst met geïnstalleerde toepassingen."</string> - <string name="uninstall_application_question">"Toepassing verwijderen?"</string> - <string name="uninstall_application_text">"Deze toepassing wordt verwijderd van uw telefoon."</string> - <string name="uninstalling">"Verwijderen..."</string> - <string name="uninstall_done">"Verwijdering voltooid."</string> - <string name="uninstall_failed">"Verwijderen van toepassing is mislukt"</string> - <string name="Parse_error_dlg_title">"Parseerfout"</string> - <string name="Parse_error_dlg_text">"Er is een probleem opgetreden bij het parseren van het pakket."</string> -</resources> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml deleted file mode 100644 index 6f8d7bc1..00000000 --- a/res/values-pl/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"Instalator pakietu"</string> - <string name="install">"Instaluj"</string> - <string name="done">"Gotowe"</string> - <string name="security_settings_desc">"Zezwalaj tej aplikacji na:"</string> - <string name="cancel">"Anuluj"</string> - <string name="unknown">"Nieznane"</string> - <string name="installing">"Instalowanie..."</string> - <string name="install_done">"Aplikacja została zainstalowana"</string> - <string name="install_confirm_question">"Czy zainstalować tę aplikację?"</string> - <string name="install_failed">"Instalacja aplikacji nie powiodła się"</string> - <string name="launch">"Otwórz"</string> - <string name="unknown_apps_dlg_title">"Instalowanie zablokowane"</string> - <string name="unknown_apps_dlg_text">"Ze względów bezpieczeństwa telefon jest ustawiony tak, aby blokować instalowanie aplikacji niepochodzących z katalogu Android Market."</string> - <string name="ok">"OK"</string> - <string name="settings">"Ustawienia"</string> - <string name="manage_applications">"Zarządzaj aplikacjami"</string> - <string name="dlg_app_replacement_title">"Zastąp aplikację"</string> - <string name="dlg_app_replacement_statement">"Instalowana aplikacja zastąpi inną aplikację."\n\n"Wszystkie poprzednie dane użytkownika zostaną zachowane."</string> - <string name="out_of_space_dlg_title">"Brak miejsca"</string> - <string name="out_of_space_dlg_text">"Nie można wyświetlić <xliff:g id="APP_NAME">%1$s</xliff:g>. Zwolnij miejsce w telefonie i spróbuj ponownie."</string> - <string name="dlg_ok">"OK"</string> - <string name="app_not_found_dlg_title">"Nie znaleziono aplikacji"</string> - <string name="app_not_found_dlg_text">"Nie znaleziono aplikacji na liście zainstalowanych aplikacji."</string> - <string name="uninstall_application_question">"Czy zdeinstalować aplikację?"</string> - <string name="uninstall_application_text">"Ta aplikacja zostanie usunięta z telefonu."</string> - <string name="uninstalling">"Deinstalowanie..."</string> - <string name="uninstall_done">"Zakończono deinstalowanie."</string> - <string name="uninstall_failed">"Deinstalowanie aplikacji nie powiodło się"</string> - <string name="Parse_error_dlg_title">"Błąd parsowania"</string> - <string name="Parse_error_dlg_text">"Wystąpił problem podczas parsowania pakietu."</string> -</resources> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml deleted file mode 100644 index b075dfbb..00000000 --- a/res/values-ru/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"Программа установки пакета"</string> - <string name="install">"Установить"</string> - <string name="done">"Готово"</string> - <string name="security_settings_desc">"Разрешить этому приложению:"</string> - <string name="cancel">"Отмена"</string> - <string name="unknown">"Неизвестно"</string> - <string name="installing">"Установка..."</string> - <string name="install_done">"Приложение установлено"</string> - <string name="install_confirm_question">"Установить это приложение?"</string> - <string name="install_failed">"Не удалось установить приложение."</string> - <string name="launch">"Открыть"</string> - <string name="unknown_apps_dlg_title">"Установка заблокирована"</string> - <string name="unknown_apps_dlg_text">"Из соображений безопасности на вашем телефоне заблокирована установка приложений, источником которых не является Android Маркет."</string> - <string name="ok">"ОК"</string> - <string name="settings">"Настройки"</string> - <string name="manage_applications">"Управлять приложениями"</string> - <string name="dlg_app_replacement_title">"Заменить приложение"</string> - <string name="dlg_app_replacement_statement">"Приложение, которое вы устанавливаете, заменит другое приложение."\n\n"Все пользовательские данные будут сохранены."</string> - <string name="out_of_space_dlg_title">"Недостаточно места"</string> - <string name="out_of_space_dlg_text">"Невозможно просмотреть <xliff:g id="APP_NAME">%1$s</xliff:g>. Освободите место в памяти телефона и повторите попытку."</string> - <string name="dlg_ok">"ОК"</string> - <string name="app_not_found_dlg_title">"Приложение не найдено"</string> - <string name="app_not_found_dlg_text">"Приложение не было найдено в списке установленных приложений."</string> - <string name="uninstall_application_question">"Удалить приложение?"</string> - <string name="uninstall_application_text">"Данное приложение будет удалено с вашего телефона."</string> - <string name="uninstalling">"Удаление..."</string> - <string name="uninstall_done">"Удаление завершено!"</string> - <string name="uninstall_failed">"Не удалось удалить приложение"</string> - <string name="Parse_error_dlg_title">"Синтаксическая ошибка"</string> - <string name="Parse_error_dlg_text">"При анализе пакета возникла проблема."</string> -</resources> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml deleted file mode 100644 index e7e109ad..00000000 --- a/res/values-zh-rCN/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"打包安装程序"</string> - <string name="install">"安装"</string> - <string name="done">"完成"</string> - <string name="security_settings_desc">"允许该应用程序:"</string> - <string name="cancel">"取消"</string> - <string name="unknown">"未知"</string> - <string name="installing">"正在安装..."</string> - <string name="install_done">"应用程序已安装"</string> - <string name="install_confirm_question">"是否要安装该应用程序?"</string> - <string name="install_failed">"应用程序安装失败"</string> - <string name="launch">"打开"</string> - <string name="unknown_apps_dlg_title">"禁止安装"</string> - <string name="unknown_apps_dlg_text">"为了安全起见,您的手机设置为禁止安装不是随 Android Market 提供的应用程序。"</string> - <string name="ok">"确定"</string> - <string name="settings">"设置"</string> - <string name="manage_applications">"管理应用程序"</string> - <string name="dlg_app_replacement_title">"替换应用程序"</string> - <string name="dlg_app_replacement_statement">"您正在安装的应用程序会替换其他应用程序。"\n\n"会保存所有以前的用户数据。"</string> - <string name="out_of_space_dlg_title">"空间不足"</string> - <string name="out_of_space_dlg_text">"无法查看<xliff:g id="APP_NAME">%1$s</xliff:g>。请释放部分手机空间,然后重试。"</string> - <string name="dlg_ok">"确定"</string> - <string name="app_not_found_dlg_title">"找不到应用程序"</string> - <string name="app_not_found_dlg_text">"在已安装应用程序的列表中找不到该应用程序。"</string> - <string name="uninstall_application_question">"是否卸载应用程序?"</string> - <string name="uninstall_application_text">"该应用程序会从您的手机中删除。"</string> - <string name="uninstalling">"正在卸载..."</string> - <string name="uninstall_done">"卸载完成!"</string> - <string name="uninstall_failed">"应用程序卸载失败"</string> - <string name="Parse_error_dlg_title">"解析错误"</string> - <string name="Parse_error_dlg_text">"解析包时出现问题。"</string> -</resources> diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml deleted file mode 100644 index 78e3c7ff..00000000 --- a/res/values-zh-rTW/strings.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- 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. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">"程式安裝器"</string> - <string name="install">"安裝"</string> - <string name="done">"完成"</string> - <string name="security_settings_desc">"允許此應用程式:"</string> - <string name="cancel">"取消"</string> - <string name="unknown">"未知"</string> - <string name="installing">"安裝中..."</string> - <string name="install_done">"已安裝的應用程式"</string> - <string name="install_confirm_question">"要安裝此應用程式嗎?"</string> - <string name="install_failed">"應用程式安裝失敗"</string> - <string name="launch">"開啟"</string> - <string name="unknown_apps_dlg_title">"安裝遭封鎖。"</string> - <string name="unknown_apps_dlg_text">"為維護安全,您的手機設定不會安裝非 Android Market 所提供的應用程式。"</string> - <string name="ok">"確定"</string> - <string name="settings">"設定"</string> - <string name="manage_applications">"管理應用程式"</string> - <string name="dlg_app_replacement_title">"取代應用程式"</string> - <string name="dlg_app_replacement_statement">"您所要安裝的應用程式將會取代其他的應用程式。"\n\n"將會儲存所有先前的使用者資料。"</string> - <string name="out_of_space_dlg_title">"空間不足"</string> - <string name="out_of_space_dlg_text">"無法檢視 <xliff:g id="APP_NAME">%1$s</xliff:g>。請先釋放手機上的部分空間,然後再試一次。"</string> - <string name="dlg_ok">"確定"</string> - <string name="app_not_found_dlg_title">"找不到應用程式"</string> - <string name="app_not_found_dlg_text">"已安裝的應用程式清單中沒有此應用程式。"</string> - <string name="uninstall_application_question">"要解除安裝應用程式嗎?"</string> - <string name="uninstall_application_text">"此應用程式將從您的手機中移除。"</string> - <string name="uninstalling">"解除安裝中..."</string> - <string name="uninstall_done">"解除安裝完成!"</string> - <string name="uninstall_failed">"應用程式解除安裝失敗"</string> - <string name="Parse_error_dlg_title">"剖析錯誤"</string> - <string name="Parse_error_dlg_text">"剖析程式時發生問題。"</string> -</resources> diff --git a/res/values/colors.xml b/res/values/colors.xml deleted file mode 100755 index 28e691b4..00000000 --- a/res/values/colors.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> - <color name="view_background">#1c1c1c</color> - <color name="title_background">#828282</color> - <color name="shadow">#cc222222</color> - <color name="transparent">#00000000</color> -</resources> - diff --git a/res/values/strings.xml b/res/values/strings.xml deleted file mode 100644 index ae155772..00000000 --- a/res/values/strings.xml +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- 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. ---> - -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_name">Package Installer</string> - <string name="install">Install</string> - <string name="done">Done</string> - <!-- TODO REMOVE LATER --> - <string name="security_settings_desc">Allow this application to:</string> - <string name="cancel">Cancel</string> - <string name="unknown">Unknown</string> - <string name="installing">Installing\u2026</string> - <string name="install_done">Application installed</string> - <string name="install_confirm_question">Do you want to install this application?</string> - <string name="install_failed">Application install unsuccessful</string> - <string name="launch">Open</string> - <string name="unknown_apps_dlg_title">Install blocked</string> - <string name="unknown_apps_dlg_text">For security, your phone is set to block installation of applications not sourced in Android Market.</string> - <string name="ok">OK</string> - <string name="settings">Settings</string> - <string name="manage_applications">Manage applications</string> - <string name="dlg_app_replacement_title">Replace application</string> - <string name="dlg_app_replacement_statement">The application you are installing will replace another application.\n\nAll previous user data will be saved.</string> - <string name="out_of_space_dlg_title">Out of space</string> - <string name="out_of_space_dlg_text"><xliff:g id="app_name">%1$s</xliff:g> could not be viewed. Free up some space on your phone and try again.</string> - <!-- strings related to uninstall activity --> - <string name="dlg_ok">OK</string> - <string name="app_not_found_dlg_title">Application not found</string> - <string name="app_not_found_dlg_text"> The application was not -found in the list of installed applications.</string> - <string name="uninstall_application_question">Uninstall application?</string> - <string name="uninstall_application_text">This application will be removed from your phone.</string> - <string name="uninstalling">Uninstalling\u2026</string> - <string name="uninstall_done">Uninstall finished!</string> - <string name="uninstall_failed">Application uninstall not successful</string> - - <!-- Dialog attributes to indicate parse errors --> - <string name="Parse_error_dlg_title">Parse Error</string> - <string name="Parse_error_dlg_text">There is a problem parsing the package.</string> -</resources> diff --git a/src/com/android/packageinstaller/InstallAppConfirmation.java b/src/com/android/packageinstaller/InstallAppConfirmation.java deleted file mode 100755 index fe7126b9..00000000 --- a/src/com/android/packageinstaller/InstallAppConfirmation.java +++ /dev/null @@ -1,126 +0,0 @@ -/* -** -** Copyright 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. -*/ -package com.android.packageinstaller; - -import com.android.packageinstaller.R; -import java.util.ArrayList; -import android.widget.AppSecurityPermissions; -import android.app.Activity; -import android.content.pm.PackageManager; -import android.content.pm.PackageParser; -import android.content.pm.PermissionInfo; -import android.content.Context; -import android.content.Intent; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManager.NameNotFoundException; -import android.net.Uri; -import android.os.Bundle; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.Window; -import android.widget.Button; -import android.widget.LinearLayout; -import android.widget.TextView; - -/** - * This activity corresponds to a confirmation screen that is displayed when the user tries - * to install an application bundled as an apk file. - * The intent that launches this activity should include the application information object - * of the application(to be installed) and a list of permission strings associated - * with the application. This information is displayed on the screen and installation is either - * continued or canceled based on the user response(click ok or cancel). - */ -public class InstallAppConfirmation extends Activity implements View.OnClickListener { - private final String TAG="InstallAppConfirmation"; - private boolean localLOGV = false; - private Button mOk; - private Button mCancel; - private ApplicationInfo mAppInfo; - private Uri mPkgURI; - private View mContentView; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - Intent intent = getIntent(); - if(localLOGV) Log.i(TAG, "intent="+intent); - mAppInfo = intent.getParcelableExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO); - mPkgURI = intent.getData(); - if(localLOGV) Log.i(TAG, "mAppInfo = "+mAppInfo); - initView(); - } - - public void initView() { - requestWindowFeature(Window.FEATURE_NO_TITLE); - String unknown = getString(R.string.unknown); - //set description - String desc = getString(R.string.security_settings_desc); - if(desc == null) { - desc = unknown; - } - LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); - mContentView = inflater.inflate(R.layout.install_confirm, null); - setContentView(mContentView); - //initialize views - PackageUtil.initAppSnippet(this, mAppInfo, R.id.app_snippet); - if(desc != null) { - ((TextView)findViewById(R.id.security_settings_desc)).setText(desc); - } - - - LinearLayout permsView = (LinearLayout) mContentView.findViewById( - R.id.permissions_section); - boolean permVisible = false; - PackageParser.Package pkg = PackageUtil.getPackageInfo(mPkgURI); - if(pkg != null) { - AppSecurityPermissions asp = new AppSecurityPermissions(this, pkg); - if(asp.getPermissionCount() > 0) { - permVisible = true; - permsView.setVisibility(View.VISIBLE); - LinearLayout securityList = (LinearLayout) permsView.findViewById( - R.id.security_settings_list); - securityList.addView(asp.getPermissionsView()); - } - } - if(!permVisible){ - permsView.setVisibility(View.GONE); - } - mOk = (Button)findViewById(R.id.ok_button); - mCancel = (Button)findViewById(R.id.cancel_button); - mOk.setOnClickListener(this); - mCancel.setOnClickListener(this); - } - - public void setResultAndReturn(int result) { - if(result == RESULT_CANCELED) Log.i(TAG, "Result has been canceled"); - if(result == RESULT_OK) Log.i(TAG, "result ok"); - setResult(result); - finish(); - } - - public void onClick(View v) { - int result = RESULT_CANCELED; - if(v == mOk) { - result = RESULT_OK; - setResultAndReturn(result); - } else if(v == mCancel) { - result = RESULT_CANCELED; - setResultAndReturn(result); - } - } -} diff --git a/src/com/android/packageinstaller/InstallAppDone.java b/src/com/android/packageinstaller/InstallAppDone.java deleted file mode 100755 index 554ed2db..00000000 --- a/src/com/android/packageinstaller/InstallAppDone.java +++ /dev/null @@ -1,105 +0,0 @@ -/* -** -** Copyright 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. -*/ -package com.android.packageinstaller; - -import com.android.packageinstaller.R; -import android.app.Activity; -import android.content.Intent; -import android.content.pm.ApplicationInfo; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; -import android.os.Bundle; -import android.util.Log; -import android.view.View; -import android.view.Window; -import android.widget.Button; -import android.widget.TextView; - -/** - * This activity corresponds to a install status screen that is displayed - * when the user tries - * to install an application bundled as an apk file. The screen - * has two buttons to either launch the newly installed application - * or close the screen. The installation result and the package uri are passed through the - * intent that launches the activity. - */ -public class InstallAppDone extends Activity implements View.OnClickListener { - private final String TAG="InstallAppDone"; - private boolean localLOGV = false; - private ApplicationInfo mAppInfo; - private Button mDoneButton; - private Button mLaunchButton; - private boolean installFlag; - private Intent mLaunchIntent; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - Intent intent = getIntent(); - mAppInfo = intent.getParcelableExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO); - installFlag = intent.getBooleanExtra(PackageUtil.INTENT_ATTR_INSTALL_STATUS, true); - if(localLOGV) Log.i(TAG, "installFlag="+installFlag); - initView(); - } - - public void initView() { - requestWindowFeature(Window.FEATURE_NO_TITLE); - String unknown = getString(R.string.unknown); - setContentView(R.layout.install_done); - // Initialize views - PackageUtil.initAppSnippet(this, mAppInfo, R.id.app_snippet); - TextView centerText = (TextView)findViewById(R.id.center_text); - mDoneButton = (Button)findViewById(R.id.done_button); - mLaunchButton = (Button)findViewById(R.id.launch_button); - int centerTextDrawableId; - int centerTextLabel; - if(installFlag) { - mLaunchButton.setVisibility(View.VISIBLE); - centerTextDrawableId = R.drawable.button_indicator_finish; - centerTextLabel = R.string.install_done; - // Enable or disable launch button - mLaunchIntent = PackageUtil.getLaunchIntentForPackage(this, - mAppInfo.packageName); - if(mLaunchIntent != null) { - mLaunchButton.setOnClickListener(this); - } else { - mLaunchButton.setEnabled(false); - } - } else { - centerTextDrawableId = com.android.internal.R.drawable.ic_bullet_key_permission; - centerTextLabel = R.string.install_failed; - mLaunchButton.setVisibility(View.INVISIBLE); - } - Drawable centerTextDrawable = getResources().getDrawable(centerTextDrawableId); - centerTextDrawable.setBounds(0, 0, - centerTextDrawable.getIntrinsicWidth(), - centerTextDrawable.getIntrinsicHeight()); - centerText.setCompoundDrawables(centerTextDrawable, null, null, null); - centerText.setText(getString(centerTextLabel)); - mDoneButton.setOnClickListener(this); - } - - public void onClick(View v) { - if(v == mDoneButton) { - Log.i(TAG, "Finished installing "+mAppInfo); - finish(); - } else if(v == mLaunchButton) { - startActivity(mLaunchIntent); - finish(); - } - } -} diff --git a/src/com/android/packageinstaller/InstallAppProgress.java b/src/com/android/packageinstaller/InstallAppProgress.java deleted file mode 100755 index da1044c9..00000000 --- a/src/com/android/packageinstaller/InstallAppProgress.java +++ /dev/null @@ -1,114 +0,0 @@ -/* -** -** Copyright 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. -*/ -package com.android.packageinstaller; - -import com.android.packageinstaller.R; -import android.app.Activity; -import android.content.Intent; -import android.content.pm.ApplicationInfo; -import android.content.pm.IPackageInstallObserver; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; -import android.net.Uri; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.util.Log; -import android.view.Window; -import android.widget.ProgressBar; -import android.widget.TextView; - -/** - * This activity corresponds to a download progress screen that is displayed - * when the user tries - * to install an application bundled as an apk file. The result of the application install - * is indicated in the result code that gets set to the corresponding installation status - * codes defined in PackageManager. If the package being installed already exists, - * the existing package is replaced with the new one. - */ -public class InstallAppProgress extends Activity { - private final String TAG="InstallAppProgress"; - private boolean localLOGV = false; - private ApplicationInfo mAppInfo; - private Uri mPackageURI; - private ProgressBar mProgressBar; - private final int INSTALL_COMPLETE = 1; - private Handler mHandler = new Handler() { - public void handleMessage(Message msg) { - switch (msg.what) { - case INSTALL_COMPLETE: - //finish the activity posting result - setResultAndFinish(msg.arg1); - break; - default: - break; - } - } - }; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - Intent intent = getIntent(); - mAppInfo = intent.getParcelableExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO); - mPackageURI = intent.getData(); - initView(); - } - - class PackageInstallObserver extends IPackageInstallObserver.Stub { - public void packageInstalled(String packageName, int returnCode) { - Message msg = mHandler.obtainMessage(INSTALL_COMPLETE); - msg.arg1 = returnCode; - mHandler.sendMessage(msg); - } - } - - void setResultAndFinish(int retCode) { - Intent data = new Intent(); - setResult(retCode); - finish(); - } - - public void initView() { - requestWindowFeature(Window.FEATURE_NO_TITLE); - String unknown = getString(R.string.unknown); - setContentView(R.layout.op_progress); - //initialize views - PackageUtil.initAppSnippet(this, mAppInfo, R.id.app_snippet); - TextView installTextView = (TextView)findViewById(R.id.center_text); - installTextView.setText(R.string.installing); - mProgressBar = (ProgressBar) findViewById(R.id.progress_bar); - mProgressBar.setIndeterminate(true); - // Set flag to replace package if already existing - int installFlags = 0; - PackageManager pm = getPackageManager(); - try { - PackageInfo pi = pm.getPackageInfo(mAppInfo.packageName, - PackageManager.GET_UNINSTALLED_PACKAGES); - if(pi != null) { - installFlags |= PackageManager.REPLACE_EXISTING_PACKAGE; - } - } catch (NameNotFoundException e) { - } - if((installFlags & PackageManager.REPLACE_EXISTING_PACKAGE )!= 0) { - Log.w(TAG, "Replacing package:"+mAppInfo.packageName); - } - PackageInstallObserver observer = new PackageInstallObserver(); - pm.installPackage(mPackageURI, observer, installFlags); - } -} diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java deleted file mode 100644 index deeb8f42..00000000 --- a/src/com/android/packageinstaller/PackageInstallerActivity.java +++ /dev/null @@ -1,395 +0,0 @@ -/* -** -** Copyright 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. -*/ -package com.android.packageinstaller; - -import com.android.packageinstaller.R; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import android.app.Activity; -import android.app.AlertDialog; -import android.app.PendingIntent; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.DialogInterface.OnCancelListener; -import android.content.pm.IPackageDataObserver; -import android.content.pm.PackageManager; -import android.content.pm.PackageParser; -import android.net.Uri; -import android.os.Bundle; -import android.os.FileUtils; -import android.os.Handler; -import android.os.Message; -import android.provider.Settings; -import android.util.Log; -import android.view.Window; - -/* - * This activity is launched when a new application is installed via side loading - * The package is first parsed and the user is notified of parse errors via a dialog. - * If the package is successfully parsed, the user is notified to turn on the install unknown - * applications setting. A memory check is made at this point and the user is notified of out - * of memory conditions if any. If the package is already existing on the device, - * a confirmation dialog (to replace the existing package) is presented to the user. - * Based on the user response the package is then installed by launching InstallAppConfirm - * sub activity. All state transitions are handled in this activity - */ -public class PackageInstallerActivity extends Activity implements OnCancelListener { - private static final int INSTALL_INITIAL=0; - private static final int INSTALL_CONFIRM=1; - private static final int INSTALL_PROGRESS=2; - private static final int INSTALL_DONE=3; - private static final String TAG = "PackageInstaller"; - private Uri mPackageURI; - private boolean localLOGV = false; - private int mCurrentState = INSTALL_INITIAL; - PackageManager mPm; - private PackageParser.Package mPkgInfo; - private File mTmpFile; - private Uri mPackageUri; - private static final int SUCCEEDED=1; - private static final int FAILED=0; - // Broadcast receiver for clearing cache - ClearCacheReceiver mClearCacheReceiver; - private static final int HANDLER_BASE_MSG_IDX = 0; - private static final int FREE_SPACE = HANDLER_BASE_MSG_IDX+1; - private Handler mHandler = new Handler() { - public void handleMessage(Message msg) { - switch (msg.what) { - case FREE_SPACE: - unregisterReceiver(mClearCacheReceiver); - if(msg.arg1 == SUCCEEDED) { - makeTempCopyAndInstall(); - } else { - displayOutOfSpaceDialog(); - } - break; - default: - break; - } - } - }; - - private void startInstallActivityClass(int requestCode, Class<?> cls) { - Intent newIntent = new Intent(); - startInstallActivityClass(newIntent, requestCode, cls); - } - private void startInstallActivityClass(Intent newIntent, int requestCode, Class<?> cls) { - newIntent.putExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO, - mPkgInfo.applicationInfo); - newIntent.setData(mPackageURI); - newIntent.setClass(this, cls); - if(localLOGV) Log.i(TAG, "downloaded app uri="+mPackageURI); - startActivityForResult(newIntent, requestCode); - } - - - private void startInstallConfirm() { - Intent newIntent = new Intent(); - newIntent.putExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO, - mPkgInfo.applicationInfo); - newIntent.setData(mPackageURI); - newIntent.setClass(this, InstallAppConfirmation.class); - startActivityForResult(newIntent, INSTALL_CONFIRM); - } - - private void startInstallProgress() { - startInstallActivityClass(INSTALL_PROGRESS, InstallAppProgress.class); - } - - private void startInstallDone(boolean result) { - Intent newIntent = new Intent(Intent.ACTION_VIEW); - newIntent.putExtra(PackageUtil.INTENT_ATTR_INSTALL_STATUS, result); - startInstallActivityClass(newIntent, INSTALL_DONE, InstallAppDone.class); - } - - private void displayReplaceAppDialog() { - new AlertDialog.Builder(this) - .setTitle(R.string.dlg_app_replacement_title) - .setMessage(R.string.dlg_app_replacement_statement) - .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - startInstallConfirm(); - }}) - .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - Log.i(TAG, "Canceling installation"); - finish(); - }}) - .setOnCancelListener(this) - .show(); - } - - - /* - * Utility method to display a dialog prompting the user to turn on settings property - * before installing application - */ - private void displayUnknowAppsDialog() { - new AlertDialog.Builder(this) - .setTitle(R.string.unknown_apps_dlg_title) - .setMessage(R.string.unknown_apps_dlg_text) - .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - Log.i(TAG, "Finishing off activity so that user can navigate to settings manually"); - finish(); - }}) - .setPositiveButton(R.string.settings, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - Log.i(TAG, "Launching settings"); - launchSettingsAppAndFinish(); - } - }) - .setOnCancelListener(this) - .show(); - } - - /* - * Utility method to display a dialog indicating a parse error when parsing the package - */ - private void displayPackageErrorDialog() { - new AlertDialog.Builder(this) - .setTitle(R.string.Parse_error_dlg_title) - .setMessage(R.string.Parse_error_dlg_text) - .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - finish(); - } - }) - .setOnCancelListener(this) - .show(); - } - - /* - * Utility method to display dialog indicating out of disk space - */ - private void displayOutOfSpaceDialog() { - //guaranteed not to be null. will default to package name if not set by app - CharSequence appTitle = mPm.getApplicationLabel(mPkgInfo.applicationInfo); - String dlgText = getString(R.string.out_of_space_dlg_text, - appTitle.toString()); - - new AlertDialog.Builder(this) - .setTitle(R.string.out_of_space_dlg_title) - .setMessage(dlgText) - .setPositiveButton(R.string.manage_applications, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - //launch manage applications - Intent intent = new Intent("android.intent.action.MANAGE_PACKAGE_STORAGE"); - startActivity(intent); - finish(); - } - }) - .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - Log.i(TAG, "Canceling installation"); - finish(); - } - }) - .setOnCancelListener(this) - .show(); - } - - private class PkgDataObserver extends IPackageDataObserver.Stub { - public void onRemoveCompleted(String packageName, boolean succeeded) { - Message msg = mHandler.obtainMessage(FREE_SPACE); - msg.arg1 = succeeded?SUCCEEDED:FAILED; - mHandler.sendMessage(msg); - } - } - - private class ClearCacheReceiver extends BroadcastReceiver { - public static final String INTENT_CLEAR_CACHE = - "com.android.packageinstaller.CLEAR_CACHE"; - @Override - public void onReceive(Context context, Intent intent) { - Message msg = mHandler.obtainMessage(FREE_SPACE); - msg.arg1 = (getResultCode() ==1) ? SUCCEEDED : FAILED; - mHandler.sendMessage(msg); - } - } - - private void checkOutOfSpace(long size) { - if(localLOGV) Log.i(TAG, "Checking for "+size+" number of bytes"); - if (mClearCacheReceiver == null) { - mClearCacheReceiver = new ClearCacheReceiver(); - } - registerReceiver(mClearCacheReceiver, - new IntentFilter(ClearCacheReceiver.INTENT_CLEAR_CACHE)); - PendingIntent pi = PendingIntent.getBroadcast(this, - 0, new Intent(ClearCacheReceiver.INTENT_CLEAR_CACHE), 0); - mPm.freeStorage(size, pi); - } - - private void launchSettingsAppAndFinish() { - //Create an intent to launch SettingsTwo activity - Intent launchSettingsIntent = new Intent(Settings.ACTION_APPLICATION_SETTINGS); - startActivity(launchSettingsIntent); - finish(); - } - - private boolean isInstallingUnknownAppsAllowed() { - return Settings.Secure.getInt(getContentResolver(), - Settings.Secure.INSTALL_NON_MARKET_APPS, 0) > 0; - } - - private File createTempPackageFile(String filePath) { - File tmpPackageFile; - int i = filePath.lastIndexOf("/"); - String tmpFileName; - if(i != -1) { - tmpFileName = filePath.substring(i+1); - } else { - tmpFileName = filePath; - } - FileOutputStream fos; - try { - fos=openFileOutput(tmpFileName, MODE_WORLD_READABLE); - } catch (FileNotFoundException e1) { - Log.e(TAG, "Error opening file "+tmpFileName); - return null; - } - try { - fos.close(); - } catch (IOException e) { - Log.e(TAG, "Error opening file "+tmpFileName); - return null; - } - tmpPackageFile=getFileStreamPath(tmpFileName); - File srcPackageFile = new File(filePath); - if (!FileUtils.copyFile(srcPackageFile, tmpPackageFile)) { - return null; - } - return tmpPackageFile; - } - - private void makeTempCopyAndInstall() { - //copy file to tmp dir - mTmpFile = createTempPackageFile(mPackageURI.getPath()); - if(mTmpFile == null) { - //display a dialog - Log.e(TAG, "Error copying file locally. Failed Installation"); - displayOutOfSpaceDialog(); - return; - } - mPackageURI = Uri.parse("file://"+mTmpFile.getPath()); - // Check if package is already installed. display confirmation dialog if replacing pkg - boolean alreadyInstalled = PackageUtil.isPackageAlreadyInstalled(this, - mPkgInfo.applicationInfo.packageName); - if(alreadyInstalled) { - if(localLOGV) Log.i(TAG, "Replacing existing package:"+ - mPkgInfo.applicationInfo.packageName); - displayReplaceAppDialog(); - } else { - startInstallConfirm(); - } - } - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - //get intent information - final Intent intent = getIntent(); - mPackageURI = intent.getData(); - mPkgInfo = PackageUtil.getPackageInfo(mPackageURI); - // Check for parse errors - if(mPkgInfo == null) { - Log.w(TAG, "Parse error when parsing manifest. Discontinuing installation"); - displayPackageErrorDialog(); - return; - } - mPm = getPackageManager(); - //set view - requestWindowFeature(Window.FEATURE_NO_TITLE); - setContentView(R.layout.install_start); - PackageUtil.initAppSnippet(this, mPkgInfo.applicationInfo, R.id.app_snippet); - //check setting - if(!isInstallingUnknownAppsAllowed()) { - //ask user to enable setting first - displayUnknowAppsDialog(); - return; - } - //compute the size of the application. just an estimate - long size; - String apkPath = mPackageURI.getPath(); - File apkFile = new File(apkPath); - //TODO? DEVISE BETTER HEAURISTIC - size = 4*apkFile.length(); - checkOutOfSpace(size); - } - - @Override - public void onDestroy() { - super.onDestroy(); - // Delete the temporary file if it still exists - if (mTmpFile != null) { - deleteFile(mTmpFile.getName()); - } - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - boolean finish = true; - boolean removeTmpFile = false; - switch(requestCode) { - case INSTALL_CONFIRM: - if (resultCode == RESULT_OK) { - finish = false; - mCurrentState = INSTALL_PROGRESS; - startInstallProgress(); - } else { - removeTmpFile = true; - } - break; - case INSTALL_PROGRESS: - boolean ok = false; - finish = false; - mCurrentState = INSTALL_DONE; - if (resultCode == PackageManager.INSTALL_SUCCEEDED) { - ok = true; - } - // Now that the package is installed just delete the temp file - removeTmpFile = true; - //start the next screen to show final status of installation - startInstallDone(ok); - break; - case INSTALL_DONE: - //neednt check for result code here - break; - default: - break; - } - if ((removeTmpFile) && (mTmpFile != null)) { - deleteFile(mTmpFile.getName()); - } - if (finish) { - //finish off this activity to return to the previous activity that launched it - if (localLOGV) Log.i(TAG, "Finishing off activity"); - finish(); - } - } - - // Generic handling when pressing back key - public void onCancel(DialogInterface dialog) { - finish(); - } -} diff --git a/src/com/android/packageinstaller/PackageUtil.java b/src/com/android/packageinstaller/PackageUtil.java deleted file mode 100644 index 6dc782de..00000000 --- a/src/com/android/packageinstaller/PackageUtil.java +++ /dev/null @@ -1,146 +0,0 @@ -/* -** -** Copyright 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. -*/ -package com.android.packageinstaller; - -import java.io.File; -import java.util.List; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.content.pm.PackageParser; -import android.content.pm.ResolveInfo; -import android.graphics.drawable.Drawable; -import android.net.Uri; -import android.util.DisplayMetrics; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; - -/** - * This is a utility class for defining some utility methods and constants - * used in the package installer application. - */ -public class PackageUtil { - public static final String PREFIX="com.android.packageinstaller."; - public static final String INTENT_ATTR_INSTALL_STATUS = PREFIX+"installStatus"; - public static final String INTENT_ATTR_APPLICATION_INFO=PREFIX+"applicationInfo"; - public static final String INTENT_ATTR_PERMISSIONS_LIST=PREFIX+"PermissionsList"; - //intent attribute strings related to uninstall - public static final String INTENT_ATTR_PACKAGE_NAME=PREFIX+"PackageName"; - - /* - * Utility method to get application information for a given packageURI - */ - public static ApplicationInfo getApplicationInfo(Uri packageURI) { - final String archiveFilePath = packageURI.getPath(); - PackageParser packageParser = new PackageParser(archiveFilePath); - File sourceFile = new File(archiveFilePath); - DisplayMetrics metrics = new DisplayMetrics(); - metrics.setToDefaults(); - PackageParser.Package pkg = packageParser.parsePackage(sourceFile, archiveFilePath, metrics, 0); - if (pkg == null) { - return null; - } - return pkg.applicationInfo; - } - - /* - * Utility method to get package information for a given packageURI - */ - public static PackageParser.Package getPackageInfo(Uri packageURI) { - final String archiveFilePath = packageURI.getPath(); - PackageParser packageParser = new PackageParser(archiveFilePath); - File sourceFile = new File(archiveFilePath); - DisplayMetrics metrics = new DisplayMetrics(); - metrics.setToDefaults(); - return packageParser.parsePackage(sourceFile, archiveFilePath, metrics, 0); - } - - /* - * Utility method to get application label from package manager for a given context - */ - public static CharSequence getApplicationLabel(Context context, ApplicationInfo appInfo) { - CharSequence appName = appInfo.loadLabel(context.getPackageManager()); - if(appName == null) { - appName = context.getString(R.string.unknown); - } - return appName; - } - - /* - * Utility method to getApplicationIcon from package manager for a given context - */ - public static Drawable getApplicationIcon(Context context, ApplicationInfo appInfo) { - return appInfo.loadIcon(context.getPackageManager()); - } - - /* - * Utility method to display application snippet. make sure to setContentView on context - * before invoking this method - */ - public static View initAppSnippet(Activity context, ApplicationInfo appInfo, int snippetId) { - View appSnippet = context.findViewById(snippetId); - ((ImageView)appSnippet.findViewById(R.id.app_icon)).setImageDrawable( - getApplicationIcon(context, appInfo)); - ((TextView)appSnippet.findViewById(R.id.app_name)).setText( - getApplicationLabel(context, appInfo)); - return appSnippet; - } - - public static boolean isPackageAlreadyInstalled(Activity context, String pkgName) { - List<PackageInfo> installedList = context.getPackageManager().getInstalledPackages( - PackageManager.GET_UNINSTALLED_PACKAGES); - int installedListSize = installedList.size(); - for(int i = 0; i < installedListSize; i++) { - PackageInfo tmp = installedList.get(i); - if(pkgName.equalsIgnoreCase(tmp.packageName)) { - return true; - } - - } - return false; - } - - /** - * Returns an intent that can be used to launch the main activity in the given package. - * - * @param ctx - * @param packageName - * @return an intent launching the main activity in the given package - */ - public static Intent getLaunchIntentForPackage(Context ctx, String packageName) { - Intent intent = new Intent(Intent.ACTION_MAIN); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - PackageManager manager = ctx.getPackageManager(); - Intent intentToResolve = new Intent(Intent.ACTION_MAIN, null); - intentToResolve.addCategory(Intent.CATEGORY_LAUNCHER); - final List<ResolveInfo> apps = - manager.queryIntentActivities(intentToResolve, 0); - // TODO in future add a new tag to application for launchable main activity - for (ResolveInfo app : apps) { - if (app.activityInfo.packageName.equals(packageName)) { - intent.setClassName(packageName, app.activityInfo.name); - return intent; - } - } - return null; - } -} diff --git a/src/com/android/packageinstaller/UninstallAppDone.java b/src/com/android/packageinstaller/UninstallAppDone.java deleted file mode 100755 index 73dffe3d..00000000 --- a/src/com/android/packageinstaller/UninstallAppDone.java +++ /dev/null @@ -1,72 +0,0 @@ -/* -** -** Copyright 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. -*/ -package com.android.packageinstaller; - -import com.android.packageinstaller.R; -import android.app.Activity; -import android.content.Intent; -import android.content.pm.ApplicationInfo; -import android.os.Bundle; -import android.util.Log; -import android.view.View; -import android.view.Window; -import android.widget.Button; -import android.widget.TextView; - -/** - * This activity corresponds to a uninstall status screen that is displayed - * when an application gets uninstalled. The screen contains a single ok button at the - * bottom. - */ -public class UninstallAppDone extends Activity implements View.OnClickListener { - private final String TAG="UninstallAppDone"; - private boolean localLOGV = false; - private ApplicationInfo mAppInfo; - private Button mOkButton; - private boolean uninstallFlag; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - Intent intent = getIntent(); - mAppInfo = intent.getParcelableExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO); - //TODO set installFlag - uninstallFlag = intent.getBooleanExtra(PackageUtil.INTENT_ATTR_INSTALL_STATUS, true); - initView(); - } - - public void initView() { - String unknown = getString(R.string.unknown); - requestWindowFeature(Window.FEATURE_NO_TITLE); - setContentView(R.layout.uninstall_done); - TextView centerText = (TextView)findViewById(R.id.center_text); - if(uninstallFlag) { - centerText.setText(getString(R.string.uninstall_done)); - } else { - centerText.setText(R.string.uninstall_failed); - } - mOkButton = (Button)findViewById(R.id.ok_button); - mOkButton.setOnClickListener(this); - } - - public void onClick(View v) { - if(v == mOkButton) { - Log.i(TAG, "Finished installing "+mAppInfo); - finish(); - } - } -} diff --git a/src/com/android/packageinstaller/UninstallAppProgress.java b/src/com/android/packageinstaller/UninstallAppProgress.java deleted file mode 100755 index 6b30118b..00000000 --- a/src/com/android/packageinstaller/UninstallAppProgress.java +++ /dev/null @@ -1,91 +0,0 @@ -/* -** -** Copyright 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. -*/ -package com.android.packageinstaller; - -import android.app.Activity; -import android.content.Intent; -import android.content.pm.ApplicationInfo; -import android.content.pm.IPackageDeleteObserver; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.view.Window; -import android.view.ViewDebug; -import android.widget.ProgressBar; -import android.widget.TextView; - -/** - * This activity corresponds to a download progress screen that is displayed - * when an application is uninstalled. The result of the application uninstall - * is indicated in the result code that gets set to 0 or 1. The application gets launched - * by an intent with the intent's class name explicitly set to UninstallAppProgress and expects - * the application object of the application to uninstall. - */ -public class UninstallAppProgress extends Activity { - private final String TAG="UninstallAppProgress"; - private boolean localLOGV = false; - private ApplicationInfo mAppInfo; - private final int UNINSTALL_COMPLETE = 1; - public final static int SUCCEEDED=1; - public final static int FAILED=0; - private Handler mHandler = new Handler() { - public void handleMessage(Message msg) { - switch (msg.what) { - case UNINSTALL_COMPLETE: - //finish the activity posting result - setResultAndFinish(msg.arg1); - break; - default: - break; - } - } - }; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - Intent intent = getIntent(); - mAppInfo = intent.getParcelableExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO); - initView(); - } - - class PackageDeleteObserver extends IPackageDeleteObserver.Stub { - public void packageDeleted(boolean succeeded) { - Message msg = mHandler.obtainMessage(UNINSTALL_COMPLETE); - msg.arg1 = succeeded?SUCCEEDED:FAILED; - mHandler.sendMessage(msg); - } - } - - void setResultAndFinish(int retCode) { - setResult(retCode); - finish(); - } - - public void initView() { - requestWindowFeature(Window.FEATURE_NO_TITLE); - setContentView(R.layout.op_progress); - //initialize views - PackageUtil.initAppSnippet(this, mAppInfo, R.id.app_snippet); - TextView installTextView = (TextView)findViewById(R.id.center_text); - installTextView.setText(R.string.uninstalling); - final ProgressBar progressBar = (ProgressBar) findViewById(R.id.progress_bar); - progressBar.setIndeterminate(true); - PackageDeleteObserver observer = new PackageDeleteObserver(); - getPackageManager().deletePackage(mAppInfo.packageName, observer, 0); - } -} diff --git a/src/com/android/packageinstaller/UninstallerActivity.java b/src/com/android/packageinstaller/UninstallerActivity.java deleted file mode 100755 index b80f8ef1..00000000 --- a/src/com/android/packageinstaller/UninstallerActivity.java +++ /dev/null @@ -1,158 +0,0 @@ -/* -** -** Copyright 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. -*/ -package com.android.packageinstaller; - -import com.android.packageinstaller.R; -import android.app.Activity; -import android.app.AlertDialog; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManager; -import android.net.Uri; -import android.os.Bundle; -import android.util.Log; -import android.view.View; -import android.view.Window; -import android.view.View.OnClickListener; -import android.widget.Button; -import android.content.pm.PackageManager.NameNotFoundException; - -/* - * This activity presents UI to uninstall an application. Usually launched with intent - * Intent.ACTION_UNINSTALL_PKG_COMMAND and attribute - * com.android.packageinstaller.PackageName set to the application package name - */ -public class UninstallerActivity extends Activity implements OnClickListener { - private static final String TAG = "UninstallerActivity"; - private boolean localLOGV = false; - //states indicating status of ui display when uninstalling application - private static final int UNINSTALL_CONFIRM=1; - private static final int UNINSTALL_PROGRESS=2; - private static final int UNINSTALL_DONE=3; - private int mCurrentState = UNINSTALL_CONFIRM; - PackageManager mPm; - private ApplicationInfo mAppInfo; - private Button mOk; - private Button mCancel; - - private void startUninstallProgress() { - Intent newIntent = new Intent(Intent.ACTION_VIEW); - newIntent.putExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO, - mAppInfo); - newIntent.setClass(this, UninstallAppProgress.class); - startActivityForResult(newIntent, UNINSTALL_PROGRESS); - } - - private void startUninstallDone(boolean result) { - Intent newIntent = new Intent(Intent.ACTION_VIEW); - newIntent.putExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO, - mAppInfo); - newIntent.putExtra(PackageUtil.INTENT_ATTR_INSTALL_STATUS, result); - newIntent.setClass(this, UninstallAppDone.class); - startActivityForResult(newIntent, UNINSTALL_DONE); - } - - private void displayErrorDialog(int msgId) { - //display confirmation dialog - new AlertDialog.Builder(this) - .setTitle(getString(R.string.app_not_found_dlg_title)) - .setIcon(com.android.internal.R.drawable.ic_dialog_alert) - .setMessage(getString(msgId)) - .setNeutralButton(getString(R.string.dlg_ok), - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - //force to recompute changed value - finish(); - } - } - ) - .show(); - } - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - //get intent information - final Intent intent = getIntent(); - Uri packageURI = intent.getData(); - String packageName = packageURI.getEncodedSchemeSpecificPart(); - if(packageName == null) { - Log.e(TAG, "Invalid package name:"+packageName); - displayErrorDialog(R.string.app_not_found_dlg_text); - return; - } - //initialize package manager - mPm = getPackageManager(); - boolean errFlag = false; - try { - mAppInfo = mPm.getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); - } catch (NameNotFoundException e) { - errFlag = true; - } - if(mAppInfo == null || errFlag) { - Log.e(TAG, "Invalid application:"+packageName); - displayErrorDialog(R.string.app_not_found_dlg_text); - } else { - requestWindowFeature(Window.FEATURE_NO_TITLE); - //set view - setContentView(R.layout.uninstall_confirm); - PackageUtil.initAppSnippet(this, mAppInfo, R.id.app_snippet); - //initialize ui elements - mOk = (Button)findViewById(R.id.ok_button); - mCancel = (Button)findViewById(R.id.cancel_button); - mOk.setOnClickListener(this); - mCancel.setOnClickListener(this); - } - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - boolean finish = true; - switch(requestCode) { - case UNINSTALL_PROGRESS: - finish = false; - mCurrentState = UNINSTALL_DONE; - //start the next screen to show final status of installation - startUninstallDone(resultCode==UninstallAppProgress.SUCCEEDED); - break; - case UNINSTALL_DONE: - //neednt check for result code here - break; - default: - break; - } - if(finish) { - //finish off this activity to return to the previous activity that launched it - Log.i(TAG, "Finishing off activity"); - finish(); - } - } - - private void finishAndReturn() { - finish(); - } - - public void onClick(View v) { - if(v == mOk) { - //initiate next screen - startUninstallProgress(); - } else if(v == mCancel) { - finishAndReturn(); - } - } -} |