[automerger skipped] Import translations. DO NOT MERGE
am: 21caa6f1d3 -s ours
am skip reason: subject contains skip directive
Change-Id: Id888bed48ac77a605fe027e820a27e0cad2c32b5
diff --git a/Android.mk b/Android.mk
index 879692e..b24a2df 100644
--- a/Android.mk
+++ b/Android.mk
@@ -5,9 +5,9 @@
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_ANDROID_LIBRARIES := \
- android-support-v13 \
- android-support-v4 \
- android-support-compat
+ androidx.legacy_legacy-support-v13 \
+ androidx.legacy_legacy-support-v4 \
+ androidx.core_core
LOCAL_STATIC_JAVA_LIBRARIES := android-ex-camera2-portability
LOCAL_STATIC_JAVA_LIBRARIES += xmp_toolkit
@@ -36,6 +36,8 @@
LOCAL_SDK_VERSION := current
+LOCAL_PRODUCT_MODULE := true
+
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
# Guava uses deprecated org.apache.http.legacy classes.
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5fb8838..1f13e3e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -6,7 +6,7 @@
<uses-sdk
android:minSdkVersion="19"
- android:targetSdkVersion="24" />
+ android:targetSdkVersion="28" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
diff --git a/CleanSpec.mk b/CleanSpec.mk
index dd945b0..8df8308 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -43,8 +43,9 @@
#$(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)/system/app/Camera2)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib*/libjni_tinyplanet.so)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib*/libjni_jpegutil.so)
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
diff --git a/OWNERS b/OWNERS
new file mode 100644
index 0000000..ed1d60a
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1,3 @@
+# Default code reviewers picked from top 3 or more developers.
+# Please update this list if you find better candidates.
+rtenneti@google.com
diff --git a/jni/Android.mk b/jni/Android.mk
index 8e8de57..bdb4167 100644
--- a/jni/Android.mk
+++ b/jni/Android.mk
@@ -8,6 +8,7 @@
LOCAL_SDK_VERSION := 17
LOCAL_MODULE := libjni_tinyplanet
LOCAL_SRC_FILES := tinyplanet.cc
+LOCAL_PRODUCT_MODULE := true
LOCAL_CFLAGS += -ffast-math -O3 -funroll-loops
LOCAL_CFLAGS += -Wall -Wextra -Werror
@@ -22,6 +23,7 @@
LOCAL_LDFLAGS := -llog -ldl -ljnigraphics
LOCAL_SDK_VERSION := 17
LOCAL_MODULE := libjni_jpegutil
+LOCAL_PRODUCT_MODULE := true
LOCAL_SRC_FILES := jpegutil.cpp jpegutilnative.cpp
LOCAL_STATIC_LIBRARIES := libjpeg_static_ndk
diff --git a/src/com/android/camera/AccessibilityUtil.java b/src/com/android/camera/AccessibilityUtil.java
index 155a149..3b4c8f5 100644
--- a/src/com/android/camera/AccessibilityUtil.java
+++ b/src/com/android/camera/AccessibilityUtil.java
@@ -2,7 +2,7 @@
import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.Context;
-import android.support.v4.view.accessibility.AccessibilityManagerCompat;
+import androidx.core.view.accessibility.AccessibilityManagerCompat;
import android.view.View;
import android.view.accessibility.AccessibilityManager;
import android.widget.Button;
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index 3eceb8f..352fa38 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -1335,7 +1335,7 @@
private void removeItemAt(int index) {
mDataAdapter.removeAt(index);
- if (mDataAdapter.getTotalNumber() > 1) {
+ if (mDataAdapter.getTotalNumber() > 0) {
showUndoDeletionBar();
} else {
// If camera preview is the only view left in filmstrip,
@@ -1503,7 +1503,9 @@
// version.
profile.mark();
try {
- (new PictureSizeLoader(mAppContext)).computePictureSizes();
+ PictureSizeLoader pictureSizeLoader = new PictureSizeLoader(mAppContext);
+ pictureSizeLoader.computePictureSizes();
+ pictureSizeLoader.release();
} catch (AssertionError e) {
Log.e(TAG, "Creating camera controller failed.", e);
mFatalErrorHandler.onGenericCameraAccessFailure();
diff --git a/src/com/android/camera/SoundPlayer.java b/src/com/android/camera/SoundPlayer.java
index ff3f37f..6e76eb5 100644
--- a/src/com/android/camera/SoundPlayer.java
+++ b/src/com/android/camera/SoundPlayer.java
@@ -17,6 +17,7 @@
package com.android.camera;
import android.content.Context;
+import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.SoundPool;
import android.util.SparseIntArray;
@@ -39,8 +40,14 @@
*/
public SoundPlayer(Context appContext) {
mAppContext = appContext;
- final int audioType = getAudioTypeForSoundPool();
- mSoundPool = new SoundPool(1 /* max streams */, audioType, 0 /* quality */);
+ mSoundPool = new SoundPool.Builder()
+ .setMaxStreams(1)
+ .setAudioAttributes(new AudioAttributes.Builder()
+ .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
+ .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
+ .setFlags(AudioAttributes.FLAG_AUDIBILITY_ENFORCED)
+ .build())
+ .build();
}
/**
@@ -86,10 +93,4 @@
public boolean isReleased() {
return mIsReleased;
}
-
- private static int getAudioTypeForSoundPool() {
- // STREAM_SYSTEM_ENFORCED is hidden API.
- return ApiHelper.getIntFieldIfExists(AudioManager.class,
- "STREAM_SYSTEM_ENFORCED", null, AudioManager.STREAM_RING);
- }
}
diff --git a/src/com/android/camera/burst/RingBuffer.java b/src/com/android/camera/burst/RingBuffer.java
index 04fa7de..d5090c2 100644
--- a/src/com/android/camera/burst/RingBuffer.java
+++ b/src/com/android/camera/burst/RingBuffer.java
@@ -16,7 +16,7 @@
package com.android.camera.burst;
-import android.support.v4.util.LongSparseArray;
+import androidx.collection.LongSparseArray;
import com.android.camera.async.SafeCloseable;
import com.android.camera.one.v2.camera2proxy.ImageProxy;
diff --git a/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java b/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java
index a4b5a9b..031c610 100644
--- a/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java
+++ b/src/com/android/camera/one/v2/Camera2OneCameraManagerImpl.java
@@ -34,6 +34,8 @@
import com.android.camera.util.ApiHelper;
import com.google.common.base.Optional;
+import java.util.Hashtable;
+
import javax.annotation.Nonnull;
/**
@@ -62,9 +64,19 @@
}
private final CameraManager mCameraManager;
+ private Hashtable<Facing, String> mCameraFacingCache = new Hashtable<Facing, String>();
public Camera2OneCameraManagerImpl(CameraManager cameraManger) {
mCameraManager = cameraManger;
+
+ //Camera facing queries depending on camera implementation can be
+ //expensive and involve additional IPC with side effects. Cache front&
+ //back camera ids as early as possible.
+ if (mCameraManager != null) {
+ mCameraFacingCache.clear();
+ findFirstCameraFacing(Facing.BACK);
+ findFirstCameraFacing(Facing.FRONT);
+ }
}
@Override
@@ -122,11 +134,19 @@
/** Returns the ID of the first camera facing the given direction. */
private String findCameraId(Facing facing) {
- if (facing == Facing.FRONT) {
- return findFirstFrontCameraId();
- } else {
- return findFirstBackCameraId();
+ String id = mCameraFacingCache.get(facing);
+ if (id != null) {
+ return id;
}
+
+ if (facing == Facing.FRONT) {
+ id = findFirstFrontCameraId();
+ } else {
+ id = findFirstBackCameraId();
+ }
+
+ mCameraFacingCache.put(facing, id);
+ return id;
}
/** Returns the ID of the first back-facing camera. */
diff --git a/src/com/android/camera/one/v2/OneCameraZslImpl.java b/src/com/android/camera/one/v2/OneCameraZslImpl.java
index 6bdad44..5464ab8 100644
--- a/src/com/android/camera/one/v2/OneCameraZslImpl.java
+++ b/src/com/android/camera/one/v2/OneCameraZslImpl.java
@@ -39,7 +39,7 @@
import android.os.Handler;
import android.os.HandlerThread;
import android.os.SystemClock;
-import android.support.v4.util.Pools;
+import androidx.core.util.Pools;
import android.view.Surface;
import com.android.camera.CaptureModuleUtil;
diff --git a/src/com/android/camera/one/v2/autofocus/TriggerStateMachine.java b/src/com/android/camera/one/v2/autofocus/TriggerStateMachine.java
index 95d2523..86721ac 100644
--- a/src/com/android/camera/one/v2/autofocus/TriggerStateMachine.java
+++ b/src/com/android/camera/one/v2/autofocus/TriggerStateMachine.java
@@ -17,7 +17,7 @@
package com.android.camera.one.v2.autofocus;
import android.hardware.camera2.CaptureResult;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
import com.android.camera.async.Updatable;
diff --git a/src/com/android/camera/one/v2/photo/zsl/ZslImageCaptureCommand.java b/src/com/android/camera/one/v2/photo/zsl/ZslImageCaptureCommand.java
index 4b8e8fc..cb4edd7 100644
--- a/src/com/android/camera/one/v2/photo/zsl/ZslImageCaptureCommand.java
+++ b/src/com/android/camera/one/v2/photo/zsl/ZslImageCaptureCommand.java
@@ -17,7 +17,7 @@
package com.android.camera.one.v2.photo.zsl;
import android.hardware.camera2.CameraAccessException;
-import android.support.v4.util.Pair;
+import androidx.core.util.Pair;
import com.android.camera.async.BufferQueue;
import com.android.camera.async.Updatable;
diff --git a/src/com/android/camera/processing/ProcessingService.java b/src/com/android/camera/processing/ProcessingService.java
index c67ebd6..1e48095 100644
--- a/src/com/android/camera/processing/ProcessingService.java
+++ b/src/com/android/camera/processing/ProcessingService.java
@@ -27,7 +27,7 @@
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.Process;
-import android.support.v4.content.LocalBroadcastManager;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.android.camera.app.CameraServices;
import com.android.camera.app.CameraServicesImpl;
diff --git a/src/com/android/camera/settings/AppUpgrader.java b/src/com/android/camera/settings/AppUpgrader.java
index 92bd953..930c3e2 100644
--- a/src/com/android/camera/settings/AppUpgrader.java
+++ b/src/com/android/camera/settings/AppUpgrader.java
@@ -145,6 +145,7 @@
// chooser if applicable.
settingsManager.remove(SettingsManager.SCOPE_GLOBAL,
Keys.KEY_STARTUP_MODULE_INDEX);
+ CameraAgentFactory.recycle(CameraAgentFactory.CameraApi.API_1);
}
if (lastVersion < CAMERA_MODULE_SETTINGS_FILES_RENAMED_VERSION) {
diff --git a/src/com/android/camera/settings/CameraSettingsActivity.java b/src/com/android/camera/settings/CameraSettingsActivity.java
index 50641fd..0429092 100644
--- a/src/com/android/camera/settings/CameraSettingsActivity.java
+++ b/src/com/android/camera/settings/CameraSettingsActivity.java
@@ -29,7 +29,7 @@
import android.preference.PreferenceFragment;
import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
-import android.support.v4.app.FragmentActivity;
+import androidx.fragment.app.FragmentActivity;
import android.view.MenuItem;
import com.android.camera.FatalErrorHandler;
@@ -180,6 +180,7 @@
mInfos = CameraAgentFactory
.getAndroidCameraAgent(context, CameraAgentFactory.CameraApi.API_1)
.getCameraDeviceInfo();
+ CameraAgentFactory.recycle(CameraAgentFactory.CameraApi.API_1);
}
@Override
@@ -498,6 +499,7 @@
}
PictureSizeLoader loader = new PictureSizeLoader(getActivity().getApplicationContext());
mPictureSizes = loader.computePictureSizes();
+ loader.release();
}
/**
diff --git a/src/com/android/camera/settings/PictureSizeLoader.java b/src/com/android/camera/settings/PictureSizeLoader.java
index a3cb49b..582d77f 100644
--- a/src/com/android/camera/settings/PictureSizeLoader.java
+++ b/src/com/android/camera/settings/PictureSizeLoader.java
@@ -97,6 +97,10 @@
mCachedOnly = cachedOnly;
}
+ public void release(){
+ CameraAgentFactory.recycle(CameraAgentFactory.CameraApi.API_1);
+ }
+
/**
* Computes the list of picture sizes that should be displayed by settings.
* <p>
diff --git a/src/com/android/camera/util/AndroidContext.java b/src/com/android/camera/util/AndroidContext.java
index 6fc50c4..72f3478 100644
--- a/src/com/android/camera/util/AndroidContext.java
+++ b/src/com/android/camera/util/AndroidContext.java
@@ -17,7 +17,7 @@
package com.android.camera.util;
import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
/**
* Initializable singleton for providing the application level context
diff --git a/version.mk b/version.mk
index 3424b9d..9c3997e 100644
--- a/version.mk
+++ b/version.mk
@@ -88,7 +88,7 @@
ifeq ($(strip $(HAS_BUILD_NUMBER)),false)
git_hash := $(shell git --git-dir $(LOCAL_PATH)/.git log -n 1 --pretty=format:%h)
date_string := $$(date +%m%d%y_%H%M%S)
- version_name_package := $(base_version_major).$(base_version_minor).$(base_version_build) (eng.$(USER).$(git_hash).$(date_string)-$(base_version_arch)$(base_version_density))
+ version_name_package := $(base_version_major).$(base_version_minor).$(base_version_build) (eng.$(BUILD_USERNAME).$(git_hash).$(date_string)-$(base_version_arch)$(base_version_density))
else
version_name_package := $(base_version_major).$(base_version_minor).$(base_version_build) ($(BUILD_NUMBER_FROM_FILE)-$(base_version_arch)$(base_version_density))
endif