From e8c352811e3fe1070d5a3fd78c9dfb1b426a2653 Mon Sep 17 00:00:00 2001 From: cjh1249131356 Date: Tue, 16 Aug 2022 18:30:30 +0800 Subject: [PATCH] sm8250-common: Add support for OnePlus Camera & Gallery * Camera repo: https://gitlab.com/cjh1249131356/vendor_oneplus_camera Signed-off-by: cjh1249131356 --- BoardConfigCommon.mk | 3 + common.mk | 11 ++ init/init.qcom.rc | 2 + init/init.target.rc | 5 + oplus-fwk/Android.bp | 9 ++ .../src/android/app/OplusActivityManager.java | 25 +++++ .../src/android/app/job/IJobInfoExt.java | 43 +++++++ .../android/common/IOplusCommonFeature.java | 14 +++ .../src/android/common/OplusFeatureList.java | 8 ++ .../android/common/OplusFrameworkFactory.java | 13 +++ .../src/android/view/OplusWindowManager.java | 6 + .../src/com/oplus/app/OplusAppEnterInfo.java | 6 + .../src/com/oplus/app/OplusAppExitInfo.java | 6 + oplus-fwk/src/com/oplus/app/OplusAppInfo.java | 6 + .../com/oplus/app/OplusAppSwitchConfig.java | 8 ++ .../com/oplus/app/OplusAppSwitchManager.java | 37 ++++++ .../content/OplusFeatureConfigManager.java | 17 +++ .../com/oplus/orms/OplusResourceManager.java | 19 ++++ .../src/com/oplus/orms/info/OrmsSaParam.java | 8 ++ oplus-fwk/src/com/oplus/os/OplusBuild.java | 8 ++ .../src/com/oplus/os/OplusUsbEnvironment.java | 105 ++++++++++++++++++ .../OplusLongshotCustomController.java | 6 + .../screenshot/OplusLongshotViewBase.java | 20 ++++ .../screenshot/OplusLongshowViewInfo.java | 6 + .../com/oplus/util/OplusChangeTextUtil.java | 52 +++++++++ .../zoomwindow/IOplusZoomWindowObserver.aidl | 11 ++ .../oplus/zoomwindow/OplusZoomWindowInfo.aidl | 3 + .../oplus/zoomwindow/OplusZoomWindowInfo.java | 37 ++++++ .../zoomwindow/OplusZoomWindowManager.java | 21 ++++ .../oneplus/odm/OpDeviceManagerInjector.java | 19 ++++ product.prop | 4 + proprietary-files.txt | 52 +++++++++ system_ext.prop | 5 + vendor.prop | 4 + 34 files changed, 599 insertions(+) create mode 100644 oplus-fwk/Android.bp create mode 100644 oplus-fwk/src/android/app/OplusActivityManager.java create mode 100644 oplus-fwk/src/android/app/job/IJobInfoExt.java create mode 100644 oplus-fwk/src/android/common/IOplusCommonFeature.java create mode 100644 oplus-fwk/src/android/common/OplusFeatureList.java create mode 100644 oplus-fwk/src/android/common/OplusFrameworkFactory.java create mode 100644 oplus-fwk/src/android/view/OplusWindowManager.java create mode 100644 oplus-fwk/src/com/oplus/app/OplusAppEnterInfo.java create mode 100644 oplus-fwk/src/com/oplus/app/OplusAppExitInfo.java create mode 100644 oplus-fwk/src/com/oplus/app/OplusAppInfo.java create mode 100644 oplus-fwk/src/com/oplus/app/OplusAppSwitchConfig.java create mode 100644 oplus-fwk/src/com/oplus/app/OplusAppSwitchManager.java create mode 100644 oplus-fwk/src/com/oplus/content/OplusFeatureConfigManager.java create mode 100644 oplus-fwk/src/com/oplus/orms/OplusResourceManager.java create mode 100644 oplus-fwk/src/com/oplus/orms/info/OrmsSaParam.java create mode 100644 oplus-fwk/src/com/oplus/os/OplusBuild.java create mode 100644 oplus-fwk/src/com/oplus/os/OplusUsbEnvironment.java create mode 100644 oplus-fwk/src/com/oplus/screenshot/OplusLongshotCustomController.java create mode 100644 oplus-fwk/src/com/oplus/screenshot/OplusLongshotViewBase.java create mode 100644 oplus-fwk/src/com/oplus/screenshot/OplusLongshowViewInfo.java create mode 100644 oplus-fwk/src/com/oplus/util/OplusChangeTextUtil.java create mode 100644 oplus-fwk/src/com/oplus/zoomwindow/IOplusZoomWindowObserver.aidl create mode 100644 oplus-fwk/src/com/oplus/zoomwindow/OplusZoomWindowInfo.aidl create mode 100644 oplus-fwk/src/com/oplus/zoomwindow/OplusZoomWindowInfo.java create mode 100644 oplus-fwk/src/com/oplus/zoomwindow/OplusZoomWindowManager.java create mode 100644 oplus-fwk/src/net/oneplus/odm/OpDeviceManagerInjector.java diff --git a/BoardConfigCommon.mk b/BoardConfigCommon.mk index 355b8b9d..3a2da7d7 100644 --- a/BoardConfigCommon.mk +++ b/BoardConfigCommon.mk @@ -57,6 +57,9 @@ BOARD_USES_ALSA_AUDIO := true # Bootloader TARGET_BOOTLOADER_BOARD_NAME := kona +# Camera +TARGET_USES_OPLUS_CAMERA := true + # Properties TARGET_ODM_PROP += $(COMMON_PATH)/odm.prop TARGET_PRODUCT_PROP += $(COMMON_PATH)/product.prop diff --git a/common.mk b/common.mk index 83ded71a..09bff500 100644 --- a/common.mk +++ b/common.mk @@ -117,6 +117,7 @@ PRODUCT_PACKAGES += \ android.hardware.camera.provider@2.4-impl \ android.hardware.camera.provider@2.4-service_64 \ libcamera_metadata_shim \ + libcamera2ndk_vendor \ vendor.qti.hardware.camera.postproc@1.0.vendor PRODUCT_COPY_FILES += \ @@ -331,6 +332,13 @@ PRODUCT_PACKAGES += \ OPSoundTunerOverlay \ WifiResTarget +# Oplus-fwk +PRODUCT_PACKAGES += \ + oplus-fwk + +PRODUCT_BOOT_JARS += \ + oplus-fwk + # Partitions PRODUCT_USE_DYNAMIC_PARTITIONS := true @@ -483,5 +491,8 @@ PRODUCT_PACKAGES += \ PRODUCT_BOOT_JARS += \ WfdCommon +# Inherit from the OnePlus Camera makefile. +$(call inherit-product, vendor/oneplus/camera/camera-vendor.mk) + # Inherit from the proprietary files makefile. $(call inherit-product, vendor/oneplus/sm8250-common/sm8250-common-vendor.mk) diff --git a/init/init.qcom.rc b/init/init.qcom.rc index 4236498d..7d433f75 100644 --- a/init/init.qcom.rc +++ b/init/init.qcom.rc @@ -62,6 +62,8 @@ on init write /sys/kernel/icnss/wpss_boot 1 chmod 0660 /sys/fs/cgroup/memory/bg/tasks + setprop vendor.boot.project_name ${ro.boot.project_name} + on early-boot # set RLIMIT_MEMLOCK to 64MB setrlimit 8 67108864 67108864 diff --git a/init/init.target.rc b/init/init.target.rc index c3b75549..b52edf24 100644 --- a/init/init.target.rc +++ b/init/init.target.rc @@ -51,6 +51,11 @@ on fs restorecon_recursive /mnt/vendor/persist mkdir /mnt/vendor/persist/data 0700 system system + mkdir /mnt/vendor/dsp 0770 root root + copy /vendor/dsp/cdsp/fastrpc_shell_3 /mnt/vendor/dsp/fastrpc_shell_3 + chmod 0644 /mnt/vendor/dsp/fastrpc_shell_3 + mount none /mnt/vendor/dsp/fastrpc_shell_3 /vendor/dsp/cdsp/fastrpc_shell_3 bind + on post-fs # set RLIMIT_MEMLOCK to 64MB setrlimit 8 67108864 67108864 diff --git a/oplus-fwk/Android.bp b/oplus-fwk/Android.bp new file mode 100644 index 00000000..1bb84439 --- /dev/null +++ b/oplus-fwk/Android.bp @@ -0,0 +1,9 @@ +java_library { + name: "oplus-fwk", + installable: true, + + srcs: [ + "src/**/*.aidl", + "src/**/*.java", + ], +} diff --git a/oplus-fwk/src/android/app/OplusActivityManager.java b/oplus-fwk/src/android/app/OplusActivityManager.java new file mode 100644 index 00000000..3d51afce --- /dev/null +++ b/oplus-fwk/src/android/app/OplusActivityManager.java @@ -0,0 +1,25 @@ +package android.app; + +import android.os.RemoteException; + +import com.oplus.app.OplusAppInfo; + +import java.util.ArrayList; +import java.util.List; + +public class OplusActivityManager { + + private static OplusActivityManager sOplusActivityManager = null; + private static ArrayList sTopAppInfos = new ArrayList(); + + public static OplusActivityManager getInstance() { + if (sOplusActivityManager == null) { + sOplusActivityManager = new OplusActivityManager(); + } + return sOplusActivityManager; + } + + public List getAllTopAppInfos() throws RemoteException { + return (ArrayList) sTopAppInfos.clone(); + } +} diff --git a/oplus-fwk/src/android/app/job/IJobInfoExt.java b/oplus-fwk/src/android/app/job/IJobInfoExt.java new file mode 100644 index 00000000..d8b96e95 --- /dev/null +++ b/oplus-fwk/src/android/app/job/IJobInfoExt.java @@ -0,0 +1,43 @@ +package android.app.job; + +public interface IJobInfoExt { + + public final class JobBuilderExt { + + public boolean mIsOplusJob; + + public JobBuilderExt setRequiresBattIdle(boolean requiresBattIdle, int extra) { + return this; + } + } + + default boolean getBooleanConstraint(String type, boolean defValue) { + return defValue; + } + + default String getStringConstraint(String type, String defValue) { + return defValue; + } + + default int getIntConstraint(String type, int defValue) { + return defValue; + } + + default long getLongConstraint(String type, long defValue) { + return defValue; + } + + default void setBooleanConstraint(String type, boolean value) {} + + default void setStringConstraint(String type, String value) {} + + default void setIntConstraint(String type, int value) {} + + default void setLongConstraint(JobInfo job, String type, long value) {} + + default void initJobInfo(Object in) {} + + default void initJobInfoPure(JobBuilderExt jobBuilderExt) {} + + default void writeToParcelJobInfo(Object out, int flags) {} +} diff --git a/oplus-fwk/src/android/common/IOplusCommonFeature.java b/oplus-fwk/src/android/common/IOplusCommonFeature.java new file mode 100644 index 00000000..6662a68e --- /dev/null +++ b/oplus-fwk/src/android/common/IOplusCommonFeature.java @@ -0,0 +1,14 @@ +package android.common; + +import android.common.OplusFeatureList; + +public interface IOplusCommonFeature { + + default OplusFeatureList.OplusIndex index() { + return OplusFeatureList.OplusIndex.End; + } + + default IOplusCommonFeature getDefault() { + return null; + } +} diff --git a/oplus-fwk/src/android/common/OplusFeatureList.java b/oplus-fwk/src/android/common/OplusFeatureList.java new file mode 100644 index 00000000..fdc91f99 --- /dev/null +++ b/oplus-fwk/src/android/common/OplusFeatureList.java @@ -0,0 +1,8 @@ +package android.common; + +public class OplusFeatureList { + + public enum OplusIndex { + End + } +} diff --git a/oplus-fwk/src/android/common/OplusFrameworkFactory.java b/oplus-fwk/src/android/common/OplusFrameworkFactory.java new file mode 100644 index 00000000..26687d53 --- /dev/null +++ b/oplus-fwk/src/android/common/OplusFrameworkFactory.java @@ -0,0 +1,13 @@ +package android.common; + +public class OplusFrameworkFactory { + + private static OplusFrameworkFactory sOplusFrameworkFactory = null; + + public static OplusFrameworkFactory getInstance() { + if (sOplusFrameworkFactory == null) { + sOplusFrameworkFactory = new OplusFrameworkFactory(); + } + return sOplusFrameworkFactory; + } +} diff --git a/oplus-fwk/src/android/view/OplusWindowManager.java b/oplus-fwk/src/android/view/OplusWindowManager.java new file mode 100644 index 00000000..806f2a56 --- /dev/null +++ b/oplus-fwk/src/android/view/OplusWindowManager.java @@ -0,0 +1,6 @@ +package android.view; + +public class OplusWindowManager { + + public OplusWindowManager() {} +} diff --git a/oplus-fwk/src/com/oplus/app/OplusAppEnterInfo.java b/oplus-fwk/src/com/oplus/app/OplusAppEnterInfo.java new file mode 100644 index 00000000..b86bd9e8 --- /dev/null +++ b/oplus-fwk/src/com/oplus/app/OplusAppEnterInfo.java @@ -0,0 +1,6 @@ +package com.oplus.app; + +public class OplusAppEnterInfo { + + public OplusAppEnterInfo() {} +} diff --git a/oplus-fwk/src/com/oplus/app/OplusAppExitInfo.java b/oplus-fwk/src/com/oplus/app/OplusAppExitInfo.java new file mode 100644 index 00000000..7517a98e --- /dev/null +++ b/oplus-fwk/src/com/oplus/app/OplusAppExitInfo.java @@ -0,0 +1,6 @@ +package com.oplus.app; + +public class OplusAppExitInfo { + + public OplusAppExitInfo() {} +} diff --git a/oplus-fwk/src/com/oplus/app/OplusAppInfo.java b/oplus-fwk/src/com/oplus/app/OplusAppInfo.java new file mode 100644 index 00000000..e5f63af6 --- /dev/null +++ b/oplus-fwk/src/com/oplus/app/OplusAppInfo.java @@ -0,0 +1,6 @@ +package com.oplus.app; + +public class OplusAppInfo { + + public OplusAppInfo() {} +} diff --git a/oplus-fwk/src/com/oplus/app/OplusAppSwitchConfig.java b/oplus-fwk/src/com/oplus/app/OplusAppSwitchConfig.java new file mode 100644 index 00000000..c7b5da0b --- /dev/null +++ b/oplus-fwk/src/com/oplus/app/OplusAppSwitchConfig.java @@ -0,0 +1,8 @@ +package com.oplus.app; + +import java.util.List; + +public class OplusAppSwitchConfig { + + public void addAppConfig(int type, List list) {} +} diff --git a/oplus-fwk/src/com/oplus/app/OplusAppSwitchManager.java b/oplus-fwk/src/com/oplus/app/OplusAppSwitchManager.java new file mode 100644 index 00000000..b120b85e --- /dev/null +++ b/oplus-fwk/src/com/oplus/app/OplusAppSwitchManager.java @@ -0,0 +1,37 @@ +package com.oplus.app; + +import android.content.Context; + +public class OplusAppSwitchManager { + + private static OplusAppSwitchManager sOplusAppSwitchManager = null; + + public static int APP_SWITCH_VERSION = 1; + + public static OplusAppSwitchManager getInstance() { + if (sOplusAppSwitchManager == null) { + sOplusAppSwitchManager = new OplusAppSwitchManager(); + } + return sOplusAppSwitchManager; + } + + public boolean registerAppSwitchObserver(Context context, + OnAppSwitchObserver observer, OplusAppSwitchConfig config) { + return true; + } + + public boolean unregisterAppSwitchObserver(Context context, OnAppSwitchObserver observer) { + return true; + } + + public interface OnAppSwitchObserver { + + void onActivityEnter(OplusAppEnterInfo oplusAppEnterInfo); + + void onActivityExit(OplusAppExitInfo oplusAppExitInfo); + + void onAppEnter(OplusAppEnterInfo oplusAppEnterInfo); + + void onAppExit(OplusAppExitInfo oplusAppExitInfo); + } +} diff --git a/oplus-fwk/src/com/oplus/content/OplusFeatureConfigManager.java b/oplus-fwk/src/com/oplus/content/OplusFeatureConfigManager.java new file mode 100644 index 00000000..91bfcd9e --- /dev/null +++ b/oplus-fwk/src/com/oplus/content/OplusFeatureConfigManager.java @@ -0,0 +1,17 @@ +package com.oplus.content; + +public class OplusFeatureConfigManager { + + public static OplusFeatureConfigManager sOplusFeatureConfigManager = null; + + public static OplusFeatureConfigManager getInstance() { + if (sOplusFeatureConfigManager == null) { + sOplusFeatureConfigManager = new OplusFeatureConfigManager(); + } + return sOplusFeatureConfigManager; + } + + public boolean hasFeature(String name) { + return false; + } +} diff --git a/oplus-fwk/src/com/oplus/orms/OplusResourceManager.java b/oplus-fwk/src/com/oplus/orms/OplusResourceManager.java new file mode 100644 index 00000000..6c75b272 --- /dev/null +++ b/oplus-fwk/src/com/oplus/orms/OplusResourceManager.java @@ -0,0 +1,19 @@ +package com.oplus.orms; + +import com.oplus.orms.info.OrmsSaParam; + +public class OplusResourceManager { + + private static OplusResourceManager sOplusResourceManager = null; + + public static OplusResourceManager getInstance(Class clazz) { + if (sOplusResourceManager == null) { + sOplusResourceManager = new OplusResourceManager(); + } + return sOplusResourceManager; + } + + public long ormsSetSceneAction(OrmsSaParam ormsSaParam) { + return -1L; + } +} diff --git a/oplus-fwk/src/com/oplus/orms/info/OrmsSaParam.java b/oplus-fwk/src/com/oplus/orms/info/OrmsSaParam.java new file mode 100644 index 00000000..ade82968 --- /dev/null +++ b/oplus-fwk/src/com/oplus/orms/info/OrmsSaParam.java @@ -0,0 +1,8 @@ +package com.oplus.orms.info; + +public class OrmsSaParam { + + public OrmsSaParam() {} + + public OrmsSaParam(String scene, String action, int timeout) {} +} diff --git a/oplus-fwk/src/com/oplus/os/OplusBuild.java b/oplus-fwk/src/com/oplus/os/OplusBuild.java new file mode 100644 index 00000000..f2647cad --- /dev/null +++ b/oplus-fwk/src/com/oplus/os/OplusBuild.java @@ -0,0 +1,8 @@ +package com.oplus.os; + +public class OplusBuild { + + public static int getOplusOSVERSION() { + return 23; + } +} diff --git a/oplus-fwk/src/com/oplus/os/OplusUsbEnvironment.java b/oplus-fwk/src/com/oplus/os/OplusUsbEnvironment.java new file mode 100644 index 00000000..19ac5b40 --- /dev/null +++ b/oplus-fwk/src/com/oplus/os/OplusUsbEnvironment.java @@ -0,0 +1,105 @@ +package com.oplus.os; + +import android.content.Context; +import android.os.Environment; +import android.os.RemoteException; +import android.os.ServiceManager; +import android.os.UserHandle; +import android.os.storage.DiskInfo; +import android.os.storage.IStorageManager; +import android.os.storage.StorageManager; +import android.os.storage.VolumeInfo; +import android.util.Log; + +import java.util.ArrayList; +import java.util.List; + +public class OplusUsbEnvironment extends Environment { + + private static final String TAG = "OplusUsbEnvironment"; + private static final String DEFAULT_INTERNAL_PATH = "/storage/emulated/0"; + + private static IStorageManager sMountService = null; + private static Object sLock = new Object(); + private static String sExternalSdDir = null; + private static String sInternalSdDir = DEFAULT_INTERNAL_PATH; + private static ArrayList sOtgPathes = new ArrayList<>(); + + private static void update(Context context) { + if (sMountService == null) { + sMountService = IStorageManager.Stub.asInterface(ServiceManager.getService("mount")); + } + getVolumes(); + } + + public static String getExternalPath(Context context) { + String path; + synchronized (sLock) { + update(context); + path = sExternalSdDir; + } + return path; + } + + public static String getInternalPath(Context context) { + String path; + synchronized (sLock) { + update(context); + path = sInternalSdDir; + } + return path; + } + + public static List getOtgPath(Context context) { + synchronized (sLock) { + update(context); + if (sOtgPathes == null) { + return null; + } + return (ArrayList) sOtgPathes.clone(); + } + } + + public static void getVolumes() { + if (sMountService == null) { + Log.e(TAG, "getVolumes: sMountService is null!!!"); + return; + } + try { + final VolumeInfo[] vols = sMountService.getVolumes(0); + sExternalSdDir = null; + sOtgPathes.clear(); + for (VolumeInfo vol : vols) { + final String path = vol.path; + if (vol.type == 2) { + final int userId = UserHandle.myUserId(); + if (path != null) { + sInternalSdDir = path.concat("/").concat(Integer.toString(userId)); + } + } else { + final DiskInfo diskInfo = vol.getDisk(); + if (diskInfo != null) { + if (diskInfo.isSd() && path != null) { + sExternalSdDir = path; + } + if (diskInfo.isUsb() && path != null && !sOtgPathes.contains(path)) { + sOtgPathes.add(path); + } + } + } + } + } catch (RemoteException e) { + } + } + + public static boolean isVolumeMounted(Context context, String path) { + synchronized (sLock) { + update(context); + } + final StorageManager sm = (StorageManager) context.getSystemService("storage"); + if (path == null || sm == null) { + return false; + } + return "mounted".equals(sm.getVolumeState(path)); + } +} diff --git a/oplus-fwk/src/com/oplus/screenshot/OplusLongshotCustomController.java b/oplus-fwk/src/com/oplus/screenshot/OplusLongshotCustomController.java new file mode 100644 index 00000000..c42eb2ee --- /dev/null +++ b/oplus-fwk/src/com/oplus/screenshot/OplusLongshotCustomController.java @@ -0,0 +1,6 @@ +package com.oplus.screenshot; + +public class OplusLongshotCustomController { + + public OplusLongshotCustomController(OplusLongshotViewBase view, String source) {} +} diff --git a/oplus-fwk/src/com/oplus/screenshot/OplusLongshotViewBase.java b/oplus-fwk/src/com/oplus/screenshot/OplusLongshotViewBase.java new file mode 100644 index 00000000..24c276c0 --- /dev/null +++ b/oplus-fwk/src/com/oplus/screenshot/OplusLongshotViewBase.java @@ -0,0 +1,20 @@ +package com.oplus.screenshot; + +import android.content.Context; + +public interface OplusLongshotViewBase { + + boolean canLongScroll(); + + int computeLongScrollExtent(); + + int computeLongScrollOffset(); + + int computeLongScrollRange(); + + boolean findViewsLongshotInfo(OplusLongshowViewInfo oplusLongshowViewInfo); + + Context getContext(); + + boolean isLongshotVisibleToUser(); +} diff --git a/oplus-fwk/src/com/oplus/screenshot/OplusLongshowViewInfo.java b/oplus-fwk/src/com/oplus/screenshot/OplusLongshowViewInfo.java new file mode 100644 index 00000000..4c83c665 --- /dev/null +++ b/oplus-fwk/src/com/oplus/screenshot/OplusLongshowViewInfo.java @@ -0,0 +1,6 @@ +package com.oplus.screenshot; + +public class OplusLongshowViewInfo { + + public OplusLongshowViewInfo() {} +} diff --git a/oplus-fwk/src/com/oplus/util/OplusChangeTextUtil.java b/oplus-fwk/src/com/oplus/util/OplusChangeTextUtil.java new file mode 100644 index 00000000..fe8872ae --- /dev/null +++ b/oplus-fwk/src/com/oplus/util/OplusChangeTextUtil.java @@ -0,0 +1,52 @@ +package com.oplus.util; + +public class OplusChangeTextUtil { + + private static final String TAG = "OplusChangeTextUtil"; + + private static final float H1 = 0.9f; + private static final float H2 = 1.0f; + private static final float H3 = 1.1f; + private static final float H4 = 1.25f; + private static final float H5 = 1.45f; + private static final float H6 = 1.65f; + + public static final int G1 = 1; + public static final int G2 = 2; + public static final int G3 = 3; + public static final int G4 = 4; + public static final int G5 = 5; + public static final int G6 = 6; + + public static final float[] SCALE_LEVEL = {H1, H2, H3, H4, H5, H6}; + + public static float getSuitableFontSize(float textSize, float scale, int level) { + if (level < 2) { + return textSize; + } + if (level > SCALE_LEVEL.length) { + level = SCALE_LEVEL.length; + } + final float textSizeNoScale = textSize / scale; + switch (level) { + case G2: + if (scale < H3) { + return H2 * textSizeNoScale; + } + return H3 * textSizeNoScale; + case G3: + if (scale < H3) { + return H2 * textSizeNoScale; + } + if (scale < H5) { + return H3 * textSizeNoScale; + } + return H4 * textSizeNoScale; + default: + if (scale > SCALE_LEVEL[level - 1]) { + return SCALE_LEVEL[level - 1] * textSizeNoScale; + } + return textSizeNoScale * scale; + } + } +} diff --git a/oplus-fwk/src/com/oplus/zoomwindow/IOplusZoomWindowObserver.aidl b/oplus-fwk/src/com/oplus/zoomwindow/IOplusZoomWindowObserver.aidl new file mode 100644 index 00000000..660dd747 --- /dev/null +++ b/oplus-fwk/src/com/oplus/zoomwindow/IOplusZoomWindowObserver.aidl @@ -0,0 +1,11 @@ +package com.oplus.zoomwindow; + +import com.oplus.zoomwindow.OplusZoomWindowInfo; + +interface IOplusZoomWindowObserver { + + void onInputMethodChanged(boolean z); + void onZoomWindowDied(String str); + void onZoomWindowHide(inout OplusZoomWindowInfo oplusZoomWindowInfo); + void onZoomWindowShow(inout OplusZoomWindowInfo oplusZoomWindowInfo); +} diff --git a/oplus-fwk/src/com/oplus/zoomwindow/OplusZoomWindowInfo.aidl b/oplus-fwk/src/com/oplus/zoomwindow/OplusZoomWindowInfo.aidl new file mode 100644 index 00000000..077f18db --- /dev/null +++ b/oplus-fwk/src/com/oplus/zoomwindow/OplusZoomWindowInfo.aidl @@ -0,0 +1,3 @@ +package com.oplus.zoomwindow; + +parcelable OplusZoomWindowInfo; diff --git a/oplus-fwk/src/com/oplus/zoomwindow/OplusZoomWindowInfo.java b/oplus-fwk/src/com/oplus/zoomwindow/OplusZoomWindowInfo.java new file mode 100644 index 00000000..682a8b63 --- /dev/null +++ b/oplus-fwk/src/com/oplus/zoomwindow/OplusZoomWindowInfo.java @@ -0,0 +1,37 @@ +package com.oplus.zoomwindow; + +import android.os.Parcel; +import android.os.Parcelable; + +public class OplusZoomWindowInfo implements Parcelable { + + public static final Parcelable.Creator CREATOR = + new Parcelable.Creator() { + + @Override + public OplusZoomWindowInfo createFromParcel(Parcel source) { + return new OplusZoomWindowInfo(source); + } + + @Override + public OplusZoomWindowInfo[] newArray(int size) { + return new OplusZoomWindowInfo[size]; + } + }; + + public OplusZoomWindowInfo() {} + + public OplusZoomWindowInfo(Parcel in) {} + + public OplusZoomWindowInfo(OplusZoomWindowInfo in) {} + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) {} + + public void readFromParcel(Parcel in) {} +} diff --git a/oplus-fwk/src/com/oplus/zoomwindow/OplusZoomWindowManager.java b/oplus-fwk/src/com/oplus/zoomwindow/OplusZoomWindowManager.java new file mode 100644 index 00000000..60752569 --- /dev/null +++ b/oplus-fwk/src/com/oplus/zoomwindow/OplusZoomWindowManager.java @@ -0,0 +1,21 @@ +package com.oplus.zoomwindow; + +public class OplusZoomWindowManager { + + public static OplusZoomWindowManager sOplusZoomWindowManager = null; + + public static OplusZoomWindowManager getInstance() { + if (sOplusZoomWindowManager == null) { + sOplusZoomWindowManager = new OplusZoomWindowManager(); + } + return sOplusZoomWindowManager; + } + + public boolean registerZoomWindowObserver(IOplusZoomWindowObserver observer) { + return false; + } + + public boolean unregisterZoomWindowObserver(IOplusZoomWindowObserver observer) { + return false; + } +} diff --git a/oplus-fwk/src/net/oneplus/odm/OpDeviceManagerInjector.java b/oplus-fwk/src/net/oneplus/odm/OpDeviceManagerInjector.java new file mode 100644 index 00000000..b03a3a2e --- /dev/null +++ b/oplus-fwk/src/net/oneplus/odm/OpDeviceManagerInjector.java @@ -0,0 +1,19 @@ +package net.oneplus.odm; + +import android.content.Context; + +import java.util.Map; + +public class OpDeviceManagerInjector { + + private static OpDeviceManagerInjector sOpDeviceManagerInjector = null; + + public void preserveAppData(Context a, String b, Map c, Map d) {} + + public static OpDeviceManagerInjector getInstance() { + if (sOpDeviceManagerInjector == null) { + sOpDeviceManagerInjector = new OpDeviceManagerInjector(); + } + return sOpDeviceManagerInjector; + } +} diff --git a/product.prop b/product.prop index bcc2487b..49f8e433 100644 --- a/product.prop +++ b/product.prop @@ -3,3 +3,7 @@ af.fast_track_multiplier=1 # GMS ro.opa.device_model_id=ga-oplus-skill-os121-211011 + +# Google Lens +ro.com.google.lens.oem_camera_package=com.oneplus.camera +ro.com.google.lens.oem_image_package=com.oneplus.gallery diff --git a/proprietary-files.txt b/proprietary-files.txt index da289ed1..eed5797b 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -128,12 +128,17 @@ odm/lib64/camera/fdconfigpreviewlite.bin odm/lib64/camera/fdconfigvideo.bin odm/lib64/camera/fdconfigvideolite.bin odm/lib64/libSonyIMX471RmscLibrary.so +odm/lib64/libaiboost.so +odm/lib64/libaiboost_hexagon.so odm/lib64/libfastov_dsp.so odm/lib64/libormshalclient.so odm/lib64/libvl53l1_daemon.so odm/lib64/sensors.hal.tof.so odm/lib64/vendor.oplus.hardware.cammidasservice-V1-ndk_platform.so vendor/etc/camera/M_Attribute_AG_BMW_1.1.0.model.hardcode +vendor/etc/camera/depth.dlc +vendor/etc/camera/model.data +vendor/etc/camera/segment.dlc vendor/lib/libc++_shared.so vendor/lib/libnightvision.so vendor/lib64/camera/components/com.oneplus.node.memcpy.so @@ -202,7 +207,35 @@ vendor/lib64/com.qti.feature2.rt.so vendor/lib64/com.qti.feature2.serializer.so vendor/lib64/com.qti.feature2.stub.so vendor/lib64/com.qti.feature2.swmf.so +vendor/lib64/lib_bokehlib.so +vendor/lib64/lib_oneplus_watermark.so +vendor/lib64/lib_oneplus_vivideffect.so +vendor/lib64/libAlgoProcess.so +vendor/lib64/libAncSegBaseSdk.so +vendor/lib64/libFaceBeautyLiteCap.so +vendor/lib64/libOPPO_Front_SCPortrait.so +vendor/lib64/libOPPO_SCPortrait.so +vendor/lib64/libPlatformValidatorShared.so vendor/lib64/libPolarrRender.so +vendor/lib64/libSNPE.so +vendor/lib64/libSonyIMX471RmscLibrary.so +vendor/lib64/libSuperSensor.so +vendor/lib64/libSuperSensorFallback.so +vendor/lib64/libSuperSensorProcessor.so +vendor/lib64/libSuperSensorProcessorCWrapper.so +vendor/lib64/libVDBlurless.so +vendor/lib64/libVDDualCameraBlurlessAPI.so +vendor/lib64/libVDFusionBlurlessAPI_v2.so +vendor/lib64/libVDSuperPhotoAPI.so +vendor/lib64/libalCFR.so +vendor/lib64/libalCFRLV.so +vendor/lib64/libalCFRLV_dsp.so +vendor/lib64/libalHexController.so +vendor/lib64/libancbase_segbase.so +vendor/lib64/libaps_frame_registration.so +vendor/lib64/libapsdarksight.so +vendor/lib64/libapsexif.so +vendor/lib64/libapsjpeg.so vendor/lib64/libarcsoft_beautyshot.so vendor/lib64/libarcsoft_beautyshot_4.0.so vendor/lib64/libarcsoft_calibverify_TriCamera.so @@ -233,6 +266,7 @@ vendor/lib64/libarcsoft_tricam_calibration.so vendor/lib64/libarcsoft_tricam_verification.so vendor/lib64/libarcsoft_video_fringing_correction.so vendor/lib64/libbitmlengine.so +vendor/lib64/libc++_shared.so vendor/lib64/libcamera_nn_stub.so vendor/lib64/libcamerapostproc.so vendor/lib64/libcamxexternalformatutils.so @@ -252,21 +286,38 @@ vendor/lib64/libcvface_api.so vendor/lib64/libcvp2.so vendor/lib64/libcvp2_hfi.so vendor/lib64/libcvp_common.so +vendor/lib64/libcvpcpuRev_skel.so +vendor/lib64/libdualcam_image_optical_zoom.so +vendor/lib64/libdualcam_optical_zoom_control.so vendor/lib64/libdualcam_video_optical_zoom.so vendor/lib64/libipebpsstriping.so vendor/lib64/libmidasserviceintf.so vendor/lib64/libmidasserviceintf_aidl.so vendor/lib64/libmmcamera_faceproc.so vendor/lib64/libmmcamera_faceproc2.so +vendor/lib64/libmorpho_dcface.so +vendor/lib64/libmorpho_image_refiner_deflicker.so vendor/lib64/libmpbase.so vendor/lib64/libnanopb.so +vendor/lib64/libnightvision.so vendor/lib64/libofflinelog.so +vendor/lib64/libop-bokeh.so vendor/lib64/libos.so +vendor/lib64/libsnpe_adsp.so +vendor/lib64/libsnpe_dsp_domains.so +vendor/lib64/libsnpe_dsp_domains_v2.so +vendor/lib64/libsnpe_loader.so +vendor/lib64/libstblur_capture_api.so +vendor/lib64/libstdc++.so vendor/lib64/libswregistrationalgo.so +vendor/lib64/libsymphony-cpu.so +vendor/lib64/libsymphonypower.so vendor/lib64/libsynx.so vendor/lib64/libthreadutils.so +vendor/lib64/libtriplecam_image_optical_zoom.so vendor/lib64/libtriplecam_optical_zoom_control.so vendor/lib64/libtriplecam_video_optical_zoom.so +vendor/lib64/libyuv2.so vendor/lib64/vendor.oplus.hardware.cammidasservice@1.0.so vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so|7dc3f932216311875fb598c31cd94837c50cf32e|07034348534c394184ff3ae5809be0e7f222e165 @@ -885,6 +936,7 @@ vendor/lib64/libmmosal.so vendor/etc/public.libraries.txt # Neural networks +odm/lib64/hta_lib/libhta_hexagon_runtime.so vendor/bin/hw/android.hardware.neuralnetworks@1.3-service-qti vendor/etc/init/android.hardware.neuralnetworks@1.3-service-qti.rc vendor/etc/vintf/manifest/android.hardware.neuralnetworks@1.3-service-qti-hta.xml diff --git a/system_ext.prop b/system_ext.prop index 82dab2cb..975bb384 100644 --- a/system_ext.prop +++ b/system_ext.prop @@ -14,6 +14,11 @@ debug.sf.latch_unsignaled=1 # CNE persist.vendor.cne.feature=1 +# Camera +persist.camera.privapp.list=com.oneplus.camera +persist.vendor.camera.privapp.list=com.oneplus.camera +ro.oplus.version.base=19839.3.123.2022082613030810219754 + # Charging ro.charger.enable_suspend=1 diff --git a/vendor.prop b/vendor.prop index 31dc3bcb..6b55f9ed 100644 --- a/vendor.prop +++ b/vendor.prop @@ -115,6 +115,10 @@ ro.bluetooth.a2dp_offload.supported=true ro.vendor.bluetooth.wipower=false vendor.qcom.bluetooth.soc=hastings +# Camera +vendor.camera.algo.jpeghwencode=0 +vendor.camera.aux.packagelist=android,com.oneplus.camera + # Chipset ro.soc.manufacturer=QTI ro.soc.model=SM8250