Separating out configs and common manifest entries

This separation allows for easier modification of Launcher3
by derivative projects

Change-Id: Ib3469e9b5d2707daef572050698d792316534d45
This commit is contained in:
Sunny Goyal 2016-05-23 21:40:53 -07:00
parent 33c2ed341e
commit d83a67a6b4
8 changed files with 113 additions and 163 deletions

View File

@ -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)
#

View File

@ -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>

View File

@ -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"/>
<!--
Manifest entries specific to Launcher3. This is merged with AndroidManifest-common.xml.
Refer comments around specific entries on how to extend individual components.
-->
<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" />
<!--
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

View File

@ -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/'
}

View File

@ -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)

View File

@ -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)