summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-05-23 21:40:53 -0700
committerSunny Goyal <sunnygoyal@google.com>2016-05-24 14:11:24 -0700
commitd83a67a6b44961f353ec1a99b92bfb747f418e02 (patch)
treefa06c6c4bcea7853c8e26a01c91a8735fa730bd0
parent33c2ed341e376bf8778cf10a98ace072e2ea3bbe (diff)
downloadandroid_packages_apps_Trebuchet-d83a67a6b44961f353ec1a99b92bfb747f418e02.tar.gz
android_packages_apps_Trebuchet-d83a67a6b44961f353ec1a99b92bfb747f418e02.tar.bz2
android_packages_apps_Trebuchet-d83a67a6b44961f353ec1a99b92bfb747f418e02.zip
Separating out configs and common manifest entries
This separation allows for easier modification of Launcher3 by derivative projects Change-Id: Ib3469e9b5d2707daef572050698d792316534d45
-rw-r--r--Android.mk6
-rw-r--r--AndroidManifest-common.xml83
-rw-r--r--AndroidManifest.xml71
-rw-r--r--build.gradle6
-rw-r--r--src_config/com/android/launcher3/config/FeatureFlags.java (renamed from src/com/android/launcher3/config/FeatureFlags.java)0
-rw-r--r--src_config/com/android/launcher3/config/ProviderConfig.java (renamed from src/com/android/launcher3/config/ProviderConfig.java)0
-rw-r--r--update_gallery_files.py54
-rw-r--r--update_system_wallpaper_cropper.py58
8 files changed, 114 insertions, 164 deletions
diff --git a/Android.mk b/Android.mk
index dc43f7ecc..9a3b09e75 100644
--- a/Android.mk
+++ b/Android.mk
@@ -28,7 +28,9 @@ LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-v7-recyclerview \
android-support-v7-palette
-LOCAL_SRC_FILES := $(call all-java-files-under, src) \
+LOCAL_SRC_FILES := \
+ $(call all-java-files-under, src) \
+ $(call all-java-files-under, src_config) \
$(call all-proto-files-under, protos)
LOCAL_RESOURCE_DIR := \
@@ -48,6 +50,8 @@ LOCAL_MIN_SDK_VERSION := 21
LOCAL_PACKAGE_NAME := Launcher3
LOCAL_OVERRIDES_PACKAGES := Home Launcher2
+LOCAL_FULL_LIBS_MANIFEST_FILES := $(LOCAL_PATH)/AndroidManifest-common.xml
+
include $(BUILD_PACKAGE)
#
diff --git a/AndroidManifest-common.xml b/AndroidManifest-common.xml
new file mode 100644
index 000000000..3da35354f
--- /dev/null
+++ b/AndroidManifest-common.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2016, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<manifest
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.launcher3">
+ <uses-sdk android:targetSdkVersion="23" android:minSdkVersion="21"/>
+
+ <!--
+ The manifest defines the common entries that should be present in any derivative of Launcher3.
+ The components should generally not require any changes.
+
+ Rest of the components are defined in AndroidManifest.xml which is merged with this manifest
+ at compile time. Note that the components defined in AndroidManifest.xml are also required,
+ with some minor changed based on the derivative app.
+ -->
+ <permission
+ android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
+ android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
+ android:protectionLevel="dangerous"
+ android:label="@string/permlab_install_shortcut"
+ android:description="@string/permdesc_install_shortcut" />
+
+ <uses-permission android:name="android.permission.CALL_PHONE" />
+ <uses-permission android:name="android.permission.SET_WALLPAPER" />
+ <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
+ <uses-permission android:name="android.permission.BIND_APPWIDGET" />
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+
+ <application
+ android:backupAgent="com.android.launcher3.LauncherBackupAgent"
+ android:fullBackupOnly="true"
+ android:fullBackupContent="@xml/backupscheme"
+ android:hardwareAccelerated="true"
+ android:icon="@mipmap/ic_launcher_home"
+ android:label="@string/app_name"
+ android:largeHeap="@bool/config_largeHeap"
+ android:restoreAnyVersion="true"
+ android:supportsRtl="true" >
+
+ <!-- Intent received used to install shortcuts from other applications -->
+ <receiver
+ android:name="com.android.launcher3.InstallShortcutReceiver"
+ android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
+ <intent-filter>
+ <action android:name="com.android.launcher.action.INSTALL_SHORTCUT" />
+ </intent-filter>
+ </receiver>
+
+ <!-- Intent received used to initialize a restored widget -->
+ <receiver android:name="com.android.launcher3.AppWidgetsRestoredReceiver" >
+ <intent-filter>
+ <action android:name="android.appwidget.action.APPWIDGET_HOST_RESTORED"/>
+ </intent-filter>
+ </receiver>
+
+ <service android:name="com.android.launcher3.dynamicui.ColorExtractionService"
+ android:exported="false"
+ android:process=":wallpaper_chooser">
+ </service>
+
+ <meta-data android:name="android.nfc.disable_beam_default"
+ android:value="true" />
+
+ </application>
+</manifest>
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 75b81d04d..eb7ea0c61 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -21,13 +21,16 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.launcher3">
<uses-sdk android:targetSdkVersion="23" android:minSdkVersion="21"/>
-
- <permission
- android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
- android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="dangerous"
- android:label="@string/permlab_install_shortcut"
- android:description="@string/permdesc_install_shortcut" />
+ <!--
+ Manifest entries specific to Launcher3. This is merged with AndroidManifest-common.xml.
+ Refer comments around specific entries on how to extend individual components.
+ -->
+
+ <!--
+ Permissions required for read/write access to the workspace data. These permission name
+ should not conflict with that defined in other apps, as such an app should embed its package
+ name in the permissions. eq com.mypackage.permission.READ_SETTINGS
+ -->
<permission
android:name="com.android.launcher3.permission.READ_SETTINGS"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
@@ -41,28 +44,17 @@
android:label="@string/permlab_write_settings"
android:description="@string/permdesc_write_settings"/>
- <uses-permission android:name="android.permission.CALL_PHONE" />
- <uses-permission android:name="android.permission.SET_WALLPAPER" />
- <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
- <uses-permission android:name="android.permission.BIND_APPWIDGET" />
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
<uses-permission android:name="com.android.launcher3.permission.READ_SETTINGS" />
<uses-permission android:name="com.android.launcher3.permission.WRITE_SETTINGS" />
- <application
- android:backupAgent="com.android.launcher3.LauncherBackupAgent"
- android:fullBackupOnly="true"
- android:fullBackupContent="@xml/backupscheme"
- android:hardwareAccelerated="true"
- android:icon="@mipmap/ic_launcher_home"
- android:label="@string/app_name"
- android:largeHeap="@bool/config_largeHeap"
- android:restoreAnyVersion="true"
- android:supportsRtl="true" >
+ <application>
+ <!--
+ Main launcher activity. When extending only change the name, and keep all the
+ attributes and intent filters the same
+ -->
<activity
android:name="com.android.launcher3.Launcher"
android:launchMode="singleTask"
@@ -83,6 +75,9 @@
</intent-filter>
</activity>
+ <!--
+ The settings activity. When extending keep the intent filter present
+ -->
<activity
android:name="com.android.launcher3.SettingsActivity"
android:label="@string/settings_button_text"
@@ -93,28 +88,11 @@
</intent-filter>
</activity>
- <!-- Intent received used to install shortcuts from other applications -->
- <receiver
- android:name="com.android.launcher3.InstallShortcutReceiver"
- android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
- <intent-filter>
- <action android:name="com.android.launcher.action.INSTALL_SHORTCUT" />
- </intent-filter>
- </receiver>
-
- <!-- Intent received used to initialize a restored widget -->
- <receiver android:name="com.android.launcher3.AppWidgetsRestoredReceiver" >
- <intent-filter>
- <action android:name="android.appwidget.action.APPWIDGET_HOST_RESTORED"/>
- </intent-filter>
- </receiver>
-
- <service android:name=".dynamicui.ColorExtractionService"
- android:exported="false"
- android:process=":wallpaper_chooser">
- </service>
-
- <!-- The settings provider contains Home's data, like the workspace favorites -->
+ <!--
+ The settings provider contains Home's data, like the workspace favorites. The permissions
+ should be changed to what is defined above. The authorities should also be changed to
+ represent the package name.
+ -->
<provider
android:name="com.android.launcher3.LauncherProvider"
android:authorities="com.android.launcher3.settings"
@@ -122,9 +100,6 @@
android:writePermission="com.android.launcher3.permission.WRITE_SETTINGS"
android:readPermission="com.android.launcher3.permission.READ_SETTINGS" />
- <meta-data android:name="android.nfc.disable_beam_default"
- android:value="true" />
-
<!-- ENABLE_FOR_TESTING
<activity
diff --git a/build.gradle b/build.gradle
index 2efbec4a3..899767fc8 100644
--- a/build.gradle
+++ b/build.gradle
@@ -12,8 +12,8 @@ apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'
android {
- compileSdkVersion 23
- buildToolsVersion "22.0.1"
+ compileSdkVersion 'android-N'
+ buildToolsVersion '24.0.0-rc3'
defaultConfig {
applicationId "com.android.launcher3"
@@ -33,7 +33,7 @@ android {
sourceSets {
main {
res.srcDirs = ['res']
- java.srcDirs = ['src']
+ java.srcDirs = ['src', 'src_config']
manifest.srcFile 'AndroidManifest.xml'
proto.srcDirs 'protos/'
}
diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src_config/com/android/launcher3/config/FeatureFlags.java
index 34c6663e9..34c6663e9 100644
--- a/src/com/android/launcher3/config/FeatureFlags.java
+++ b/src_config/com/android/launcher3/config/FeatureFlags.java
diff --git a/src/com/android/launcher3/config/ProviderConfig.java b/src_config/com/android/launcher3/config/ProviderConfig.java
index 1d964b1b2..1d964b1b2 100644
--- a/src/com/android/launcher3/config/ProviderConfig.java
+++ b/src_config/com/android/launcher3/config/ProviderConfig.java
diff --git a/update_gallery_files.py b/update_gallery_files.py
deleted file mode 100644
index 738d225eb..000000000
--- a/update_gallery_files.py
+++ /dev/null
@@ -1,54 +0,0 @@
-# This script is used to pull the most up-to-date files from
-# Gallery into Launcher (we use some code from the Gallery
-# source). The Launcher versions have some small modifications
-# so do this with care, and be sure you are pulling from the
-# latest version of Gallery
-import os
-import sys
-files = """
-src/android/util/Pools.java
-src/com/android/gallery3d/util/IntArray.java
-src/com/android/gallery3d/common/Utils.java
-src/com/android/gallery3d/exif/ByteBufferInputStream.java
-src/com/android/gallery3d/exif/CountedDataInputStream.java
-src/com/android/gallery3d/exif/ExifData.java
-src/com/android/gallery3d/exif/ExifInterface.java
-src/com/android/gallery3d/exif/ExifInvalidFormatException.java
-src/com/android/gallery3d/exif/ExifModifier.java
-src/com/android/gallery3d/exif/ExifOutputStream.java
-src/com/android/gallery3d/exif/ExifParser.java
-src/com/android/gallery3d/exif/ExifReader.java
-src/com/android/gallery3d/exif/ExifTag.java
-src/com/android/gallery3d/exif/IfdData.java
-src/com/android/gallery3d/exif/IfdId.java
-src/com/android/gallery3d/exif/JpegHeader.java
-src/com/android/gallery3d/exif/OrderedDataOutputStream.java
-src/com/android/gallery3d/exif/Rational.java
-src/com/android/gallery3d/glrenderer/BasicTexture.java
-src/com/android/gallery3d/glrenderer/BitmapTexture.java
-src/com/android/gallery3d/glrenderer/GLCanvas.java
-src/com/android/gallery3d/glrenderer/GLES20Canvas.java
-src/com/android/gallery3d/glrenderer/GLES20IdImpl.java
-src/com/android/gallery3d/glrenderer/GLId.java
-src/com/android/gallery3d/glrenderer/GLPaint.java
-src/com/android/gallery3d/glrenderer/RawTexture.java
-src/com/android/gallery3d/glrenderer/Texture.java
-src/com/android/gallery3d/glrenderer/UploadedTexture.java
-src/com/android/photos/BitmapRegionTileSource.java
-src/com/android/photos/views/BlockingGLTextureView.java
-src/com/android/photos/views/TiledImageRenderer.java
-src/com/android/photos/views/TiledImageView.java
-src/com/android/gallery3d/common/BitmapUtils.java
-"""
-
-if len(sys.argv) != 2:
- print "Usage: python update_gallery_files.py <gallery_dir>"
- exit()
-gallery_dir = sys.argv[1]
-for file_path in files.split():
- dir = os.path.dirname(file_path)
- if file_path.find('exif') != -1 or file_path.find('common') != -1:
- file_path = 'gallerycommon/' + file_path
- cmd = 'cp %s/%s WallpaperPicker/%s/' % (gallery_dir, file_path, dir)
- print cmd
- os.system(cmd)
diff --git a/update_system_wallpaper_cropper.py b/update_system_wallpaper_cropper.py
deleted file mode 100644
index 44cbcc967..000000000
--- a/update_system_wallpaper_cropper.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# This script is used to push the most up-to-date files from
-# Launcher into frameworks' version of the WallpaperCropActivity
-# (and supporting files)
-# The framework versions have some small modifications that are
-# necessary so do this with care
-import os
-import sys
-src_dir = "WallpaperPicker/src/"
-files = """
-src/android/util/Pools.java
-com/android/gallery3d/util/IntArray.java
-com/android/gallery3d/common/Utils.java
-com/android/gallery3d/exif/ByteBufferInputStream.java
-com/android/gallery3d/exif/CountedDataInputStream.java
-com/android/gallery3d/exif/ExifData.java
-com/android/gallery3d/exif/ExifInterface.java
-com/android/gallery3d/exif/ExifInvalidFormatException.java
-com/android/gallery3d/exif/ExifModifier.java
-com/android/gallery3d/exif/ExifOutputStream.java
-com/android/gallery3d/exif/ExifParser.java
-com/android/gallery3d/exif/ExifReader.java
-com/android/gallery3d/exif/ExifTag.java
-com/android/gallery3d/exif/IfdData.java
-com/android/gallery3d/exif/IfdId.java
-com/android/gallery3d/exif/JpegHeader.java
-com/android/gallery3d/exif/OrderedDataOutputStream.java
-com/android/gallery3d/exif/Rational.java
-com/android/gallery3d/glrenderer/BasicTexture.java
-com/android/gallery3d/glrenderer/BitmapTexture.java
-com/android/gallery3d/glrenderer/GLCanvas.java
-com/android/gallery3d/glrenderer/GLES20Canvas.java
-com/android/gallery3d/glrenderer/GLES20IdImpl.java
-com/android/gallery3d/glrenderer/GLId.java
-com/android/gallery3d/glrenderer/GLPaint.java
-com/android/gallery3d/glrenderer/RawTexture.java
-com/android/gallery3d/glrenderer/Texture.java
-com/android/gallery3d/glrenderer/UploadedTexture.java
-com/android/photos/BitmapRegionTileSource.java
-com/android/photos/views/BlockingGLTextureView.java
-com/android/photos/views/TiledImageRenderer.java
-com/android/photos/views/TiledImageView.java
-com/android/gallery3d/common/BitmapUtils.java
-com/android/launcher3/CropView.java
-com/android/launcher3/WallpaperCropActivity.java
-"""
-
-if len(sys.argv) != 2:
- print "Usage: python update_sytem_wallpaper_cropper.py <framework_dir>"
- exit()
-framework_dir = sys.argv[1] + "/packages/WallpaperCropper"
-for file_path in files.split():
- file_path = src_dir + file_path
- dir = os.path.dirname(file_path)
- dir = dir.replace("launcher3", "wallpapercropper")
- dir = dir.replace(src_dir, "src/")
- cmd = 'cp %s %s/%s' % (file_path, framework_dir, dir)
- print cmd
- os.system(cmd)