summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk18
-rw-r--r--AndroidManifest.xml74
-rw-r--r--CleanSpec.mk53
-rw-r--r--proguard.flags24
-rw-r--r--src/com/android/gallery3d/app/GalleryAppImpl.java1
5 files changed, 162 insertions, 8 deletions
diff --git a/Android.mk b/Android.mk
index 0f5170f64..6584c4a3f 100644
--- a/Android.mk
+++ b/Android.mk
@@ -8,17 +8,29 @@ LOCAL_STATIC_JAVA_LIBRARIES += com.android.gallery3d.common2
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_SRC_FILES += $(call all-java-files-under, src_pd)
+LOCAL_SRC_FILES += $(call all-java-files-under, ../Camera/src)
+
+LOCAL_RESOURCE_DIR += $(LOCAL_PATH)/res packages/apps/Camera/res
+LOCAL_AAPT_FLAGS := --auto-add-overlay --extra-packages com.android.camera
LOCAL_PACKAGE_NAME := Gallery2
LOCAL_OVERRIDES_PACKAGES := Gallery Gallery3D GalleryNew3D
-# We mark this out until Mtp and MediaMetadataRetriever is unhidden.
-LOCAL_SDK_VERSION := current
+#LOCAL_SDK_VERSION := current
+
+LOCAL_JNI_SHARED_LIBRARIES := libjni_mosaic
+
+LOCAL_REQUIRED_MODULES := libjni_mosaic
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
include $(BUILD_PACKAGE)
-# Use the following include to make our test apk.
+ifeq ($(strip $(LOCAL_PACKAGE_OVERRIDES)),)
+# Use the following include to make gallery test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))
+
+# Use the following include to make camera test apk.
+include $(call all-makefiles-under, ../Camera)
+endif
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 1477cf39f..2f2436d0c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,26 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
-<manifest android:versionCode="30682"
- android:versionName="1.1.30682"
+<manifest android:versionCode="40000"
+ android:versionName="1.1.40000"
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.gallery3d">
<original-package android:name="com.android.gallery3d" />
+ <uses-sdk android:minSdkVersion="14" />
+
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
+ <uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
+ <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<supports-screens android:smallScreens="false"
android:normalScreens="true" android:largeScreens="true"
@@ -28,7 +33,9 @@
<application android:icon="@mipmap/ic_launcher_gallery" android:label="@string/app_name"
android:name="com.android.gallery3d.app.GalleryAppImpl"
- android:theme="@style/Theme.Gallery">
+ android:theme="@style/Theme.Gallery"
+ android:hardwareAccelerated="true">
+ <uses-library android:name="com.google.android.media.effects" android:required="false" />
<activity android:name="com.android.gallery3d.app.MovieActivity"
android:label="@string/movie_view_label"
android:theme="@style/Theme.MovieActivity"
@@ -240,8 +247,60 @@
android:theme="@style/DialogPickerTheme"/>
<activity android:name="com.android.gallery3d.gadget.WidgetTypeChooser"
android:configChanges="keyboardHidden|orientation|screenSize"
- android:theme="@style/DialogPickerTheme"/>
+ android:theme="@android:style/Theme.Holo.Dialog"/>
+ <activity android:name="com.android.camera.Camera"
+ android:label="@string/camera_label"
+ android:theme="@style/ThemeCamera"
+ android:icon="@mipmap/ic_launcher_camera"
+ android:configChanges="orientation|screenSize|keyboardHidden"
+ android:clearTaskOnLaunch="true"
+ android:screenOrientation="behind"
+ android:windowSoftInputMode="stateAlwaysHidden|adjustPan">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.media.action.IMAGE_CAPTURE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.media.action.STILL_IMAGE_CAMERA" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+ <activity android:name="com.android.camera.VideoCamera"
+ android:label="@string/video_camera_label"
+ android:theme="@style/ThemeCamera"
+ android:configChanges="orientation|screenSize|keyboardHidden"
+ android:icon="@mipmap/ic_launcher_video_camera"
+ android:clearTaskOnLaunch="true"
+ android:screenOrientation="behind"
+ android:windowSoftInputMode="stateAlwaysHidden|adjustPan">
+ <intent-filter>
+ <action android:name="android.media.action.VIDEO_CAMERA" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.media.action.VIDEO_CAPTURE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+ <!-- Suppose users enter panorama from launcher, turn off the screen,
+ turn on the screen, and enter the camera from the lock screen.
+ They can switch to panorama from there. Use singleTask so there
+ will be only one panorama activity. -->
+ <activity android:name="com.android.camera.panorama.PanoramaActivity"
+ android:label="@string/pano_dialog_title"
+ android:theme="@style/ThemeCamera"
+ android:configChanges="orientation|screenSize|keyboardHidden"
+ android:clearTaskOnLaunch="true"
+ android:screenOrientation="behind"
+ android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
+ android:launchMode="singleTask">
+ </activity>
<receiver android:name="com.android.gallery3d.gadget.PhotoAppWidgetProvider"
android:label="@string/appwidget_title">
<intent-filter>
@@ -258,6 +317,11 @@
<data android:scheme="package"/>
</intent-filter>
</receiver>
+ <receiver android:name="com.android.camera.CameraButtonIntentReceiver">
+ <intent-filter>
+ <action android:name="android.intent.action.CAMERA_BUTTON"/>
+ </intent-filter>
+ </receiver>
<service android:name="com.android.gallery3d.gadget.WidgetService"
android:permission="android.permission.BIND_REMOTEVIEWS"/>
<activity android:name="com.android.gallery3d.gadget.WidgetConfigure"
diff --git a/CleanSpec.mk b/CleanSpec.mk
new file mode 100644
index 000000000..cc930a144
--- /dev/null
+++ b/CleanSpec.mk
@@ -0,0 +1,53 @@
+# Copyright (C) 2007 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# If you don't need to do a full clean build but would like to touch
+# a file or delete some intermediate files, add a clean step to the end
+# of the list. These steps will only be run once, if they haven't been
+# run before.
+#
+# E.g.:
+# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
+# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
+#
+# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
+# files that are missing or have been moved.
+#
+# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
+# Use $(OUT_DIR) to refer to the "out" directory.
+#
+# If you need to re-do something that's already mentioned, just copy
+# the command and add it to the bottom of the list. E.g., if a change
+# that you made last week required touching a file and a change you
+# made today requires touching the same file, just copy the old
+# touch step and add it to the end of the list.
+#
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+
+# For example:
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
+#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
+#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/Camera*)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Camera*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/Gallery*)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Gallery*)
+
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
diff --git a/proguard.flags b/proguard.flags
index a8cb36369..82509333c 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -8,3 +8,27 @@
-keep class * extends com.android.gallery3d.common.Entry {
@com.android.gallery3d.common.Entry$Column <fields>;
}
+
+# ctors of subclasses of CameraPreference are called with Java reflection.
+-keep class * extends com.android.camera.CameraPreference {
+ <init>(...);
+}
+
+-keep class com.android.camera.ActivityBase {
+ public int getResultCode();
+ public android.content.Intent getResultData();
+}
+
+-keep class com.android.camera.VideoCamera {
+ public boolean isRecording();
+ public void onCancelBgTraining(...);
+ public void onProtectiveCurtainClick(...);
+}
+
+-keep class * extends android.app.Activity {
+ @com.android.camera.OnClickAttr <methods>;
+}
+
+-keep class com.android.camera.CameraHolder {
+ public static void injectMockCamera(...);
+}
diff --git a/src/com/android/gallery3d/app/GalleryAppImpl.java b/src/com/android/gallery3d/app/GalleryAppImpl.java
index 8d25ebf7e..956ab63bf 100644
--- a/src/com/android/gallery3d/app/GalleryAppImpl.java
+++ b/src/com/android/gallery3d/app/GalleryAppImpl.java
@@ -42,6 +42,7 @@ public class GalleryAppImpl extends Application implements GalleryApp {
@Override
public void onCreate() {
super.onCreate();
+ com.android.camera.Util.initialize(this);
GalleryUtils.initialize(this);
WidgetUtils.initialize(this);
PicasaSource.initialize(this);