Introduce oplus-fwk

Co-authored-by: LuK1337 <priv.luk@gmail.com>
Signed-off-by: chandu078 <chandudyavanapelli03@gmail.com>
Change-Id: I9190d506e25501e18ac4edc4fd4c9a2d9d9145cd
This commit is contained in:
cjh1249131356
2024-08-18 07:18:57 +05:30
committed by Bruno Martins
parent 48e0747631
commit 5847521167
15 changed files with 657 additions and 0 deletions

15
oplus-fwk/Android.bp Normal file
View File

@@ -0,0 +1,15 @@
//
// Copyright (C) 2024 The LineageOS Project
//
// SPDX-License-Identifier: Apache-2.0
//
java_library {
name: "oplus-fwk",
installable: true,
srcs: [
"src/**/*.aidl",
"src/**/*.java",
],
}

8
oplus-fwk/oplus-fwk.mk Normal file
View File

@@ -0,0 +1,8 @@
#
# Copyright (C) 2024 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
PRODUCT_PACKAGES += oplus-fwk
PRODUCT_BOOT_JARS += oplus-fwk

View File

@@ -0,0 +1,35 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package android.common;
public interface IOplusCommonFactory {
boolean isValid(int i);
default <T extends IOplusCommonFeature> T getFeature(T def, Object... vars) {
verityParams(def);
return def;
}
default <T extends IOplusCommonFeature> void verityParams(T def) {
if (def == null) {
throw new IllegalArgumentException("def can not be null");
}
if (def.index() == OplusFeatureList.OplusIndex.End) {
throw new IllegalArgumentException(def + "must override index() method");
}
}
default void verityParamsType(String key, Object[] vars, int num, Class... types) {
if (vars == null || types == null || vars.length != num || types.length != num) {
throw new IllegalArgumentException(key + " need +" + num + " params");
}
for (int i = 0; i < num; i++) {
if (vars[i] != null && !types[i].isInstance(vars[i])) {
throw new IllegalArgumentException(types[i].getName() + " is not instance " + vars[i]);
}
}
}
}

View File

@@ -0,0 +1,16 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package android.common;
public interface IOplusCommonFeature {
default OplusFeatureList.OplusIndex index() {
return OplusFeatureList.OplusIndex.End;
}
default IOplusCommonFeature getDefault() {
return null;
}
}

View File

@@ -0,0 +1,337 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package android.common;
public class OplusFeatureList {
public enum OplusIndex {
StartOplusOsServiceFactory,
IOplusSystemServerEx,
ICommonPowerManagerServiceEx,
IOplusAlarmManagerServiceEx,
IOplusInputMethodManagerServiceEx,
IOplusDisplayManagerServiceEx,
IOplusNetworkPolicyManagerServiceEx,
IOplusDisplayPolicyEx,
IOplusDelayRestartServicesManager,
IOplusAppStartupManager,
IOplusAppSwitchManager,
IOplusJoystickManager,
IOplusAppConfigManager,
IOplusInstallAccelerateManager,
IOplusScreenOffOptimization,
IOplusSplitScreenManager,
IOplusMultiAppManager,
IOplusMultiApp,
IOplusMultiAppUserRestoreManager,
IOplusMultiUserStatisticsManager,
IOplusMultiSystemManager,
IOplusBatterySaveExtend,
IOplusGuardElfFeature,
IOplusAccessControlLocalManager,
IOplusInterceptLockScreenWindow,
IOplusLockTaskController,
IOplusRuntimePermGrantPolicyManager,
IOplusAlarmManagerHelper,
IOplusSensitivePermGrantPolicyManager,
IOplusBroadcastManager,
IOplusFastAppManager,
IOplusAlarmTempWhitelist,
IOplusDynamicLogManager,
IOplusLanguageManager,
IOplusLanguageEnableManager,
IOplusSilentRebootManager,
IOplusWakeLockCheck,
IOplusZoomWindowManager,
IOplusPerfManager,
IOplusAthenaAmManager,
IOplusAthenaManager,
IOplusGameRotationManager,
IOplusWatermarkManager,
IOplusFullScreenDisplayManager,
IOplusEapManager,
IBatteryIdleController,
IOplusStartingWindowManager,
IOplusDarkModeMaskManager,
IOplusDarkModeServiceManager,
IOplusEdgeTouchManager,
IOplusConfineModeManager,
IOplusKeyLayoutManager,
IOplusPmsSupportedFunctionManager,
IOplusStorageAllFileAccessManager,
IOplusSaveSurfaceManager,
IOplusKeyEventManager,
IOplusWindowAnimationManager,
IOplusTransitionController,
IOplusMergedProcessSplitManager,
IOplusMirageDisplayManager,
IOplusMirageWindowManager,
IOplusWindowContainerControl,
IOplusMultiSearchWindowManager,
IOplusSeamlessAnimationManager,
IOplusTouchNodeManager,
IOplusPuttManager,
IFoldScreenSwitchingManager,
IOplusMiscNodeManager,
IOplusResourcePreloadManager,
IOplusLatencyOptimizerManager,
IOplusGlobalDragAndDropManager,
IOplusAppOpsManager,
IOplusVFXScreenEffectFeature,
IOplusDeepThinkerExService,
IOplusScreenFrozenManager,
IOplusBootPressureHolder,
IOplusAbnormalComponentManager,
IOplusVerificationCodeController,
IOplusVisionCorrectionManager,
IOplusCustomizePmsFeature,
IOplusCOTAFeature,
IOplusClipboardNotifyManager,
IOplusBootTraceManager,
IOplusScrollToTopSystemManager,
IOplusCarModeManager,
IOplusPinFileManager,
IOplusOsenseCommonManager,
IOplusBracketModeManager,
IOplusDisableWindowLayoutInfoManager,
IOplusQuickReplyManager,
IOplusCompactWindowManagerService,
IOplusEmbeddingManagerService,
IOplusAutoLayoutSystemServer,
IOplusRGBNormalizeSystemServer,
IOplusResourcesManagerSystemServer,
IOplusSquareDisplayOrientationManager,
IOplusFlipDisplayOrientationManager,
IOplusAlwaysAliveManager,
IOplusRecommendPermissionManager,
IOplusCompatModeManager,
IOplusActivityPreloadManager,
IOplusShoulderKeyManager,
IOplusAppHeapSystemManager,
EndOplusOsServiceFactory,
StartOplusOsFrameworkFactory,
IOplusViewRootUtil,
IOplusFontManager,
IOplusFavoriteManager,
IOplusDarkModeManager,
IOplusDirectViewHelper,
IOplusCommonInjector,
IOplusTextViewRTLUtilForUG,
IOplusViewHooks,
IOplusScreenShotEuclidManager,
IOplusInputMethodServiceUtils,
IOplusResolverManager,
IOplusThemeManager,
IOplusAccidentallyTouchHelper,
IOplusOverScrollerHelper,
IOplusScrollOptimizationHelper,
IOplusListHooks,
IOplusGradientHooks,
ITextJustificationHooks,
IOplusMagnifierHooks,
IOplusNotificationUiManager,
IOplusDeepThinkerManager,
IOplusBurmeseZgHooks,
IOplusViewConfigHelper,
IOplusThemeStyle,
IOplusIconPackManager,
IOplusEyeProtectManager,
IOplusAppDynamicFeatureManager,
IOplusListManager,
IOplusFloatingToolbarUtil,
IOplusDragTextShadowHelper,
IOplusDailyBattProtoManager,
IOplusPermissionCheckInjector,
IOplusEnterpriseAndOperatorFeature,
IOplusCustomizeTextViewFeature,
IUxIconPackageManagerExt,
IOplusScrollToTopManager,
IOplusCursorFeedbackManager,
IOplusReorderActionMenuManager,
IOplusAutoLayoutManager,
IOplusRGBNormalizeManager,
IOplusViewDebugManager,
IOplusViewExtractManager,
IOplusCompactWindowAppManager,
IOplusClipboardController,
IOplusAppHeapManager,
EndOplusOsFrameworkFactory,
StartOplusServiceFactory,
IOplusLocationBlacklistUtil,
IOplusLocationStatistics,
IOplusLBSMainClass,
IOplusActivityManagerServiceEx,
IOplusActivityTaskManagerServiceEx,
IOplusPackageManagerServiceEx,
IOplusPackageManagerNativeEx,
IOplusWindowManagerServiceEx,
IOplusPowerManagerServiceEx,
IOplusFeatureAOD,
IOplusHeadsetFadeIn,
IOplusAlertSliderManager,
IOplusCameraStartupOptimization,
IOplusDnsSelfrecoveryEngine,
IOplusConnectivityServiceHelperUtils,
IOplusWifiConnectRestriction,
IOplusVpnHelper,
IOplusNecManager,
IOplusNecConnectMonitor,
IOplusVpnManager,
IOplusShutdownFeature,
IOplusFeatureDCBacklight,
IOplusFeatureHDREnhanceBrightness,
IOplusFeatureMEMC,
IOplusFeatureMEMCGame,
IOplusFeatureBrightnessBarController,
IORBrightnessMarvelsDataCollector,
IOplusUsbDeviceFeature,
IOplusSkipDoframeFeature,
IOplusStorageManagerFeature,
IOplusBatteryServiceFeature,
IOplusNewNetworkTimeUpdateServiceFeature,
IOplusActivityManagerDynamicLogConfigFeature,
IOplusAppRunningControllerFeatrue,
IOplusAmsUtilsFeatrue,
IOplusWmsUtilsFeatrue,
IOplusResolutionManagerFeature,
IOplusDynamicVsyncManagerFeature,
ICompatibilityHelper,
IOplusPowerManagerServiceFeature,
IOplusFeatureConfigManagerInternal,
IOplusEngineerService,
IOplusScreenCastContentManager,
IOplusScreenFrozenBooster,
IOplusKeepAliveManager,
IOplusDualHeadPhoneFeature,
IOplusFloatingWindow,
IOplusDexOptimizeManager,
IOplusDexSceneManager,
IOplusThirdPartyAppSignCheckManager,
IOplusForbidUninstallAppManager,
IOplusAppInstallProgressManager,
IOplusPermSupportedFunctionManager,
IOplusRemovableAppManager,
IOplusAppQuickFreezeManager,
IOplusDisablePackageManager,
IOplusAppDetectManager,
IOplusAppListInterceptManager,
IOplusChildrenModeInstallManager,
IOplusClearDataProtectManager,
IOplusDataFreeManager,
IOplusDefaultAppPolicyManager,
IOplusDexMetadataManager,
IOplusDynamicFeatureManager,
IOplusFixupDataManager,
IOplusForbidHideOrDisableManager,
IOplusFullmodeManager,
IOplusIconCachesManager,
IOplusInstallThreadsControlManager,
IOplusPackageInstallInterceptManager,
IOplusPackageInstallStatisticManager,
IOplusPkgStartInfoManager,
IOplusSecurePayManager,
IOplusSellModeManager,
IOplusSystemAppProtectManager,
IOplusPermissionManagerServiceEx,
IOplusAppDataMigrateManager,
IOplusSecurityPermissionManager,
IOplusOptimizingProgressManager,
IOplusScreenOffTorchHelper,
IOplusBackgroundTaskManagerService,
IFreezeManagerHelp,
IFreezeManagerService,
IOplusSensorControlFeature,
IOplusSecurityAnalysisBroadCastSender,
IOplusPerformanceService,
IOplusFoldingAngleManager,
IOplusSysStateManager,
IOplusRefreshRatePolicy,
IOplusCarrierManager,
IOplusDataNormalizationManager,
IOplusPkgStateDetectFeature,
IOplusHansManager,
IOplusSceneManager,
IOplusCpuLimitManager,
IOGuardManager,
IOplusNewFeaturesDisplayingManager,
IOplusLooperStatsManager,
IOplusAppDetailsManager,
EndOplusServiceFactory,
StartOplusFrameworkFactory,
IOplusZenModeFeature,
IOplusAutoResolutionFeature,
IOplusDynamicVsyncFeature,
IOplusRotationOptimization,
IOplusUIFirstManager,
IOplusResourceManager,
IJankManager,
IOAppNetControlManager,
IOplusPreLoadSplashManager,
IOplusPerformanceManager,
IOplusCameraUtils,
IOplusCameraStatisticsManager,
IOplusCamera2StatisticsManager,
IOplusCameraStateBroadcast,
IOplusCameraManager,
IOplusHiddenApiManagerExt,
EndOplusFrameworkFactory,
StartOplusJobSchedulerServiceFactory,
IOplusJobTest,
IOplusJobSchedulerSystemServerEx,
IOplusJobSchedulerServiceEx,
IJobCountPolicy,
IOplusJobScheduleManager,
IOplusDeviceIdleHelper,
IOplusGoogleDozeRestrict,
IOplusDeviceIdleControllerEx,
IOplusSmartDozeHelper,
IOplusAlarmWakeupDetection,
IOplusAlarmManagerServiceHelper,
IOplusAlarmAlignment,
IOplusGoogleAlarmRestrict,
IOplusDeepSleepHelper,
EndOplusJobSchedulerServiceFactory,
IOplusResolverStyle,
StartCustomizeFrameworkFactory,
ICustomizeTransformHelper,
EndCustomizeFrameworkFactory,
StartCustomizeServiceFactory,
ICustomizeTransformManager,
EndCustomizeServiceFactory,
IOplusGameSpaceToolBoxManager,
IOplusWLBManager,
IOplusSystemUIInjector,
IOplusAODScreenshotManager,
StartSpliceCustomizeFrameworkFactory,
ISpliceCustomizeTransformHelper,
EndSpliceCustomizeFrameworkFactory,
StartSpliceCustomizeServiceFactory,
ISpliceCustomizeTransformManager,
EndSpliceCustomizeServiceFactory,
StartAOSPExtensionPluginFactory,
ITypefaceExt,
IAdaptiveIconDrawableExt,
IAbsListViewExt,
IResourcesImplExt,
IResourcesManagerExt,
IResourcesExt,
IOplusWallpaperManagerEx,
IOplusWallpaperServiceExt,
IAlertControllerExt,
IAlertParamsExt,
IResolverActivityExt,
IResolverListAdapterExt,
ILoadIconTaskExt,
IResolverDrawerLayoutExt,
ILockSettingsExt,
IOverlayManagerServiceEx,
EndAOSPExtensionPluginFactory,
IOplusNetworkStatsEx,
IOplusNetworkManagement,
IOplusNetdEventListener,
IOplusCustomizeVpnManager,
End
}
}

View File

@@ -0,0 +1,28 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package android.common;
public class OplusFrameworkFactory implements IOplusCommonFactory {
public static OplusFrameworkFactory sInstance = null;
public static OplusFrameworkFactory getInstance() {
if (sInstance == null) {
sInstance = new OplusFrameworkFactory();
}
return sInstance;
}
@Override
public boolean isValid(int index) {
boolean validOplus =
index < OplusFeatureList.OplusIndex.EndOplusFrameworkFactory.ordinal() &&
index > OplusFeatureList.OplusIndex.StartOplusFrameworkFactory.ordinal();
boolean vaildOplusOs =
index < OplusFeatureList.OplusIndex.EndOplusOsFrameworkFactory.ordinal() &&
index > OplusFeatureList.OplusIndex.StartOplusOsFrameworkFactory.ordinal();
return vaildOplusOs || validOplus;
}
}

View File

@@ -0,0 +1,25 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package android.telephony;
import android.content.Context;
public class OplusTelephonyManager {
private static OplusTelephonyManager sInstance = null;
public OplusTelephonyManager(Context context) {}
public static OplusTelephonyManager getInstance(Context context) {
if (sInstance == null) {
sInstance = new OplusTelephonyManager(context);
}
return sInstance;
}
public String getImsType(int slotId) {
return null;
}
}

View File

@@ -0,0 +1,10 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package com.android.ims;
public interface IImsCallSessionImplWrapper {
default void unMuteStateReporting() {}
}

View File

@@ -0,0 +1,13 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package com.android.internal.telephony;
public class OplusFeature {
public static final boolean OPLUS_FEATURE_CALL_RECOVERY_DISABLED = false;
public static final boolean OPLUS_FEATURE_RADIO_VIRTUALMODEM = false;
public static final boolean OPLUS_FEATURE_UST_CARRIER_CONFIG = false;
public static final boolean OPLUS_FEATURE_UST_TOAST = false;
}

View File

@@ -0,0 +1,45 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package com.android.internal.telephony;
import com.oplus.content.OplusFeatureConfigManager;
import java.util.List;
public class OplusFeatureHelper {
private static OplusFeatureHelper sInstance = null;
public static OplusFeatureHelper getInstance() {
if (sInstance == null) {
sInstance = new OplusFeatureHelper();
}
return sInstance;
}
public boolean hasFeature(String featureName) {
return false;
}
public boolean enableFeature(String featureName) {
return true;
}
public boolean disableFeature(String featureName) {
return true;
}
public void notifyFeaturesUpdate(String action, String actionValue) {}
public boolean registerFeatureObserver(List<String> features, FeatureObserver observer) {
return true;
}
public boolean unregisterFeatureObserver(FeatureObserver observer) {
return true;
}
public static class FeatureObserver implements OplusFeatureConfigManager.OnFeatureObserver {}
}

View File

@@ -0,0 +1,9 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package android.telephony.ims.aidl;
interface IImsRil {
}

View File

@@ -0,0 +1,25 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package com.oplus.content;
import android.text.TextUtils;
import java.util.List;
public class OplusFeatureConfigManager {
public static OplusFeatureConfigManager sInstance = null;
public static OplusFeatureConfigManager getInstance() {
if (sInstance == null) {
sInstance = new OplusFeatureConfigManager();
}
return sInstance;
}
public interface OnFeatureObserver {
default void onFeatureUpdate(List<String> features) {}
}
}

View File

@@ -0,0 +1,9 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package com.oplus.ims;
interface IImsExt {
}

View File

@@ -0,0 +1,26 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package com.oplus.ims.stub;
import android.content.Context;
import com.oplus.ims.IImsExt;
import java.util.concurrent.Executor;
public class ImsServiceControllerExt {
private final ImsExtStub mImsExtStub;
public ImsServiceControllerExt(Context context, Executor executor) {
mImsExtStub = new ImsExtStub();
}
public IImsExt getIImsExt() {
return mImsExtStub;
}
public static class ImsExtStub extends IImsExt.Stub {}
}

View File

@@ -0,0 +1,56 @@
/*
* Copyright (C) 2024 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
package com.oplus.nec;
import android.common.IOplusCommonFeature;
import android.common.OplusFeatureList;
import android.os.Bundle;
public interface IOplusNecManager extends IOplusCommonFeature {
public static final IOplusNecManager DEFAULT = new IOplusNecManager() {};
@Override
default OplusFeatureList.OplusIndex index() {
return OplusFeatureList.OplusIndex.IOplusNecManager;
}
@Override
default IOplusCommonFeature getDefault() {
return DEFAULT;
}
default void notifyNwDiagnoseInitComplete() {}
default void broadcastNecEvent(int slotId, int eventId, Bundle data) {}
default void broadcastServiceStateChanged(boolean oos, int slotId) {}
default void broadcastDataConnect(int slotId, String type) {}
default void broadcastDataConnectResult(int slotId, String type, boolean success) {}
default void broadcastVolteVopsOrSettingChanged(int slotId, int event, boolean isVolteEnabled) {}
default void broadcastDataDisconnect(int slotId, String type) {}
default void broadcastDataDisconnectComplete(int slotId, String type) {}
default void broadcastDataCallInternetProtocolType(int slotId, int protocol) {}
default void broadcastNoDataIconError(int slotId, int errorcode, int protocol, String cause) {}
default void broadcastNoDataFlowError(int slotId, int errorcode, String mNoDataFlowReason) {}
default void broadcastNoDataFlowRecoveryError(int slotId, int errorcode, String recovery) {}
default void broadcastSlowDataFlowError(int slotId, int errorcode, String score) {}
default void broadcastSlowDataFlowRecovery(int slotId, int errorcode, String score) {}
default void broadcastGameLargeDelayError(int slotId, int errorcode, String gameError) {}
default void broadcastLimitState(int slotId, boolean limitState) {}
default void broadcastPreferredNetworkMode(int slotId, int preferredMode) {}
default void broadcastDataEnabledChanged(int slotId, boolean enabled) {}
default void broadcastLostConnectionReason(int slotId, int errorcode, int lostReason) {}
default void broadcastHangUpDelayTimer(int slotId, long millis, int csOrIms) {}
default void broadcastCdmaResetActiveTimer(int slotId, int networkType) {}
default void broadcastPreciseCallStateChanged(int slotId, int ring, int foreground, int background, int cause, int preciseCause, int disconnectState) {}
default void broadcastSrvccStateChanged(int slotId, int srvccState) {}
default void broadcastCallError(int slotId, int event, int cause, int preciseCause, String desc, boolean isImsCall, boolean isIncoming) {}
default void broadcastVolteCallKeylog(int slotId, int event, String desc) {}
default void broadcastImsRegisterState(int slotId, boolean imsRegisterState) {}
default void broadcastRegInfoChanged(int voiceRegState, int voiceNetworkType, int dataRegState, int dataNetworkType, int slotId) {}
default void broadcastImsNetworkStateChanged(int phoneId, int errorCode, String errorMessage, int regState, int imsRat) {}
default void broadcastOnlineMeeting(int slotId, int errorcode, String record) {}
default void broadcastDispatchedSmsId(int slotId, int errorCode, long messageId, boolean isWapPush, boolean isClass0, String mPackageName) {}
default void broadcastDispatchedMoSmsId(int slotId, int eventId, String networkType, int rat, int errorType, int errorCode, String success) {}
}