├── .gitattributes
├── .gitignore
├── Bcore
├── .gitignore
├── black-fake
│ ├── .gitignore
│ ├── build.gradle
│ ├── consumer-rules.pro
│ ├── proguard-rules.pro
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ ├── android
│ │ ├── app
│ │ │ ├── ActivityThread.java
│ │ │ └── ContentProviderHolder.java
│ │ ├── content
│ │ │ ├── IContentProvider.java
│ │ │ ├── SyncInfo.java
│ │ │ ├── SyncStatusInfo.java
│ │ │ └── pm
│ │ │ │ ├── ManifestDigest.java
│ │ │ │ ├── PackageParser.java
│ │ │ │ ├── PackageUserState.java
│ │ │ │ └── VerifierInfo.java
│ │ ├── location
│ │ │ └── LocationRequest.java
│ │ └── os
│ │ │ ├── Environment$UserEnvironment.java
│ │ │ ├── ParcelableException.java
│ │ │ ├── SELinux.java
│ │ │ └── ServiceManager.java
│ │ └── com
│ │ └── hello
│ │ └── sandbox
│ │ └── fake
│ │ └── FakeCore.java
├── black-hook
│ ├── .gitignore
│ ├── build.gradle
│ ├── consumer-rules.pro
│ ├── proguard-rules.pro
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── top
│ │ └── niunaijun
│ │ └── jnihook
│ │ ├── MethodUtils.java
│ │ ├── ReflectCore.java
│ │ └── jni
│ │ └── JniHook.java
├── build.gradle
├── consumer-rules.pro
├── pine-core
│ ├── .gitignore
│ ├── build.gradle
│ ├── consumer-rules.pro
│ ├── proguard-rules.pro
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── cpp
│ │ ├── CMakeLists.txt
│ │ ├── android.cpp
│ │ ├── android.h
│ │ ├── art
│ │ │ ├── access_flags.h
│ │ │ ├── art_method.cpp
│ │ │ ├── art_method.h
│ │ │ ├── gc_defs.h
│ │ │ ├── jit.cpp
│ │ │ ├── jit.h
│ │ │ ├── object.h
│ │ │ ├── thread.cpp
│ │ │ └── thread.h
│ │ ├── jni_bridge.cpp
│ │ ├── jni_bridge.h
│ │ ├── pine.cpp
│ │ ├── pine_config.h
│ │ ├── ruler.cpp
│ │ ├── trampoline
│ │ │ ├── arch
│ │ │ │ ├── arch.h
│ │ │ │ ├── arm32.S
│ │ │ │ ├── arm32.cpp
│ │ │ │ ├── arm32.h
│ │ │ │ ├── arm64.S
│ │ │ │ ├── arm64.cpp
│ │ │ │ ├── arm64.h
│ │ │ │ ├── thumb2.S
│ │ │ │ ├── thumb2.cpp
│ │ │ │ ├── thumb2.h
│ │ │ │ ├── trampolines.h
│ │ │ │ ├── x86.cpp
│ │ │ │ └── x86.h
│ │ │ ├── extras.h
│ │ │ ├── trampoline_installer.cpp
│ │ │ └── trampoline_installer.h
│ │ └── utils
│ │ │ ├── elf_img.cpp
│ │ │ ├── elf_img.h
│ │ │ ├── io_wrapper.h
│ │ │ ├── jni_helper.h
│ │ │ ├── lock.h
│ │ │ ├── log.h
│ │ │ ├── macros.h
│ │ │ ├── member.h
│ │ │ ├── memory.cpp
│ │ │ ├── memory.h
│ │ │ ├── scoped_local_ref.h
│ │ │ ├── scoped_memory_access_protection.cpp
│ │ │ ├── scoped_memory_access_protection.h
│ │ │ ├── well_known_classes.cpp
│ │ │ └── well_known_classes.h
│ │ └── java
│ │ └── top
│ │ └── canyie
│ │ └── pine
│ │ ├── Pine.java
│ │ ├── PineConfig.java
│ │ ├── Ruler.java
│ │ ├── callback
│ │ ├── MethodHook.java
│ │ └── MethodReplacement.java
│ │ ├── entry
│ │ ├── Arm32Entry.java
│ │ ├── Arm64Entry.java
│ │ └── X86Entry.java
│ │ └── utils
│ │ ├── Primitives.java
│ │ ├── ReflectionHelper.java
│ │ └── Three.java
├── pine-xposed-res
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ ├── android
│ │ ├── app
│ │ │ └── AndroidAppHelper.java
│ │ └── content
│ │ │ └── res
│ │ │ ├── CompatibilityInfo.java
│ │ │ ├── XModuleResources.java
│ │ │ ├── XResForwarder.java
│ │ │ └── XResources.java
│ │ ├── de
│ │ └── robv
│ │ │ └── android
│ │ │ └── xposed
│ │ │ ├── DexCreator.java
│ │ │ ├── IXposedHookInitPackageResources.java
│ │ │ ├── SELinuxHelper.java
│ │ │ ├── callbacks
│ │ │ ├── XC_InitPackageResources.java
│ │ │ └── XC_LayoutInflated.java
│ │ │ └── services
│ │ │ ├── BaseService.java
│ │ │ ├── DirectAccessService.java
│ │ │ └── FileResult.java
│ │ ├── top
│ │ └── canyie
│ │ │ └── dreamland
│ │ │ └── utils
│ │ │ └── IOUtils.java
│ │ └── xposed
│ │ └── dummy
│ │ └── XResourcesSuperClass.java
├── pine-xposed
│ ├── build.gradle
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── apacheCommonsLang
│ │ ├── LICENSE.txt
│ │ ├── MODIFICATIONS.txt
│ │ ├── NOTICE.txt
│ │ ├── RELEASE-NOTES.txt
│ │ └── external
│ │ │ └── org
│ │ │ └── apache
│ │ │ └── commons
│ │ │ └── lang3
│ │ │ ├── ArrayUtils.java
│ │ │ ├── CharSequenceUtils.java
│ │ │ ├── CharUtils.java
│ │ │ ├── ClassUtils.java
│ │ │ ├── JavaVersion.java
│ │ │ ├── ObjectUtils.java
│ │ │ ├── StringUtils.java
│ │ │ ├── SystemUtils.java
│ │ │ ├── Validate.java
│ │ │ ├── builder
│ │ │ ├── Builder.java
│ │ │ ├── CompareToBuilder.java
│ │ │ ├── EqualsBuilder.java
│ │ │ ├── HashCodeBuilder.java
│ │ │ ├── IDKey.java
│ │ │ ├── ReflectionToStringBuilder.java
│ │ │ ├── ToStringBuilder.java
│ │ │ ├── ToStringStyle.java
│ │ │ └── package.html
│ │ │ ├── exception
│ │ │ ├── CloneFailedException.java
│ │ │ └── package.html
│ │ │ ├── mutable
│ │ │ ├── Mutable.java
│ │ │ ├── MutableInt.java
│ │ │ └── package.html
│ │ │ ├── overview.html
│ │ │ ├── package.html
│ │ │ ├── reflect
│ │ │ ├── MemberUtils.java
│ │ │ ├── MethodUtils.java
│ │ │ └── package.html
│ │ │ └── tuple
│ │ │ ├── ImmutablePair.java
│ │ │ ├── Pair.java
│ │ │ └── package.html
│ │ └── java
│ │ ├── com
│ │ └── android
│ │ │ └── internal
│ │ │ └── util
│ │ │ └── XmlUtils.java
│ │ ├── de
│ │ └── robv
│ │ │ └── android
│ │ │ └── xposed
│ │ │ ├── IXposedHookLoadPackage.java
│ │ │ ├── IXposedHookZygoteInit.java
│ │ │ ├── IXposedMod.java
│ │ │ ├── XC_MethodHook.java
│ │ │ ├── XC_MethodReplacement.java
│ │ │ ├── XSharedPreferences.java
│ │ │ ├── XposedBridge.java
│ │ │ ├── XposedHelpers.java
│ │ │ ├── callbacks
│ │ │ ├── IXUnhook.java
│ │ │ ├── XC_LoadPackage.java
│ │ │ ├── XCallback.java
│ │ │ └── package-info.java
│ │ │ └── package-info.java
│ │ └── top
│ │ └── canyie
│ │ └── pine
│ │ └── xposed
│ │ ├── CompoundEnumeration.java
│ │ ├── ModuleClassLoader.java
│ │ └── PineXposed.java
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── aidl
│ └── com
│ │ └── hello
│ │ └── sandbox
│ │ ├── core
│ │ ├── IBActivityThread.aidl
│ │ ├── IEmpty.aidl
│ │ └── system
│ │ │ ├── accounts
│ │ │ └── IBAccountManagerService.aidl
│ │ │ ├── am
│ │ │ ├── IBActivityManagerService.aidl
│ │ │ └── IBJobManagerService.aidl
│ │ │ ├── location
│ │ │ └── IBLocationManagerService.aidl
│ │ │ ├── notification
│ │ │ └── IBNotificationManagerService.aidl
│ │ │ ├── os
│ │ │ └── IBStorageManagerService.aidl
│ │ │ ├── pm
│ │ │ ├── BPackageSettings.aidl
│ │ │ ├── IBPackageInstallerService.aidl
│ │ │ ├── IBPackageManagerService.aidl
│ │ │ └── IBXposedManagerService.aidl
│ │ │ ├── sevice
│ │ │ └── persistentdata
│ │ │ │ └── IBPersistentDataBlockService.aidl
│ │ │ └── user
│ │ │ ├── BUserInfo.aidl
│ │ │ └── IBUserManagerService.aidl
│ │ └── entity
│ │ ├── AppConfig.aidl
│ │ ├── JobRecord.aidl
│ │ ├── UnbindRecord.aidl
│ │ ├── am
│ │ ├── PendingResultData.aidl
│ │ ├── ReceiverData.aidl
│ │ ├── RunningAppProcessInfo.aidl
│ │ └── RunningServiceInfo.aidl
│ │ ├── location
│ │ ├── BCell.aidl
│ │ ├── BLocation.aidl
│ │ └── BLocationConfig.aidl
│ │ └── pm
│ │ ├── InstallOption.aidl
│ │ ├── InstallResult.aidl
│ │ ├── InstalledModule.aidl
│ │ └── InstalledPackage.aidl
│ ├── assets
│ ├── empty.jar
│ └── junit.jar
│ ├── cpp
│ ├── BoxCore.cpp
│ ├── BoxCore.h
│ ├── CMakeLists.txt
│ ├── Hook
│ │ ├── BaseHook.cpp
│ │ ├── BaseHook.h
│ │ ├── BinderHook.cpp
│ │ ├── BinderHook.h
│ │ ├── RuntimeHook.cpp
│ │ ├── RuntimeHook.h
│ │ ├── UnixFileSystemHook.cpp
│ │ ├── UnixFileSystemHook.h
│ │ ├── VMClassLoaderHook.cpp
│ │ └── VMClassLoaderHook.h
│ ├── IO.cpp
│ ├── IO.h
│ ├── JniHook
│ │ ├── ArtMethod.h
│ │ ├── JniHook.cpp
│ │ └── JniHook.h
│ ├── Log.h
│ └── Utils
│ │ ├── HexDump.cpp
│ │ ├── HexDump.h
│ │ ├── PointerCheck.cpp
│ │ ├── PointerCheck.h
│ │ ├── fake_dlfcn.cpp
│ │ └── fake_dlfcn.h
│ ├── java
│ └── com
│ │ ├── android
│ │ └── internal
│ │ │ └── infra
│ │ │ └── AndroidFuture.java
│ │ └── hello
│ │ └── sandbox
│ │ ├── SandBoxCore.java
│ │ ├── app
│ │ ├── BActivityThread.java
│ │ ├── LauncherActivity.java
│ │ ├── configuration
│ │ │ ├── AppLifecycleCallback.java
│ │ │ └── ClientConfiguration.java
│ │ └── dispatcher
│ │ │ ├── AppJobServiceDispatcher.java
│ │ │ └── AppServiceDispatcher.java
│ │ ├── core
│ │ ├── CrashHandler.java
│ │ ├── GmsCore.java
│ │ ├── IOCore.java
│ │ ├── NativeCore.java
│ │ ├── env
│ │ │ ├── AppSystemEnv.java
│ │ │ ├── BEnvironment.java
│ │ │ └── VirtualRuntime.java
│ │ └── system
│ │ │ ├── BProcessManagerService.java
│ │ │ ├── BlackBoxSystem.java
│ │ │ ├── DaemonService.java
│ │ │ ├── ISystemService.java
│ │ │ ├── ProcessRecord.java
│ │ │ ├── ServiceManager.java
│ │ │ ├── SystemCallProvider.java
│ │ │ ├── accounts
│ │ │ ├── BAccount.java
│ │ │ ├── BAccountManagerService.java
│ │ │ ├── BUserAccounts.java
│ │ │ ├── RegisteredServicesParser.java
│ │ │ └── TokenCache.java
│ │ │ ├── am
│ │ │ ├── ActiveServices.java
│ │ │ ├── ActivityRecord.java
│ │ │ ├── ActivityStack.java
│ │ │ ├── BActivityManagerService.java
│ │ │ ├── BJobManagerService.java
│ │ │ ├── BroadcastManager.java
│ │ │ ├── PendingIntentRecord.java
│ │ │ ├── TaskRecord.java
│ │ │ └── UserSpace.java
│ │ │ ├── location
│ │ │ ├── BLocationManagerService.java
│ │ │ └── LocationRecord.java
│ │ │ ├── notification
│ │ │ ├── BNotificationManagerService.java
│ │ │ ├── NotificationChannelManager.java
│ │ │ └── NotificationRecord.java
│ │ │ ├── os
│ │ │ └── BStorageManagerService.java
│ │ │ ├── pm
│ │ │ ├── BPackage.java
│ │ │ ├── BPackageInstallerService.java
│ │ │ ├── BPackageManagerService.java
│ │ │ ├── BPackageSettings.java
│ │ │ ├── BPackageUserState.java
│ │ │ ├── BXposedManagerService.java
│ │ │ ├── ComponentResolver.java
│ │ │ ├── FastImmutableArraySet.java
│ │ │ ├── IntentResolver.java
│ │ │ ├── PackageManagerCompat.java
│ │ │ ├── PackageMonitor.java
│ │ │ ├── Settings.java
│ │ │ ├── SharedUserSetting.java
│ │ │ └── installer
│ │ │ │ ├── CopyExecutor.java
│ │ │ │ ├── CreatePackageExecutor.java
│ │ │ │ ├── CreateUserExecutor.java
│ │ │ │ ├── Executor.java
│ │ │ │ ├── RemoveAppExecutor.java
│ │ │ │ └── RemoveUserExecutor.java
│ │ │ └── user
│ │ │ ├── BUserHandle.java
│ │ │ ├── BUserInfo.java
│ │ │ ├── BUserManagerService.java
│ │ │ └── BUserStatus.java
│ │ ├── entity
│ │ ├── AppConfig.java
│ │ ├── JobRecord.java
│ │ ├── ServiceRecord.java
│ │ ├── UnbindRecord.java
│ │ ├── am
│ │ │ ├── PendingResultData.java
│ │ │ ├── ReceiverData.java
│ │ │ ├── RunningAppProcessInfo.java
│ │ │ └── RunningServiceInfo.java
│ │ ├── location
│ │ │ ├── BCell.java
│ │ │ ├── BLocation.java
│ │ │ └── BLocationConfig.java
│ │ └── pm
│ │ │ ├── InstallOption.java
│ │ │ ├── InstallResult.java
│ │ │ ├── InstalledModule.java
│ │ │ ├── InstalledPackage.java
│ │ │ └── XposedConfig.java
│ │ ├── fake
│ │ ├── delegate
│ │ │ ├── AppInstrumentation.java
│ │ │ ├── BaseInstrumentationDelegate.java
│ │ │ ├── ContentProviderDelegate.java
│ │ │ ├── DelegateHwEnvironment$UserEnvironment.java
│ │ │ ├── InnerReceiverDelegate.java
│ │ │ └── ServiceConnectionDelegate.java
│ │ ├── frameworks
│ │ │ ├── BAccountManager.java
│ │ │ ├── BActivityManager.java
│ │ │ ├── BJobManager.java
│ │ │ ├── BLocationManager.java
│ │ │ ├── BNotificationManager.java
│ │ │ ├── BPackageManager.java
│ │ │ ├── BStorageManager.java
│ │ │ ├── BUserManager.java
│ │ │ ├── BXposedManager.java
│ │ │ └── BlackManager.java
│ │ ├── hook
│ │ │ ├── BinderInvocationStub.java
│ │ │ ├── ClassInvocationStub.java
│ │ │ ├── HookManager.java
│ │ │ ├── IInjectHook.java
│ │ │ ├── MethodHook.java
│ │ │ ├── ProxyMethod.java
│ │ │ ├── ProxyMethods.java
│ │ │ ├── ReplacePackageNameMethodHook.java
│ │ │ └── ScanClass.java
│ │ ├── provider
│ │ │ ├── FileProvider.java
│ │ │ └── FileProviderHandler.java
│ │ └── service
│ │ │ ├── ActivityManagerCommonProxy.java
│ │ │ ├── HCallbackProxy.java
│ │ │ ├── IAccessibilityManagerProxy.java
│ │ │ ├── IAccountManagerProxy.java
│ │ │ ├── IActivityClientProxy.java
│ │ │ ├── IActivityManagerProxy.java
│ │ │ ├── IActivityTaskManagerProxy.java
│ │ │ ├── IAlarmManagerProxy.java
│ │ │ ├── IAppOpsManagerProxy.java
│ │ │ ├── IAppWidgetManagerProxy.java
│ │ │ ├── IAutofillManagerProxy.java
│ │ │ ├── IClipboardManagerProxy.java
│ │ │ ├── IConnectivityManagerProxy.java
│ │ │ ├── IContextHubServiceProxy.java
│ │ │ ├── IDeviceIdentifiersPolicyProxy.java
│ │ │ ├── IDevicePolicyManagerProxy.java
│ │ │ ├── IDisplayManagerProxy.java
│ │ │ ├── IFingerprintManagerProxy.java
│ │ │ ├── IGraphicsStatsProxy.java
│ │ │ ├── IJobServiceProxy.java
│ │ │ ├── ILauncherAppsProxy.java
│ │ │ ├── ILocationManagerProxy.java
│ │ │ ├── IMediaRouterServiceProxy.java
│ │ │ ├── IMediaSessionManagerProxy.java
│ │ │ ├── INetworkManagementServiceProxy.java
│ │ │ ├── INotificationManagerProxy.java
│ │ │ ├── IPackageManagerProxy.java
│ │ │ ├── IPermissionManagerProxy.java
│ │ │ ├── IPersistentDataBlockServiceProxy.java
│ │ │ ├── IPhoneSubInfoProxy.java
│ │ │ ├── IPowerManagerProxy.java
│ │ │ ├── IShortcutManagerProxy.java
│ │ │ ├── IStorageManagerProxy.java
│ │ │ ├── IStorageStatsManagerProxy.java
│ │ │ ├── ISystemUpdateProxy.java
│ │ │ ├── ITelephonyManagerProxy.java
│ │ │ ├── ITelephonyRegistryProxy.java
│ │ │ ├── IUserManagerProxy.java
│ │ │ ├── IVibratorServiceProxy.java
│ │ │ ├── IVpnManagerProxy.java
│ │ │ ├── IWifiManagerProxy.java
│ │ │ ├── IWifiScannerProxy.java
│ │ │ ├── IWindowManagerProxy.java
│ │ │ ├── IWindowSessionProxy.java
│ │ │ ├── VpnCommonProxy.java
│ │ │ ├── base
│ │ │ ├── AndroidFutureMethodProxy.java
│ │ │ ├── PkgMethodProxy.java
│ │ │ ├── UidMethodProxy.java
│ │ │ └── ValueMethodProxy.java
│ │ │ ├── context
│ │ │ ├── ContentServiceStub.java
│ │ │ ├── RestrictionsManagerStub.java
│ │ │ └── providers
│ │ │ │ ├── BContentProvider.java
│ │ │ │ ├── ContentProviderStub.java
│ │ │ │ └── SystemProviderStub.java
│ │ │ ├── libcore
│ │ │ └── OsStub.java
│ │ │ └── serviceManager
│ │ │ ├── FieldRemoteProxy.java
│ │ │ ├── FieldServiceManagerProxy.java
│ │ │ └── ServiceManagerProxy.java
│ │ ├── proxy
│ │ ├── ProxyActivity.java
│ │ ├── ProxyBroadcastReceiver.java
│ │ ├── ProxyContentProvider.java
│ │ ├── ProxyJobService.java
│ │ ├── ProxyManifest.java
│ │ ├── ProxyPendingActivity.java
│ │ ├── ProxyService.java
│ │ ├── ProxyVpnService.java
│ │ ├── TransparentProxyActivity.java
│ │ └── record
│ │ │ ├── ProxyActivityRecord.java
│ │ │ ├── ProxyBroadcastRecord.java
│ │ │ ├── ProxyPendingRecord.java
│ │ │ └── ProxyServiceRecord.java
│ │ └── utils
│ │ ├── AbiUtils.java
│ │ ├── ArrayUtils.java
│ │ ├── CloseUtils.java
│ │ ├── ComponentUtils.java
│ │ ├── DrawableUtils.java
│ │ ├── FileUtils.java
│ │ ├── HackAppUtils.java
│ │ ├── Md5Utils.java
│ │ ├── MethodParameterUtils.java
│ │ ├── NativeUtils.java
│ │ ├── QQUtils.java
│ │ ├── ReflectionClass.java
│ │ ├── Reflector.java
│ │ ├── RomUtil.java
│ │ ├── ShellUtils.java
│ │ ├── Slog.java
│ │ ├── TrieTree.java
│ │ ├── compat
│ │ ├── AccountManagerCompat.java
│ │ ├── ActivityCompat.java
│ │ ├── ActivityManagerCompat.java
│ │ ├── ApplicationThreadCompat.java
│ │ ├── BuildCompat.java
│ │ ├── BundleCompat.java
│ │ ├── ContentProviderCompat.java
│ │ ├── ContextCompat.java
│ │ ├── DexFileCompat.java
│ │ ├── PackageParserCompat.java
│ │ ├── ParceledListSliceCompat.java
│ │ ├── StartActivityCompat.java
│ │ ├── StrictModeCompat.java
│ │ ├── SystemPropertiesCompat.java
│ │ ├── TaskDescriptionCompat.java
│ │ └── XposedParserCompat.java
│ │ └── provider
│ │ └── ProviderCall.java
│ └── res
│ ├── drawable
│ └── ic_launcher.png
│ ├── layout
│ └── activity_launcher.xml
│ ├── values
│ ├── strings.xml
│ └── styles.xml
│ └── xml
│ └── filepath.xml
├── LICENSE
├── README.md
├── android-mirror
├── .gitignore
├── build.gradle
├── consumer-rules.pro
├── proguard-rules.pro
└── src
│ ├── main
│ ├── AndroidManifest.xml
│ ├── aidl
│ │ ├── android
│ │ │ ├── accounts
│ │ │ │ ├── IAccountAuthenticator.aidl
│ │ │ │ ├── IAccountAuthenticatorResponse.aidl
│ │ │ │ └── IAccountManagerResponse.aidl
│ │ │ ├── app
│ │ │ │ ├── IActivityManager
│ │ │ │ │ └── ContentProviderHolder.aidl
│ │ │ │ ├── IServiceConnection.aidl
│ │ │ │ ├── IStopUserCallback.aidl
│ │ │ │ ├── IWallpaperManagerCallback.aidl
│ │ │ │ └── job
│ │ │ │ │ ├── IJobCallback.aidl
│ │ │ │ │ ├── IJobService.aidl
│ │ │ │ │ └── JobWorkItem.aidl
│ │ │ ├── content
│ │ │ │ ├── IIntentReceiver.aidl
│ │ │ │ ├── ISyncAdapter.aidl
│ │ │ │ ├── ISyncContext.aidl
│ │ │ │ ├── ISyncStatusObserver.aidl
│ │ │ │ ├── SyncStatusInfo.aidl
│ │ │ │ └── pm
│ │ │ │ │ ├── IPackageDataObserver.aidl
│ │ │ │ │ ├── IPackageDeleteObserver2.aidl
│ │ │ │ │ ├── IPackageInstallObserver.aidl
│ │ │ │ │ ├── IPackageInstallObserver2.aidl
│ │ │ │ │ ├── IPackageInstallerCallback.aidl
│ │ │ │ │ └── IPackageInstallerSession.aidl
│ │ │ ├── database
│ │ │ │ └── IContentObserver.aidl
│ │ │ ├── location
│ │ │ │ └── ILocationListener.aidl
│ │ │ ├── net
│ │ │ │ ├── IConnectivityManager.aidl
│ │ │ │ └── wifi
│ │ │ │ │ └── IWifiScanner.aidl
│ │ │ └── os
│ │ │ │ └── ISystemUpdateManager.aidl
│ │ └── com
│ │ │ └── android
│ │ │ └── internal
│ │ │ └── widget
│ │ │ └── ILockSettings.aidl
│ └── java
│ │ └── black
│ │ ├── android
│ │ ├── accounts
│ │ │ └── IAccountManager.java
│ │ ├── app
│ │ │ ├── Activity.java
│ │ │ ├── ActivityClient.java
│ │ │ ├── ActivityManager.java
│ │ │ ├── ActivityManagerNative.java
│ │ │ ├── ActivityManagerOreo.java
│ │ │ ├── ActivityTaskManager.java
│ │ │ ├── ActivityThread.java
│ │ │ ├── ActivityThreadNMR1.java
│ │ │ ├── ActivityThreadQ.java
│ │ │ ├── ActivityThreadR.java
│ │ │ ├── AlarmManager.java
│ │ │ ├── AppOpsManager.java
│ │ │ ├── ApplicationThreadNative.java
│ │ │ ├── ClientTransactionHandler.java
│ │ │ ├── ComponentOptions.java
│ │ │ ├── ContextImpl.java
│ │ │ ├── ContextImplICS.java
│ │ │ ├── ContextImplKitkat.java
│ │ │ ├── IActivityManager.java
│ │ │ ├── IActivityManagerL.java
│ │ │ ├── IActivityManagerN.java
│ │ │ ├── IActivityTaskManager.java
│ │ │ ├── IAlarmManager.java
│ │ │ ├── IApplicationThread.java
│ │ │ ├── IApplicationThreadOreo.java
│ │ │ ├── ISearchManager.java
│ │ │ ├── IServiceConnectionO.java
│ │ │ ├── IUsageStatsManager.java
│ │ │ ├── IWallpaperManager.java
│ │ │ ├── Instrumentation.java
│ │ │ ├── LoadedApk.java
│ │ │ ├── LoadedApkHuaWei.java
│ │ │ ├── LoadedApkICS.java
│ │ │ ├── LoadedApkKitkat.java
│ │ │ ├── Notification.java
│ │ │ ├── NotificationChannel.java
│ │ │ ├── NotificationChannelGroup.java
│ │ │ ├── NotificationL.java
│ │ │ ├── NotificationM.java
│ │ │ ├── NotificationManager.java
│ │ │ ├── NotificationO.java
│ │ │ ├── PendingIntentJBMR2.java
│ │ │ ├── PendingIntentO.java
│ │ │ ├── Service.java
│ │ │ ├── ServiceStartArgs.java
│ │ │ ├── SharedPreferencesImpl.java
│ │ │ ├── WallpaperManager.java
│ │ │ ├── admin
│ │ │ │ └── IDevicePolicyManager.java
│ │ │ ├── backup
│ │ │ │ └── IBackupManager.java
│ │ │ ├── job
│ │ │ │ ├── IJobScheduler.java
│ │ │ │ ├── JobInfo.java
│ │ │ │ ├── JobParameters.java
│ │ │ │ └── JobWorkItem.java
│ │ │ ├── role
│ │ │ │ └── IRoleManager.java
│ │ │ ├── servertransaction
│ │ │ │ ├── ActivityLifecycleItem.java
│ │ │ │ ├── ActivityResultItem.java
│ │ │ │ ├── ClientTransaction.java
│ │ │ │ ├── LaunchActivityItem.java
│ │ │ │ └── TopResumedActivityChangeItem.java
│ │ │ └── usage
│ │ │ │ ├── IStorageStatsManager.java
│ │ │ │ └── StorageStats.java
│ │ ├── content
│ │ │ ├── AttributionSource.java
│ │ │ ├── AttributionSourceState.java
│ │ │ ├── BroadcastReceiver.java
│ │ │ ├── ClipboardManager.java
│ │ │ ├── ClipboardManagerOreo.java
│ │ │ ├── ContentProviderClient.java
│ │ │ ├── ContentProviderClientQ.java
│ │ │ ├── ContentProviderHolderOreo.java
│ │ │ ├── ContentProviderNative.java
│ │ │ ├── ContentResolver.java
│ │ │ ├── IClipboard.java
│ │ │ ├── IContentProvider.java
│ │ │ ├── IContentService.java
│ │ │ ├── IIntentReceiver.java
│ │ │ ├── IRestrictionsManager.java
│ │ │ ├── IntentFilter.java
│ │ │ ├── IntentSender.java
│ │ │ ├── PeriodicSync.java
│ │ │ ├── SyncAdapterType.java
│ │ │ ├── SyncAdapterTypeN.java
│ │ │ ├── SyncInfo.java
│ │ │ ├── SyncRequest.java
│ │ │ ├── pm
│ │ │ │ ├── ApplicationInfoL.java
│ │ │ │ ├── ApplicationInfoN.java
│ │ │ │ ├── ApplicationInfoP.java
│ │ │ │ ├── ILauncherApps.java
│ │ │ │ ├── IShortcutService.java
│ │ │ │ ├── LauncherApps.java
│ │ │ │ ├── PackageInstaller.java
│ │ │ │ ├── PackageParser.java
│ │ │ │ ├── PackageParserLollipop.java
│ │ │ │ ├── PackageParserLollipop22.java
│ │ │ │ ├── PackageParserMarshmallow.java
│ │ │ │ ├── PackageParserNougat.java
│ │ │ │ ├── PackageParserPie.java
│ │ │ │ ├── PackageUserState.java
│ │ │ │ ├── ParceledListSlice.java
│ │ │ │ ├── SigningInfo.java
│ │ │ │ └── UserInfo.java
│ │ │ └── res
│ │ │ │ ├── AssetManager.java
│ │ │ │ └── CompatibilityInfo.java
│ │ ├── ddm
│ │ │ └── DdmHandleAppName.java
│ │ ├── graphics
│ │ │ └── Compatibility.java
│ │ ├── hardware
│ │ │ ├── display
│ │ │ │ ├── DisplayManagerGlobal.java
│ │ │ │ └── IDisplayManager.java
│ │ │ └── location
│ │ │ │ └── IContextHubService.java
│ │ ├── location
│ │ │ ├── GpsStatus.java
│ │ │ ├── GpsStatusL.java
│ │ │ ├── ILocationListener.java
│ │ │ ├── ILocationManager.java
│ │ │ ├── LocationManager.java
│ │ │ ├── LocationManagerQ.java
│ │ │ ├── LocationRequestL.java
│ │ │ └── provider
│ │ │ │ └── ProviderProperties.java
│ │ ├── media
│ │ │ ├── AudioManager.java
│ │ │ ├── IAudioService.java
│ │ │ ├── IMediaRouterService.java
│ │ │ ├── MediaRouter.java
│ │ │ └── session
│ │ │ │ └── ISessionManager.java
│ │ ├── net
│ │ │ ├── IConnectivityManager.java
│ │ │ ├── IVpnManager.java
│ │ │ ├── NetworkInfo.java
│ │ │ └── wifi
│ │ │ │ ├── IWifiManager.java
│ │ │ │ ├── WifiInfo.java
│ │ │ │ ├── WifiManager.java
│ │ │ │ ├── WifiScanner.java
│ │ │ │ └── WifiSsid.java
│ │ ├── nfc
│ │ │ └── INfcAdapter.java
│ │ ├── os
│ │ │ ├── BaseBundle.java
│ │ │ ├── Build.java
│ │ │ ├── Bundle.java
│ │ │ ├── BundleICS.java
│ │ │ ├── DropBoxManager.java
│ │ │ ├── Environment.java
│ │ │ ├── Handler.java
│ │ │ ├── IDeviceIdentifiersPolicyService.java
│ │ │ ├── INetworkManagementService.java
│ │ │ ├── IPowerManager.java
│ │ │ ├── IUserManager.java
│ │ │ ├── IVibratorManagerService.java
│ │ │ ├── MemoryFile.java
│ │ │ ├── Message.java
│ │ │ ├── Parcel.java
│ │ │ ├── Process.java
│ │ │ ├── ServiceManager.java
│ │ │ ├── ServiceManagerProxy.java
│ │ │ ├── StrictMode.java
│ │ │ ├── UserHandle.java
│ │ │ ├── health
│ │ │ │ └── SystemHealthManager.java
│ │ │ ├── mount
│ │ │ │ └── IMountService.java
│ │ │ └── storage
│ │ │ │ ├── IStorageManager.java
│ │ │ │ ├── StorageManager.java
│ │ │ │ └── StorageVolume.java
│ │ ├── permission
│ │ │ └── IPermissionManager.java
│ │ ├── providers
│ │ │ └── Settings.java
│ │ ├── renderscript
│ │ │ └── RenderScriptCacheDir.java
│ │ ├── rms
│ │ │ ├── HwSysResImplP.java
│ │ │ └── resource
│ │ │ │ ├── ReceiverResourceLP.java
│ │ │ │ ├── ReceiverResourceM.java
│ │ │ │ ├── ReceiverResourceN.java
│ │ │ │ └── ReceiverResourceO.java
│ │ ├── security
│ │ │ └── net
│ │ │ │ └── config
│ │ │ │ └── NetworkSecurityConfigProvider.java
│ │ ├── service
│ │ │ ├── notification
│ │ │ │ └── StatusBarNotification.java
│ │ │ └── persistentdata
│ │ │ │ └── IPersistentDataBlockService.java
│ │ ├── telephony
│ │ │ ├── CellIdentityCdma.java
│ │ │ ├── CellIdentityGsm.java
│ │ │ ├── CellInfoCdma.java
│ │ │ ├── CellInfoGsm.java
│ │ │ ├── CellSignalStrengthCdma.java
│ │ │ ├── CellSignalStrengthGsm.java
│ │ │ ├── NeighboringCellInfo.java
│ │ │ ├── SmsManager.java
│ │ │ └── TelephonyManager.java
│ │ ├── util
│ │ │ └── Singleton.java
│ │ ├── view
│ │ │ ├── CompatibilityInfoHolder.java
│ │ │ ├── Display.java
│ │ │ ├── DisplayAdjustments.java
│ │ │ ├── HardwareRenderer.java
│ │ │ ├── IAutoFillManager.java
│ │ │ ├── IGraphicsStats.java
│ │ │ ├── IWindowManager.java
│ │ │ ├── RenderScript.java
│ │ │ ├── SurfaceControl.java
│ │ │ ├── ThreadedRenderer.java
│ │ │ ├── WindowManagerGlobal.java
│ │ │ └── accessibility
│ │ │ │ └── IAccessibilityManager.java
│ │ ├── webkit
│ │ │ ├── IWebViewUpdateService.java
│ │ │ └── WebViewFactory.java
│ │ └── widget
│ │ │ ├── RemoteViews.java
│ │ │ └── Toast.java
│ │ ├── com
│ │ ├── android
│ │ │ └── internal
│ │ │ │ ├── R.java
│ │ │ │ ├── app
│ │ │ │ ├── IAppOpsService.java
│ │ │ │ ├── IBatteryStats.java
│ │ │ │ └── ISmtOpsService.java
│ │ │ │ ├── appwidget
│ │ │ │ └── IAppWidgetService.java
│ │ │ │ ├── content
│ │ │ │ ├── NativeLibraryHelper.java
│ │ │ │ └── ReferrerIntent.java
│ │ │ │ ├── net
│ │ │ │ └── VpnConfig.java
│ │ │ │ ├── os
│ │ │ │ ├── IDropBoxManagerService.java
│ │ │ │ ├── IVibratorService.java
│ │ │ │ └── UserManager.java
│ │ │ │ ├── policy
│ │ │ │ └── PhoneWindow.java
│ │ │ │ ├── telecom
│ │ │ │ └── ITelecomService.java
│ │ │ │ ├── telephony
│ │ │ │ ├── IMms.java
│ │ │ │ ├── IPhoneSubInfo.java
│ │ │ │ ├── ISms.java
│ │ │ │ ├── ISub.java
│ │ │ │ ├── ITelephony.java
│ │ │ │ ├── ITelephonyRegistry.java
│ │ │ │ └── PhoneConstantsMtk.java
│ │ │ │ └── view
│ │ │ │ ├── IInputMethodManager.java
│ │ │ │ └── inputmethod
│ │ │ │ └── InputMethodManager.java
│ │ └── cosmos
│ │ │ └── apm
│ │ │ └── framework
│ │ │ └── page
│ │ │ └── ActivityLifeCycleHelper$ApplicationInstrumentation.java
│ │ ├── dalvik
│ │ └── system
│ │ │ ├── BaseDexClassLoader.java
│ │ │ └── VMRuntime.java
│ │ ├── java
│ │ ├── io
│ │ │ ├── File.java
│ │ │ ├── FileSystem.java
│ │ │ └── UnixFileSystem.java
│ │ └── lang
│ │ │ ├── ThreadGroup.java
│ │ │ └── ThreadGroupN.java
│ │ └── libcore
│ │ └── io
│ │ ├── ForwardingOs.java
│ │ ├── Libcore.java
│ │ └── Os.java
│ └── test
│ └── java
│ └── top
│ └── niunaijun
│ └── android_mirror
│ └── ExampleUnitTest.java
├── app
├── .gitignore
├── abi.gradle
├── build.gradle
├── gradle.properties
├── proguard-rules.pro
├── signing.gradle
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── aidl
│ └── top
│ │ └── niunaijun
│ │ └── blackboxa
│ │ └── screen
│ │ ├── IScreenOrientation.aidl
│ │ └── ScreenFlippedListener.aidl
│ ├── assets
│ └── web
│ │ ├── question
│ │ ├── feedback.html
│ │ ├── index.html
│ │ └── static
│ │ │ ├── index.01f33615.js
│ │ │ ├── index.b636badd.js
│ │ │ ├── tool-feedback.b88b0735.css
│ │ │ ├── tool-question.57cfb5d0.css
│ │ │ ├── utilBase.4c52c267.js
│ │ │ ├── vendors.02673505.js
│ │ │ ├── vendors.1dd75b49.js
│ │ │ └── vueBase.1d2eecb9.js
│ │ └── user-protocol
│ │ ├── index.css
│ │ ├── index.html
│ │ └── protocol.html
│ ├── java
│ ├── com
│ │ └── hello
│ │ │ └── sandbox
│ │ │ ├── ui
│ │ │ ├── home
│ │ │ │ └── ViewPager2Adapter.java
│ │ │ └── search
│ │ │ │ └── SortComparator.java
│ │ │ ├── util
│ │ │ ├── ChannelHelper.java
│ │ │ ├── DeviceHelper.java
│ │ │ ├── EncryptUtil.java
│ │ │ ├── MarketHelper.java
│ │ │ ├── SharedPrefUtils.java
│ │ │ └── StringUtils.java
│ │ │ └── view
│ │ │ ├── FakeHomeView.java
│ │ │ ├── SideBarLayout.java
│ │ │ ├── SideBarSortView.java
│ │ │ └── pager2banner
│ │ │ ├── Banner.java
│ │ │ ├── Indicator.java
│ │ │ ├── IndicatorView.java
│ │ │ └── ScaleInTransformer.java
│ └── top
│ │ └── niunaijun
│ │ └── blackboxa
│ │ ├── util
│ │ ├── MathUtil.java
│ │ └── Resolution.java
│ │ └── widget
│ │ └── RockerView.java
│ ├── kotlin
│ ├── com
│ │ └── hello
│ │ │ └── sandbox
│ │ │ ├── Constant.kt
│ │ │ ├── ui
│ │ │ ├── WebviewAct.kt
│ │ │ ├── about
│ │ │ │ └── AboutAct.kt
│ │ │ ├── appIcon
│ │ │ │ ├── ChangeAppIconActivity.kt
│ │ │ │ ├── ChangeAppIconPopup.kt
│ │ │ │ └── FakeSplashAct.kt
│ │ │ ├── base
│ │ │ │ └── BaseAct.kt
│ │ │ ├── cala
│ │ │ │ └── CalcActivity.kt
│ │ │ ├── guide
│ │ │ │ ├── GuideAdapter.kt
│ │ │ │ ├── GuideHelper.kt
│ │ │ │ ├── HideGuideInfo.kt
│ │ │ │ └── HideGuidePopup.kt
│ │ │ ├── home
│ │ │ │ ├── AppInstallViewModel.kt
│ │ │ │ ├── AppInstallerListener.kt
│ │ │ │ ├── AppInstallerReceiver.kt
│ │ │ │ ├── AppsAdapter.kt
│ │ │ │ ├── HomeAct.kt
│ │ │ │ ├── HomeBannerInfo.kt
│ │ │ │ ├── HomeFrag.kt
│ │ │ │ ├── MeFrag.kt
│ │ │ │ └── PageAdapter.kt
│ │ │ ├── password
│ │ │ │ └── SettingPasswordActivity.kt
│ │ │ ├── screen
│ │ │ │ ├── ScreenOrientationAction.kt
│ │ │ │ ├── ScreenOrientationActivity.kt
│ │ │ │ ├── ScreenOrientationHandler.kt
│ │ │ │ ├── ScreenOrientationHelper.kt
│ │ │ │ └── ScreenOrientationService.kt
│ │ │ ├── search
│ │ │ │ ├── HeaderAdapter.kt
│ │ │ │ ├── HeaderAppBean.kt
│ │ │ │ ├── InstallPromptPopup.kt
│ │ │ │ ├── SearchAdapter.kt
│ │ │ │ └── SearchListActivity.kt
│ │ │ ├── splash
│ │ │ │ ├── FakeHomeAct.kt
│ │ │ │ ├── LoginAct.kt
│ │ │ │ ├── PrivacyPolicyHelper.kt
│ │ │ │ ├── PrivacyPolicyPopup.kt
│ │ │ │ └── SplashAct.kt
│ │ │ └── upgrade
│ │ │ │ ├── AppUpgradePopup.kt
│ │ │ │ ├── UpgradeAppViewModel.kt
│ │ │ │ ├── UpgradeBean.kt
│ │ │ │ └── UpgradeChecker.kt
│ │ │ ├── user
│ │ │ ├── UserLoginInfo.kt
│ │ │ ├── UserManager.kt
│ │ │ └── UserUtils.kt
│ │ │ ├── util
│ │ │ ├── DownloadHelper.kt
│ │ │ ├── EnvUtil.kt
│ │ │ ├── Network.kt
│ │ │ ├── TimeHelper.kt
│ │ │ └── ViewUtil.kt
│ │ │ └── view
│ │ │ ├── BasePopup.kt
│ │ │ ├── HandleAppPopup.kt
│ │ │ └── NoScrollViewPager.kt
│ └── top
│ │ └── niunaijun
│ │ └── blackboxa
│ │ ├── app
│ │ ├── App.kt
│ │ ├── AppManager.kt
│ │ └── rocker
│ │ │ ├── BaseActivityLifecycleCallback.kt
│ │ │ └── RockerManager.kt
│ │ ├── bean
│ │ ├── AppInfo.kt
│ │ ├── FakeLocationBean.kt
│ │ ├── GmsBean.kt
│ │ ├── InstalledAppBean.kt
│ │ └── XpModuleInfo.kt
│ │ ├── biz
│ │ └── cache
│ │ │ └── AppSharedPreferenceDelegate.kt
│ │ ├── data
│ │ ├── AppsRepository.kt
│ │ ├── AppsSortCompon.kt
│ │ ├── FakeLocationRepository.kt
│ │ ├── GmsRepository.kt
│ │ └── XpRepository.kt
│ │ ├── util
│ │ ├── ContextUtil.kt
│ │ ├── InjectionUtil.kt
│ │ ├── ResUtil.kt
│ │ ├── ShortcutUtil.kt
│ │ ├── ToastEx.kt
│ │ └── ViewBindingEx.kt
│ │ ├── view
│ │ ├── apps
│ │ │ ├── AppsAdapter.kt
│ │ │ ├── AppsFactory.kt
│ │ │ ├── AppsFragment.kt
│ │ │ ├── AppsTouchCallBack.kt
│ │ │ └── AppsViewModel.kt
│ │ ├── base
│ │ │ ├── BaseActivity.kt
│ │ │ ├── BaseViewModel.kt
│ │ │ └── LoadingActivity.kt
│ │ ├── fake
│ │ │ ├── FakeLocationAdapter.kt
│ │ │ ├── FakeLocationFactory.kt
│ │ │ ├── FakeLocationViewModel.kt
│ │ │ ├── FakeManagerActivity.kt
│ │ │ └── FollowMyLocationOverlay.kt
│ │ ├── gms
│ │ │ ├── GmsAdapter.kt
│ │ │ ├── GmsFactory.kt
│ │ │ ├── GmsManagerActivity.kt
│ │ │ └── GmsViewModel.kt
│ │ ├── list
│ │ │ ├── ListActivity.kt
│ │ │ ├── ListAdapter.kt
│ │ │ ├── ListFactory.kt
│ │ │ └── ListViewModel.kt
│ │ ├── main
│ │ │ ├── MainActivity.kt
│ │ │ ├── SandBoxLoader.kt
│ │ │ ├── ShortcutActivity.kt
│ │ │ ├── ViewPagerAdapter.kt
│ │ │ └── WelcomeActivity.kt
│ │ ├── setting
│ │ │ ├── SettingActivity.kt
│ │ │ └── SettingFragment.kt
│ │ └── xp
│ │ │ ├── XpActivity.kt
│ │ │ ├── XpAdapter.kt
│ │ │ ├── XpFactory.kt
│ │ │ └── XpViewModel.kt
│ │ └── widget
│ │ └── EnFloatView.kt
│ └── res
│ ├── drawable-anydpi
│ ├── ic_add.xml
│ ├── ic_location_change.xml
│ └── ic_search.xml
│ ├── drawable-hdpi
│ ├── ic_add.png
│ ├── ic_location_change.png
│ └── ic_search.png
│ ├── drawable-mdpi
│ ├── ic_add.png
│ ├── ic_location_change.png
│ └── ic_search.png
│ ├── drawable-v24
│ └── ic_launcher_foreground.xml
│ ├── drawable-xhdpi
│ ├── bottom_tab_add.png
│ ├── bottom_tab_home_selected.png
│ ├── bottom_tab_home_unselected.png
│ ├── bottom_tab_me_selected.png
│ ├── bottom_tab_me_unselected.png
│ ├── fragment_me_about.png
│ ├── fragment_me_help.png
│ ├── fragment_me_logout.png
│ ├── fragment_me_question.png
│ ├── fragment_me_share.png
│ ├── hide_bg_guide1.png
│ ├── hide_bg_guide2.png
│ ├── hide_bg_guide3.png
│ ├── home_banner_1.png
│ ├── home_banner_2.jpg
│ ├── home_banner_3.jpeg
│ ├── home_change_icon.png
│ ├── home_icon_add.png
│ ├── home_rotate_screen.png
│ ├── home_set_secret.png
│ ├── ic_add.png
│ ├── ic_location_change.png
│ ├── ic_search.png
│ ├── icon_arrow.png
│ ├── launch_bg.png
│ ├── me_default_icon.png
│ ├── momo_icon.png
│ ├── search.webp
│ ├── splash_icon.png
│ ├── splash_icon_small.png
│ └── tantan_icon.png
│ ├── drawable-xxhdpi
│ ├── bottom_tab_add.png
│ ├── bottom_tab_home_selected.png
│ ├── bottom_tab_home_unselected.png
│ ├── bottom_tab_me_selected.png
│ ├── bottom_tab_me_unselected.png
│ ├── calculator_pop_close.webp
│ ├── change_app_icon.png
│ ├── fragment_me_about.png
│ ├── fragment_me_help.png
│ ├── fragment_me_logout.png
│ ├── fragment_me_question.png
│ ├── fragment_me_share.png
│ ├── general_error.png
│ ├── home_change_icon.png
│ ├── home_rotate_screen.png
│ ├── home_set_secret.png
│ ├── ic_add.png
│ ├── ic_location_change.png
│ ├── ic_search.png
│ ├── icon_arrow.png
│ ├── icon_close.png
│ ├── icon_fake.png
│ ├── screen_orientation.png
│ ├── search.webp
│ ├── setting_password_next.png
│ ├── setting_password_tip_icon.png
│ ├── splash_icon.png
│ └── splash_icon_small.png
│ ├── drawable
│ ├── edit_text_cursor_color_secret_crash.xml
│ ├── home_icon_bg.xml
│ ├── ic_empty.xml
│ ├── ic_launcher_background.xml
│ ├── shape_btn_bg.xml
│ ├── shape_btn_cancel_bg.xml
│ ├── shape_change_icon_normall.xml
│ ├── shape_change_icon_selected.xml
│ ├── shape_change_icon_selector.xml
│ ├── shape_color_3ec0aa_14.xml
│ ├── shape_color_3ec0aa_24.xml
│ ├── shape_color_3ec0aa_32.xml
│ ├── shape_color_3ec0aa_9.xml
│ ├── shape_color_aaaaaa_32.xml
│ ├── shape_detail_input.xml
│ ├── shape_home_icon_label.xml
│ ├── sort_text_bg.xml
│ ├── sort_text_view_hint_bg.xml
│ └── splash.xml
│ ├── layout
│ ├── activity_about.xml
│ ├── activity_calc.xml
│ ├── activity_change_app_icon.xml
│ ├── activity_change_app_icon_popu.xml
│ ├── activity_change_app_icon_popu_item.xml
│ ├── activity_fake_home.xml
│ ├── activity_gms.xml
│ ├── activity_home.xml
│ ├── activity_how_to_hide.xml
│ ├── activity_list.xml
│ ├── activity_login.xml
│ ├── activity_main.xml
│ ├── activity_osmdroid.xml
│ ├── activity_screen_orientation.xml
│ ├── activity_searchlist.xml
│ ├── activity_setting.xml
│ ├── activity_setting_password.xml
│ ├── activity_setting_password_frag.xml
│ ├── activity_setting_password_tip_frag.xml
│ ├── activity_webview.xml
│ ├── activity_xp.xml
│ ├── app_popup.xml
│ ├── app_upgrade_popup.xml
│ ├── base_empty.xml
│ ├── calculator_tip.xml
│ ├── fake_home_view.xml
│ ├── fragment_apps.xml
│ ├── fragment_home.xml
│ ├── fragment_me.xml
│ ├── guide_pager_item.xml
│ ├── home_center_layout.xml
│ ├── home_item_app.xml
│ ├── home_pager_item.xml
│ ├── item_app.xml
│ ├── item_fake.xml
│ ├── item_gms.xml
│ ├── item_package.xml
│ ├── item_search_header.xml
│ ├── item_search_package.xml
│ ├── item_viewpager.xml
│ ├── item_xp.xml
│ ├── popup_base_layout.xml
│ ├── popup_hide_guide.xml
│ ├── privacy_policy_content.xml
│ ├── profile_view_line.xml
│ ├── search_header.xml
│ ├── view_float_rocker.xml
│ ├── view_sidebar_layout.xml
│ ├── view_switch.xml
│ └── view_toolbar.xml
│ ├── menu
│ ├── app_menu.xml
│ ├── menu_list.xml
│ ├── menu_main.xml
│ └── menu_search.xml
│ ├── mipmap-hdpi
│ ├── ic_launcher.png
│ ├── ic_launcher_beta.png
│ ├── ic_launcher_round.png
│ └── ic_launcher_round_beta.png
│ ├── mipmap-ldpi
│ ├── ic_launcher.png
│ ├── ic_launcher_beta.png
│ ├── ic_launcher_round.png
│ └── ic_launcher_round_beta.png
│ ├── mipmap-mdpi
│ ├── ic_launcher.png
│ ├── ic_launcher_beta.png
│ ├── ic_launcher_round.png
│ └── ic_launcher_round_beta.png
│ ├── mipmap-xhdpi
│ ├── ic_launcher.png
│ ├── ic_launcher_beta.png
│ ├── ic_launcher_round.png
│ └── ic_launcher_round_beta.png
│ ├── mipmap-xxhdpi
│ ├── ic_launcher.png
│ ├── ic_launcher_beta.png
│ ├── ic_launcher_round.png
│ └── ic_launcher_round_beta.png
│ ├── mipmap-xxxhdpi
│ ├── ic_launcher.png
│ ├── ic_launcher_beta.png
│ ├── ic_launcher_round.png
│ └── ic_launcher_round_beta.png
│ ├── values-zh-rCN
│ └── strings.xml
│ ├── values-zh-rTW
│ └── strings.xml
│ ├── values
│ ├── attrs.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── strings.xml
│ ├── styles.xml
│ └── themes.xml
│ └── xml
│ ├── network_security_config.xml
│ ├── provider_paths.xml
│ └── setting.xml
├── assets
├── Screenshot_20230629_103013.png
├── Screenshot_20230629_103039.png
└── Screenshot_20230629_103051.png
├── build.gradle
├── calc
├── .gitignore
├── build.gradle
├── consumer-rules.pro
├── copy_res.py
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── kotlin
│ │ └── com
│ │ └── hello
│ │ └── sandbox
│ │ └── calc
│ │ └── ExampleInstrumentedTest.kt
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── hello
│ │ │ └── sandbox
│ │ │ └── calc
│ │ │ ├── core
│ │ │ ├── AutoCalc.java
│ │ │ ├── AutoCalcException.java
│ │ │ ├── AutoCalcInfiniteException.java
│ │ │ ├── AutoCalcMath.java
│ │ │ ├── AutoCalcTools.java
│ │ │ └── ConvertUpMoney.java
│ │ │ ├── frag
│ │ │ ├── CalcFragment.java
│ │ │ └── CalcResultChangeListener.java
│ │ │ ├── util
│ │ │ ├── AlertDialogTool.java
│ │ │ ├── ExceptionUtils.java
│ │ │ └── PixelTool.java
│ │ │ └── view
│ │ │ ├── AutofitHelper.java
│ │ │ └── AutofitTextView.java
│ └── res
│ │ ├── anim
│ │ ├── dialog_bottom_down_hide.xml
│ │ ├── dialog_bottom_down_show.xml
│ │ ├── dialog_bottom_up_hide.xml
│ │ ├── dialog_bottom_up_show.xml
│ │ ├── fade_hide.xml
│ │ └── fade_show.xml
│ │ ├── color
│ │ └── btn_pad_number.xml
│ │ ├── drawable-mdpi
│ │ ├── arccos.webp
│ │ ├── arcsin.webp
│ │ ├── arctan.webp
│ │ ├── btn_cbrt.png
│ │ ├── btn_checkbox_off_normal.webp
│ │ ├── btn_checkbox_on_normal.webp
│ │ ├── btn_pad_ac_d.webp
│ │ ├── btn_pad_ac_n.webp
│ │ ├── btn_pad_c_d.webp
│ │ ├── btn_pad_c_n.webp
│ │ ├── btn_pad_del_d.webp
│ │ ├── btn_pad_del_n.webp
│ │ ├── btn_pad_div_d.webp
│ │ ├── btn_pad_div_n.webp
│ │ ├── btn_pad_equal_n.webp
│ │ ├── btn_pad_minus_d.webp
│ │ ├── btn_pad_minus_n.webp
│ │ ├── btn_pad_mul_d.webp
│ │ ├── btn_pad_mul_n.webp
│ │ ├── btn_pad_neg.webp
│ │ ├── btn_pad_percent_d.webp
│ │ ├── btn_pad_percent_n.webp
│ │ ├── btn_pad_plus_d.webp
│ │ ├── btn_pad_plus_n.webp
│ │ ├── btn_pad_switch.webp
│ │ ├── btn_pow.webp
│ │ ├── btn_sqrt.webp
│ │ ├── comma.png
│ │ ├── cos.webp
│ │ ├── deg.webp
│ │ ├── deg_d.webp
│ │ ├── e.png
│ │ ├── fac.webp
│ │ ├── iconmv0001.webp
│ │ ├── iconmv0002.webp
│ │ ├── iconmv0003.webp
│ │ ├── iconmv0004.webp
│ │ ├── iconmv0005.webp
│ │ ├── iconmv0006.webp
│ │ ├── iconmv0007.webp
│ │ ├── iconmv0008.webp
│ │ ├── iconmv0009.webp
│ │ ├── iconmv0010.webp
│ │ ├── iconmv0011.webp
│ │ ├── iconmv0012.webp
│ │ ├── iconmv0013.webp
│ │ ├── iconmv0014.webp
│ │ ├── iconmv0015.webp
│ │ ├── iconmv0016.webp
│ │ ├── iconmv0017.webp
│ │ ├── iconmv0018.webp
│ │ ├── iconmv0019.webp
│ │ ├── iconmv0020.webp
│ │ ├── iconmv0021.webp
│ │ ├── iconmv0022.webp
│ │ ├── iconmv0023.webp
│ │ ├── iconmv0024.webp
│ │ ├── left_p.webp
│ │ ├── lg.png
│ │ ├── ln.webp
│ │ ├── pi.webp
│ │ ├── rad.webp
│ │ ├── right_p.webp
│ │ ├── rpc.webp
│ │ ├── second.webp
│ │ ├── second_active.png
│ │ ├── second_d.webp
│ │ ├── sin.webp
│ │ └── tan.webp
│ │ ├── drawable-xhdpi
│ │ ├── btn_pad_ac_d.webp
│ │ ├── btn_pad_ac_n.webp
│ │ ├── btn_pad_c_d.webp
│ │ ├── btn_pad_c_n.webp
│ │ ├── btn_pad_del_d.webp
│ │ ├── btn_pad_del_n.webp
│ │ ├── btn_pad_div_d.webp
│ │ ├── btn_pad_div_n.webp
│ │ ├── btn_pad_dot_d.webp
│ │ ├── btn_pad_dot_n.webp
│ │ ├── btn_pad_equal_d.webp
│ │ ├── btn_pad_equal_n.webp
│ │ ├── btn_pad_minus_d.webp
│ │ ├── btn_pad_minus_n.webp
│ │ ├── btn_pad_mul_d.webp
│ │ ├── btn_pad_mul_n.webp
│ │ ├── btn_pad_neg.webp
│ │ ├── btn_pad_percent_d.webp
│ │ ├── btn_pad_percent_n.webp
│ │ ├── btn_pad_plus_d.webp
│ │ ├── btn_pad_plus_n.webp
│ │ ├── iconmv0001.webp
│ │ ├── iconmv0002.webp
│ │ ├── iconmv0003.webp
│ │ ├── iconmv0004.webp
│ │ ├── iconmv0005.webp
│ │ ├── iconmv0006.webp
│ │ ├── iconmv0007.webp
│ │ ├── iconmv0008.webp
│ │ ├── iconmv0009.webp
│ │ ├── iconmv0010.webp
│ │ ├── iconmv0011.webp
│ │ ├── iconmv0012.webp
│ │ ├── iconmv0013.webp
│ │ ├── iconmv0014.webp
│ │ ├── iconmv0015.webp
│ │ ├── iconmv0016.webp
│ │ ├── iconmv0017.webp
│ │ ├── iconmv0018.webp
│ │ ├── iconmv0019.webp
│ │ ├── iconmv0020.webp
│ │ ├── iconmv0021.webp
│ │ ├── iconmv0022.webp
│ │ ├── iconmv0023.webp
│ │ └── iconmv0024.webp
│ │ ├── drawable-xxhdpi
│ │ ├── arccos.webp
│ │ ├── arcsin.webp
│ │ ├── arctan.webp
│ │ ├── btn_cbrt.png
│ │ ├── btn_checkbox_off_normal.webp
│ │ ├── btn_checkbox_on_normal.webp
│ │ ├── btn_pad_ac_d.webp
│ │ ├── btn_pad_ac_n.webp
│ │ ├── btn_pad_c_d.webp
│ │ ├── btn_pad_c_n.webp
│ │ ├── btn_pad_del_d.webp
│ │ ├── btn_pad_del_n.webp
│ │ ├── btn_pad_div_d.webp
│ │ ├── btn_pad_div_n.webp
│ │ ├── btn_pad_dot_d.webp
│ │ ├── btn_pad_dot_n.webp
│ │ ├── btn_pad_equal_d.webp
│ │ ├── btn_pad_equal_n.webp
│ │ ├── btn_pad_minus_d.webp
│ │ ├── btn_pad_minus_n.webp
│ │ ├── btn_pad_mul_d.webp
│ │ ├── btn_pad_mul_n.webp
│ │ ├── btn_pad_neg.webp
│ │ ├── btn_pad_percent_d.webp
│ │ ├── btn_pad_percent_n.webp
│ │ ├── btn_pad_plus_d.webp
│ │ ├── btn_pad_plus_n.webp
│ │ ├── btn_pad_switch.webp
│ │ ├── btn_pow.webp
│ │ ├── btn_sqrt.webp
│ │ ├── comma.png
│ │ ├── cos.webp
│ │ ├── deg.webp
│ │ ├── deg_d.webp
│ │ ├── e.png
│ │ ├── fac.webp
│ │ ├── iconmv0001.webp
│ │ ├── iconmv0002.webp
│ │ ├── iconmv0003.webp
│ │ ├── iconmv0004.webp
│ │ ├── iconmv0005.webp
│ │ ├── iconmv0006.webp
│ │ ├── iconmv0007.webp
│ │ ├── iconmv0008.webp
│ │ ├── iconmv0009.webp
│ │ ├── iconmv0010.webp
│ │ ├── iconmv0011.webp
│ │ ├── iconmv0012.webp
│ │ ├── iconmv0013.webp
│ │ ├── iconmv0014.webp
│ │ ├── iconmv0015.webp
│ │ ├── iconmv0016.webp
│ │ ├── iconmv0017.webp
│ │ ├── iconmv0018.webp
│ │ ├── iconmv0019.webp
│ │ ├── iconmv0020.webp
│ │ ├── iconmv0021.webp
│ │ ├── iconmv0022.webp
│ │ ├── iconmv0023.webp
│ │ ├── iconmv0024.webp
│ │ ├── left_p.webp
│ │ ├── lg.png
│ │ ├── ln.webp
│ │ ├── pi.webp
│ │ ├── rad.webp
│ │ ├── right_p.webp
│ │ ├── rpc.webp
│ │ ├── second.webp
│ │ ├── second_active.png
│ │ ├── second_d.webp
│ │ ├── sin.webp
│ │ └── tan.webp
│ │ ├── drawable
│ │ ├── btn_2nd.xml
│ │ ├── btn_2nd_active.xml
│ │ ├── btn_calculate.xml
│ │ ├── btn_calculate_n.xml
│ │ ├── btn_calculate_p.xml
│ │ ├── btn_check_box.xml
│ │ ├── btn_deg.xml
│ │ ├── btn_pad_ac.xml
│ │ ├── btn_pad_c.xml
│ │ ├── btn_pad_del.xml
│ │ ├── btn_pad_div.xml
│ │ ├── btn_pad_dot.xml
│ │ ├── btn_pad_equal.xml
│ │ ├── btn_pad_minus.xml
│ │ ├── btn_pad_mul.xml
│ │ ├── btn_pad_number.xml
│ │ ├── btn_pad_number_last.xml
│ │ ├── btn_pad_number_last_n.xml
│ │ ├── btn_pad_number_last_s.xml
│ │ ├── btn_pad_number_last_s_n.xml
│ │ ├── btn_pad_number_last_s_p.xml
│ │ ├── btn_pad_number_n.xml
│ │ ├── btn_pad_percent.xml
│ │ ├── btn_pad_plus.xml
│ │ ├── dialog_white_bg.xml
│ │ ├── frame_animation_btn_switch.xml
│ │ └── ic_down_small_primary.xml
│ │ ├── layout
│ │ ├── calc_main.xml
│ │ ├── dialog_choose_mode.xml
│ │ └── dialog_show_text.xml
│ │ ├── values-v23
│ │ └── styles.xml
│ │ └── values
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── kotlin
│ └── com
│ └── hello
│ └── sandbox
│ └── calc
│ └── ExampleUnitTest.kt
├── common
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ └── fonts
│ │ ├── Aqum-classic.otf
│ │ ├── ArialRounded-Bold.ttf
│ │ ├── DINCondensed-Bold.ttf
│ │ ├── Roboto-Italic.ttf
│ │ ├── Roboto-Medium.ttf
│ │ ├── Roboto-Regular.ttf
│ │ ├── RobotoCondensed-Regular.ttf
│ │ └── Semibold-Italic.ttf
│ ├── java
│ ├── com
│ │ ├── hello
│ │ │ └── sandbox
│ │ │ │ └── common
│ │ │ │ ├── Au.java
│ │ │ │ ├── Config.java
│ │ │ │ ├── Dialog.java
│ │ │ │ ├── DialogBase.java
│ │ │ │ ├── DialogChain.java
│ │ │ │ ├── DialogExtraState.java
│ │ │ │ ├── DialogLifeTracer.java
│ │ │ │ ├── DialogLifecycleProvider.java
│ │ │ │ ├── DlgTrackHelper.java
│ │ │ │ ├── rx
│ │ │ │ ├── MissingBackpressureThrowable.java
│ │ │ │ ├── RxLogHelper.java
│ │ │ │ └── Rxu.java
│ │ │ │ ├── ui
│ │ │ │ ├── CustomToast.java
│ │ │ │ ├── Toast.java
│ │ │ │ └── ToastManager.java
│ │ │ │ └── util
│ │ │ │ ├── Assert.java
│ │ │ │ ├── ClipboardUtil.java
│ │ │ │ ├── ContextHolder.java
│ │ │ │ ├── Copies.java
│ │ │ │ ├── CrashHelper.java
│ │ │ │ ├── Cu.java
│ │ │ │ ├── HanziToPinyin.java
│ │ │ │ ├── LogUtils.java
│ │ │ │ ├── MarketUtil.java
│ │ │ │ ├── MeasureUtil.java
│ │ │ │ ├── MetricsUtil.java
│ │ │ │ ├── NullChecker.java
│ │ │ │ ├── PackageUtil.java
│ │ │ │ ├── RandUtil.java
│ │ │ │ ├── SettingCompatHelper.java
│ │ │ │ ├── SettingCompatUtil.java
│ │ │ │ ├── StringsUtil.java
│ │ │ │ ├── ThreadUtil.java
│ │ │ │ ├── ToastUtil.java
│ │ │ │ ├── UtilSDk.java
│ │ │ │ ├── ViewUtil.java
│ │ │ │ ├── Vu.java
│ │ │ │ └── collections
│ │ │ │ ├── LazilyMergedList.java
│ │ │ │ ├── Quadruple.java
│ │ │ │ ├── TaggedCollection.java
│ │ │ │ ├── Triple.java
│ │ │ │ ├── TripleElementSet.java
│ │ │ │ ├── TwoElementSet.java
│ │ │ │ └── Unit.java
│ │ └── zhpan
│ │ │ └── indicator
│ │ │ ├── option
│ │ │ └── AttrsController.java
│ │ │ └── utils
│ │ │ └── IndicatorUtils.java
│ ├── org
│ │ └── joor
│ │ │ ├── Reflect.java
│ │ │ └── ReflectException.java
│ ├── rx
│ │ └── android
│ │ │ ├── plugins
│ │ │ ├── RxAndroidPlugins.java
│ │ │ └── RxAndroidSchedulersHook.java
│ │ │ └── schedulers
│ │ │ ├── AndroidSchedulers.java
│ │ │ └── HandlerScheduler.java
│ └── v
│ │ ├── AAdapter.java
│ │ ├── Anu.java
│ │ ├── BAdapter.java
│ │ ├── FastInSlowOutInterpolator.java
│ │ ├── InputCodeView.java
│ │ ├── OnDispatchTouchEventListener.java
│ │ ├── PopupDialog.java
│ │ ├── RAdapter.java
│ │ ├── TDrawableFramed.java
│ │ ├── TForeground.java
│ │ ├── TTypeface.java
│ │ ├── TTypefaceManager.java
│ │ ├── TVectorDrawable.java
│ │ ├── VBaseIcon.java
│ │ ├── VButton.java
│ │ ├── VButton_FakeShadow.java
│ │ ├── VCheckBox.java
│ │ ├── VFrame.java
│ │ ├── VIcon.java
│ │ ├── VImage.java
│ │ ├── VInputConnection.java
│ │ ├── VLinear.java
│ │ ├── VLinear_Foreground.java
│ │ ├── VList.java
│ │ ├── VList_ScrollableHeight.java
│ │ ├── VPager.java
│ │ ├── VPagerCircleIndicator.java
│ │ ├── VProgressBar.java
│ │ ├── VRadioButton.java
│ │ ├── VScroll.java
│ │ ├── VText.java
│ │ ├── navigationbar
│ │ └── VNavigationBar.java
│ │ ├── progressbar
│ │ ├── ProgressBarUtils.java
│ │ └── ProgressDrawable.java
│ │ └── pushbubble
│ │ ├── OnDispatchTouchEventListener.java
│ │ ├── PushBubbleInfo.java
│ │ ├── PushBubbleManager.java
│ │ ├── SequencePushBubbleInfo.java
│ │ ├── ShowLock.java
│ │ ├── SimplePushBubble.java
│ │ └── VFrame.java
│ ├── kotlin
│ └── com
│ │ ├── hello
│ │ └── sandbox
│ │ │ └── common
│ │ │ └── AppFrontBackManager.kt
│ │ └── zhpan
│ │ └── indicator
│ │ ├── IndicatorView.kt
│ │ ├── annotation
│ │ ├── AIndicatorOrientation.kt
│ │ ├── AIndicatorSlideMode.kt
│ │ └── AIndicatorStyle.kt
│ │ ├── base
│ │ ├── BaseIndicatorView.kt
│ │ └── IIndicator.kt
│ │ ├── drawer
│ │ ├── BaseDrawer.kt
│ │ ├── CircleDrawer.kt
│ │ ├── DashDrawer.kt
│ │ ├── DrawerFactory.kt
│ │ ├── DrawerProxy.kt
│ │ ├── IDrawer.kt
│ │ ├── RectDrawer.kt
│ │ └── RoundRectDrawer.kt
│ │ ├── enums
│ │ ├── IndicatorOrientation.kt
│ │ ├── IndicatorSlideMode.kt
│ │ └── IndicatorStyle.kt
│ │ └── option
│ │ └── IndicatorOptions.kt
│ └── res
│ ├── anim-v21
│ ├── fast_out_slow_in.xml
│ ├── linear_out_slow_in.xml
│ ├── widget_button_always_shadow_sla.xml
│ ├── widget_button_no_shadow.xml
│ ├── widget_button_sla.xml
│ └── widget_button_sla_mini.xml
│ ├── anim
│ ├── common_popup_anim_enter.xml
│ ├── common_popup_anim_exit.xml
│ ├── common_view_alerts_close.xml
│ ├── common_view_alerts_show.xml
│ ├── dialog_flow_slide_in_left.xml
│ ├── dialog_flow_slide_in_right.xml
│ ├── dialog_flow_slide_out_left.xml
│ ├── dialog_flow_slide_out_right.xml
│ ├── dialog_no_enter.xml
│ ├── popup_enter_material.xml
│ └── popup_exit_material.xml
│ ├── drawable-xhdpi
│ ├── common_checkbox_bg_off.webp
│ ├── common_checkbox_bg_on.webp
│ ├── common_navigation_back.png
│ └── common_view_push_bubble_bg.9.png
│ ├── drawable-xxhdpi
│ ├── common_checkbox_bg_off.webp
│ ├── common_checkbox_bg_on.webp
│ ├── common_view_push_bubble_bg.9.png
│ └── rect_rounded_shadow.9.png
│ ├── drawable
│ ├── abc_dialog_material_background_roundedbig.xml
│ ├── abc_dialog_material_background_roundedbig_revealinner.xml
│ ├── abc_dialog_material_background_roundedbig_reveaoutter.xml
│ ├── abc_dialog_material_transparent_background_roundedbig.xml
│ ├── common_button_btn_medium_black.xml
│ ├── common_button_btn_medium_black_with_white_stroke.xml
│ ├── common_button_btn_medium_white.xml
│ ├── common_button_btn_orange_large.xml
│ ├── common_button_btn_orange_press.xml
│ ├── common_button_btn_orange_small.xml
│ ├── common_button_btn_white_medium.xml
│ ├── common_button_btn_white_small.xml
│ ├── common_checkbox_bg.xml
│ ├── common_primary_ripple.xml
│ ├── common_toast_bg.xml
│ ├── common_view_popup_bg.xml
│ ├── common_view_popup_bg_window.xml
│ ├── common_view_popup_bg_window_big.xml
│ ├── progress_dialog_bg.xml
│ ├── rect_rounded_large_tantan_orange.xml
│ ├── text_cursor.xml
│ ├── tf_rect_dark.xml
│ ├── tf_rect_dark_shape.xml
│ ├── tf_rect_light.xml
│ ├── tf_rect_rounded_light.xml
│ ├── tf_rect_rounded_light_shape.xml
│ ├── tf_rect_rounded_padding_dark.xml
│ ├── tf_rect_rounded_padding_dark_shape.xml
│ ├── tf_rect_rounded_padding_light.xml
│ └── tf_rect_rounded_padding_light_shape.xml
│ ├── layout
│ ├── common_view_navigation_bar.xml
│ ├── common_view_popup.xml
│ ├── common_view_toast.xml
│ ├── md_dialog.xml
│ ├── md_listitem.xml
│ ├── md_listitem_multichoice.xml
│ ├── md_listitem_package.xml
│ ├── md_listitem_singlechoice.xml
│ ├── progress_dialog.xml
│ ├── progress_only_dialog.xml
│ └── test_push_small_01.xml
│ ├── values-v21
│ ├── styles.xml
│ └── styles_md.xml
│ └── values
│ ├── attrs.xml
│ ├── attrs_button.xml
│ ├── attrs_circular_progress_bar.xml
│ ├── attrs_foreground.xml
│ ├── attrs_icon.xml
│ ├── attrs_md.xml
│ ├── attrs_navigation_bar.xml
│ ├── colors.xml
│ ├── colors_md.xml
│ ├── common_dimen.xml
│ ├── common_style.xml
│ ├── defaults_circular_progress_bar.xml
│ ├── dimens.xml
│ ├── dimens_md.xml
│ ├── strings.xml
│ ├── styles.xml
│ ├── styles_button.xml
│ ├── styles_checkbox.xml
│ ├── styles_md.xml
│ └── styles_popup.xml
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── network
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── hello
│ │ └── sandbox
│ │ └── network
│ │ ├── ApiExcep.java
│ │ ├── ExceptionChecker.java
│ │ └── gson
│ │ ├── AnnotationExclusionStrategy.java
│ │ ├── Exclude.java
│ │ ├── GsonUtils.java
│ │ ├── ListItemFilter.java
│ │ └── MultiTypeJsonParser.java
│ └── kotlin
│ └── com
│ └── hello
│ └── sandbox
│ └── network
│ ├── BaseResponse.kt
│ ├── HttpUtil.kt
│ └── exception
│ └── ErrorMsg.kt
├── release_apk.sh
├── settings.gradle
├── walle
├── config.json
├── run_sign.sh
└── walle-cli-all.jar
└── xpopup
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
└── main
├── AndroidManifest.xml
├── java
└── com
│ └── lxj
│ └── xpopup
│ ├── XPopup.java
│ ├── animator
│ ├── BlurAnimator.java
│ ├── EmptyAnimator.java
│ ├── PopupAnimator.java
│ ├── ScaleAlphaAnimator.java
│ ├── ScrollScaleAnimator.java
│ ├── ShadowBgAnimator.java
│ ├── TranslateAlphaAnimator.java
│ └── TranslateAnimator.java
│ ├── core
│ ├── AttachPopupView.java
│ ├── BasePopupView.java
│ ├── BottomPopupView.java
│ ├── BubbleAttachPopupView.java
│ ├── BubbleHorizontalAttachPopupView.java
│ ├── CenterPopupView.java
│ ├── DrawerPopupView.java
│ ├── FullScreenDialog.java
│ ├── HorizontalAttachPopupView.java
│ ├── ImageViewerPopupView.java
│ ├── PopupInfo.java
│ └── PositionPopupView.java
│ ├── enums
│ ├── LayoutStatus.java
│ ├── PopupAnimation.java
│ ├── PopupPosition.java
│ └── PopupStatus.java
│ ├── impl
│ ├── AttachListPopupView.java
│ ├── BottomListPopupView.java
│ ├── CenterListPopupView.java
│ ├── ConfirmPopupView.java
│ ├── FullScreenPopupView.java
│ ├── InputConfirmPopupView.java
│ ├── LoadingPopupView.java
│ └── PartShadowPopupView.java
│ ├── interfaces
│ ├── OnCancelListener.java
│ ├── OnClickOutsideListener.java
│ ├── OnConfirmListener.java
│ ├── OnDragChangeListener.java
│ ├── OnImageViewerLongPressListener.java
│ ├── OnInputConfirmListener.java
│ ├── OnSelectListener.java
│ ├── OnSrcViewUpdateListener.java
│ ├── SimpleCallback.java
│ ├── XPopupCallback.java
│ └── XPopupImageLoader.java
│ ├── photoview
│ ├── Compat.java
│ ├── CustomGestureDetector.java
│ ├── OnGestureListener.java
│ ├── OnMatrixChangedListener.java
│ ├── OnOutsidePhotoTapListener.java
│ ├── OnPhotoTapListener.java
│ ├── OnScaleChangedListener.java
│ ├── OnSingleFlingListener.java
│ ├── OnViewDragListener.java
│ ├── OnViewTapListener.java
│ ├── PhotoView.java
│ ├── PhotoViewAttacher.java
│ └── Util.java
│ ├── util
│ ├── FuckRomUtils.java
│ ├── ImageDownloadTarget.java
│ ├── KeyboardUtils.java
│ ├── PermissionConstants.java
│ ├── SSIVListener.java
│ ├── SmartGlideImageLoader.java
│ ├── XPermission.java
│ └── XPopupUtils.java
│ └── widget
│ ├── BlankView.java
│ ├── BubbleLayout.java
│ ├── CheckView.java
│ ├── HackyViewPager.java
│ ├── LoadingView.java
│ ├── PartShadowContainer.java
│ ├── PhotoViewContainer.java
│ ├── PopupDrawerLayout.java
│ ├── SmartDivider.java
│ ├── SmartDragLayout.java
│ └── VerticalRecyclerView.java
├── kotlin
└── com
│ └── lxj
│ └── easyadapter
│ ├── EasyAdapter.kt
│ ├── ItemDelegate.kt
│ ├── ItemDelegateManager.kt
│ ├── MultiItemTypeAdapter.kt
│ ├── ViewHolder.kt
│ └── WrapperUtils.kt
└── res
├── layout
├── _xpopup_adapter_text.xml
├── _xpopup_adapter_text_match.xml
├── _xpopup_attach_impl_list.xml
├── _xpopup_attach_popup_view.xml
├── _xpopup_bottom_impl_list.xml
├── _xpopup_bottom_popup_view.xml
├── _xpopup_bubble_attach_popup_view.xml
├── _xpopup_center_impl_confirm.xml
├── _xpopup_center_impl_list.xml
├── _xpopup_center_impl_loading.xml
├── _xpopup_center_popup_view.xml
├── _xpopup_divider.xml
├── _xpopup_drawer_popup_view.xml
├── _xpopup_fullscreen_popup_view.xml
├── _xpopup_image_viewer_popup_view.xml
├── _xpopup_partshadow_popup_view.xml
└── _xpopup_position_popup_view.xml
├── values-zh
└── strings.xml
└── values
├── colors.xml
├── strings.xml
└── styles.xml
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/Bcore/black-fake/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Bcore/black-fake/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/Bcore/black-fake/consumer-rules.pro
--------------------------------------------------------------------------------
/Bcore/black-fake/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Bcore/black-fake/src/main/java/android/app/ContentProviderHolder.java:
--------------------------------------------------------------------------------
1 | package android.app;
2 |
3 | import android.content.IContentProvider;
4 | import android.content.pm.ProviderInfo;
5 | import android.os.IBinder;
6 |
7 | /** Created by Milk on 2021/5/7. * ∧_∧ (`・ω・∥ 丶 つ0 しーJ 此处无Bug */
8 | public class ContentProviderHolder {
9 | public final ProviderInfo info = null;
10 | public IContentProvider provider;
11 | public IBinder connection;
12 | }
13 |
--------------------------------------------------------------------------------
/Bcore/black-fake/src/main/java/android/content/IContentProvider.java:
--------------------------------------------------------------------------------
1 | package android.content;
2 |
3 | import android.os.IInterface;
4 |
5 | /** Created by Milk on 2021/5/7. * ∧_∧ (`・ω・∥ 丶 つ0 しーJ 此处无Bug */
6 | public interface IContentProvider extends IInterface {}
7 |
--------------------------------------------------------------------------------
/Bcore/black-fake/src/main/java/android/os/ServiceManager.java:
--------------------------------------------------------------------------------
1 | package android.os;
2 |
3 | public class ServiceManager {
4 | public static IBinder getService(String name) {
5 | throw new UnsupportedOperationException("STUB");
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Bcore/black-fake/src/main/java/com/hello/sandbox/fake/FakeCore.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.fake;
2 |
3 | import top.niunaijun.jnihook.ReflectCore;
4 |
5 | /** Created by Milk on 2021/5/7. * ∧_∧ (`・ω・∥ 丶 つ0 しーJ 此处无Bug */
6 | public class FakeCore {
7 | public static void init() {
8 | ReflectCore.set(android.app.ActivityThread.class);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Bcore/black-hook/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Bcore/black-hook/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/Bcore/black-hook/consumer-rules.pro
--------------------------------------------------------------------------------
/Bcore/black-hook/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Bcore/pine-core/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Bcore/pine-core/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/Bcore/pine-core/consumer-rules.pro
--------------------------------------------------------------------------------
/Bcore/pine-core/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Bcore/pine-core/src/main/java/top/canyie/pine/Ruler.java:
--------------------------------------------------------------------------------
1 | package top.canyie.pine;
2 |
3 | /** @author canyie Internal ruler used for calculating ArtMethod size and members offset. */
4 | @SuppressWarnings("unused")
5 | final class Ruler {
6 | private static native void m1();
7 |
8 | private static native void m2();
9 |
10 | private interface I {
11 | void m();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Bcore/pine-xposed-res/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Bcore/pine-xposed-res/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Bcore/pine-xposed/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Bcore/pine-xposed/src/main/apacheCommonsLang/NOTICE.txt:
--------------------------------------------------------------------------------
1 | Apache Commons Lang
2 | Copyright 2001-2011 The Apache Software Foundation
3 |
4 | This product includes software developed by
5 | The Apache Software Foundation (http://www.apache.org/).
6 |
7 | This product includes software from the Spring Framework,
8 | under the Apache License 2.0 (see: StringUtils.containsWhitespace())
9 |
--------------------------------------------------------------------------------
/Bcore/pine-xposed/src/main/java/de/robv/android/xposed/IXposedMod.java:
--------------------------------------------------------------------------------
1 | package de.robv.android.xposed;
2 |
3 | /** Marker interface for Xposed modules. Cannot be implemented directly. */
4 | /* package */ public interface IXposedMod {}
5 |
--------------------------------------------------------------------------------
/Bcore/pine-xposed/src/main/java/de/robv/android/xposed/callbacks/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Contains the base classes for callbacks.
3 | *
4 | *
For historical reasons, {@link de.robv.android.xposed.XC_MethodHook} and {@link
5 | * de.robv.android.xposed.XC_MethodReplacement} are directly in the {@code de.robv.android.xposed}
6 | * package.
7 | */
8 | package de.robv.android.xposed.callbacks;
9 |
--------------------------------------------------------------------------------
/Bcore/pine-xposed/src/main/java/de/robv/android/xposed/package-info.java:
--------------------------------------------------------------------------------
1 | /** Contains the main classes of the Xposed framework. */
2 | package de.robv.android.xposed;
3 |
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/core/IEmpty.aidl:
--------------------------------------------------------------------------------
1 | // IBActivityThread.aidl
2 | package com.hello.sandbox.core;
3 |
4 | // Declare any non-default types here with import statements
5 |
6 | interface IEmpty {
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/core/system/pm/BPackageSettings.aidl:
--------------------------------------------------------------------------------
1 | // BPackageSettings.aidl
2 | package com.hello.sandbox.core.system.pm;
3 |
4 | // Declare any non-default types here with import statements
5 |
6 | parcelable BPackageSettings;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/core/system/user/BUserInfo.aidl:
--------------------------------------------------------------------------------
1 | // BUserInfo.aidl
2 | package com.hello.sandbox.core.system.user;
3 |
4 | // Declare any non-default types here with import statements
5 | parcelable BUserInfo;
6 |
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/AppConfig.aidl:
--------------------------------------------------------------------------------
1 | // AppConfig.aidl
2 | package com.hello.sandbox.entity;
3 |
4 | // Declare any non-default types here with import statements
5 |
6 | parcelable AppConfig;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/JobRecord.aidl:
--------------------------------------------------------------------------------
1 | // JobRecord.aidl
2 | package com.hello.sandbox.entity;
3 |
4 | // Declare any non-default types here with import statements
5 |
6 | parcelable JobRecord;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/UnbindRecord.aidl:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.entity;
2 |
3 | parcelable UnbindRecord;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/am/PendingResultData.aidl:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.entity.am;
2 |
3 | parcelable PendingResultData;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/am/ReceiverData.aidl:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.entity.am;
2 |
3 | parcelable ReceiverData;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/am/RunningAppProcessInfo.aidl:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.entity.am;
2 |
3 | parcelable RunningAppProcessInfo;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/am/RunningServiceInfo.aidl:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.entity.am;
2 |
3 | parcelable RunningServiceInfo;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/location/BCell.aidl:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.entity.location;
2 |
3 | parcelable BCell;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/location/BLocation.aidl:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.entity.location;
2 |
3 | // Declare any non-default types here with import statements
4 |
5 | parcelable BLocation;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/location/BLocationConfig.aidl:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.core.system.location;
2 |
3 | parcelable BLocationConfig;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/pm/InstallOption.aidl:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.entity.pm;
2 |
3 | parcelable InstallOption;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/pm/InstallResult.aidl:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.entity.pm;
2 |
3 | parcelable InstallResult;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/pm/InstalledModule.aidl:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.entity.pm;
2 |
3 | parcelable InstalledModule;
--------------------------------------------------------------------------------
/Bcore/src/main/aidl/com/hello/sandbox/entity/pm/InstalledPackage.aidl:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.entity.pm;
2 |
3 | parcelable InstalledPackage;
--------------------------------------------------------------------------------
/Bcore/src/main/assets/empty.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/Bcore/src/main/assets/empty.jar
--------------------------------------------------------------------------------
/Bcore/src/main/assets/junit.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/Bcore/src/main/assets/junit.jar
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/BaseHook.cpp:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 4/10/21.
3 | //
4 |
5 | #include "BaseHook.h"
6 |
7 |
8 | void BaseHook::init(JNIEnv *env) {
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/BaseHook.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 4/9/21.
3 | //
4 |
5 | #ifndef VIRTUALM_BASEHOOK_H
6 | #define VIRTUALM_BASEHOOK_H
7 |
8 | #include
9 | #include
10 |
11 | class BaseHook {
12 | public:
13 | static void init(JNIEnv *env);
14 | };
15 |
16 |
17 | #endif //VIRTUALM_BASEHOOK_H
18 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/BinderHook.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 4/25/21.
3 | //
4 |
5 | #ifndef BLACKBOX_BINDERHOOK_H
6 | #define BLACKBOX_BINDERHOOK_H
7 |
8 |
9 | #include "BaseHook.h"
10 |
11 | class BinderHook : public BaseHook{
12 | public:
13 | static void init(JNIEnv *env);
14 | };
15 |
16 | #endif //BLACKBOX_BINDERHOOK_H
17 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/RuntimeHook.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 5/5/21.
3 | //
4 |
5 | #ifndef BLACKBOX_RUNTIMEHOOK_H
6 | #define BLACKBOX_RUNTIMEHOOK_H
7 |
8 |
9 | #include "BaseHook.h"
10 | #include
11 |
12 | class RuntimeHook : public BaseHook {
13 | public:
14 | static void init(JNIEnv *env);
15 | };
16 |
17 |
18 | #endif //BLACKBOX_RUNTIMEHOOK_H
19 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/UnixFileSystemHook.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 4/9/21.
3 | //
4 |
5 | #ifndef VIRTUALM_UNIXFILESYSTEMHOOK_H
6 | #define VIRTUALM_UNIXFILESYSTEMHOOK_H
7 |
8 |
9 | #include "BaseHook.h"
10 |
11 | class UnixFileSystemHook : public BaseHook {
12 | public:
13 | static void init(JNIEnv *env);
14 | };
15 |
16 |
17 | #endif //VIRTUALM_UNIXFILESYSTEMHOOK_H
18 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Hook/VMClassLoaderHook.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 2021/5/5.
3 | //
4 |
5 | #ifndef BLACKBOX_VMCLASSLOADERHOOK_H
6 | #define BLACKBOX_VMCLASSLOADERHOOK_H
7 |
8 |
9 | #include "BaseHook.h"
10 | #include
11 |
12 | class VMClassLoaderHook : public BaseHook {
13 | public:
14 | static void hideXposed();
15 | static void init(JNIEnv *env);
16 | };
17 |
18 |
19 | #endif //BLACKBOX_VMCLASSLOADERHOOK_H
20 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Utils/HexDump.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 2020/8/18.
3 | //
4 |
5 | #ifndef SPEED_HEXDUMP_H
6 | #define SPEED_HEXDUMP_H
7 |
8 |
9 | class HexDump {
10 |
11 | };
12 | void HexDump(char *buf, int len, int addr);
13 |
14 | #endif //SPEED_HEXDUMP_H
15 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Utils/PointerCheck.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Milk on 2021/5/17.
3 | //
4 |
5 | #ifndef BLACKBOX_POINTERCHECK_H
6 | #define BLACKBOX_POINTERCHECK_H
7 |
8 |
9 | class PointerCheck {
10 | public:
11 | static bool check(void *addr);
12 | };
13 |
14 |
15 | #endif //BLACKBOX_POINTERCHECK_H
16 |
--------------------------------------------------------------------------------
/Bcore/src/main/cpp/Utils/fake_dlfcn.h:
--------------------------------------------------------------------------------
1 | #ifndef DLFCN_H
2 | #define DLFCN_H
3 |
4 | void *fake_dlopen(const char *libpath, int flags);
5 |
6 | void *fake_dlsym(void *handle, const char *name);
7 |
8 | int fake_dlclose(void *handle);
9 |
10 | #endif
--------------------------------------------------------------------------------
/Bcore/src/main/java/com/hello/sandbox/core/system/ISystemService.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.core.system;
2 |
3 | /** Created by Milk on 4/22/21. * ∧_∧ (`・ω・∥ 丶 つ0 しーJ 此处无Bug */
4 | public interface ISystemService {
5 | void systemReady();
6 | }
7 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/com/hello/sandbox/core/system/location/LocationRecord.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.core.system.location;
2 |
3 | /** Created by BlackBox on 2022/3/19. */
4 | public class LocationRecord {
5 | public String packageName;
6 | public int userId;
7 |
8 | public LocationRecord(String packageName, int userId) {
9 | this.packageName = packageName;
10 | this.userId = userId;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/com/hello/sandbox/core/system/pm/PackageMonitor.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.core.system.pm;
2 |
3 | /** Created by Milk on 5/2/21. * ∧_∧ (`・ω・∥ 丶 つ0 しーJ 此处无Bug */
4 | public interface PackageMonitor {
5 | void onPackageUninstalled(String packageName, boolean isRemove, int userId);
6 |
7 | void onPackageInstalled(String packageName, int userId);
8 | }
9 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/com/hello/sandbox/core/system/user/BUserStatus.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.core.system.user;
2 |
3 | /** Created by Milk on 4/22/21. * ∧_∧ (`・ω・∥ 丶 つ0 しーJ 此处无Bug */
4 | public enum BUserStatus {
5 | ENABLE,
6 | DISABLE
7 | }
8 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/com/hello/sandbox/fake/hook/IInjectHook.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.fake.hook;
2 |
3 | /** Created by Milk on 3/30/21. * ∧_∧ (`・ω・∥ 丶 つ0 しーJ 此处无Bug */
4 | public interface IInjectHook {
5 | void injectHook();
6 |
7 | boolean isBadEnv();
8 | }
9 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/com/hello/sandbox/fake/service/context/providers/BContentProvider.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.fake.service.context.providers;
2 |
3 | import android.os.IInterface;
4 |
5 | /** Created by Milk on 4/8/21. * ∧_∧ (`・ω・∥ 丶 つ0 しーJ 此处无Bug */
6 | public interface BContentProvider {
7 | IInterface wrapper(final IInterface contentProviderProxy, final String appPkg);
8 | }
9 |
--------------------------------------------------------------------------------
/Bcore/src/main/java/com/hello/sandbox/proxy/ProxyVpnService.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.proxy;
2 |
3 | import android.net.VpnService;
4 |
5 | /** Created by BlackBox on 2022/2/25. */
6 | public class ProxyVpnService extends VpnService {}
7 |
--------------------------------------------------------------------------------
/Bcore/src/main/res/drawable/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/Bcore/src/main/res/drawable/ic_launcher.png
--------------------------------------------------------------------------------
/Bcore/src/main/res/layout/activity_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
--------------------------------------------------------------------------------
/Bcore/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | :black
4 |
--------------------------------------------------------------------------------
/Bcore/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/android-mirror/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/android-mirror/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/android-mirror/consumer-rules.pro
--------------------------------------------------------------------------------
/android-mirror/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/accounts/IAccountManagerResponse.aidl:
--------------------------------------------------------------------------------
1 | package android.accounts;
2 |
3 | import android.os.Bundle;
4 |
5 | /**
6 | * The interface used to return responses for asynchronous calls to the {@link IAccountManager}
7 | */
8 | interface IAccountManagerResponse {
9 | void onResult(in Bundle value);
10 | void onError(int errorCode, String errorMessage);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/app/IActivityManager/ContentProviderHolder.aidl:
--------------------------------------------------------------------------------
1 | // ContentProviderHolder.aidl
2 | package android.app.IActivityManager;
3 |
4 | parcelable ContentProviderHolder;
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/app/job/JobWorkItem.aidl:
--------------------------------------------------------------------------------
1 | // JobWorkItem.aidl
2 | package android.app.job;
3 |
4 | parcelable JobWorkItem;
5 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/content/ISyncStatusObserver.aidl:
--------------------------------------------------------------------------------
1 | package android.content;
2 |
3 |
4 | interface ISyncStatusObserver {
5 | void onStatusChanged(int which);
6 | }
7 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/content/SyncStatusInfo.aidl:
--------------------------------------------------------------------------------
1 | package android.content;
2 |
3 | parcelable SyncStatusInfo;
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/content/pm/IPackageDataObserver.aidl:
--------------------------------------------------------------------------------
1 | package android.content.pm;
2 |
3 | /**
4 | * API for package data change related callbacks from the Package Manager.
5 | * Some usage scenarios include deletion of cache directory, generate
6 | * statistics related to code, data, cache usage(TODO)
7 | */
8 | interface IPackageDataObserver {
9 | void onRemoveCompleted(in String packageName, boolean succeeded);
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/content/pm/IPackageInstallObserver.aidl:
--------------------------------------------------------------------------------
1 | package android.content.pm;
2 |
3 | /**
4 | * API for installation callbacks from the Package Manager.
5 | */
6 | interface IPackageInstallObserver {
7 | void packageInstalled(in String packageName, int returnCode);
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/content/pm/IPackageInstallerCallback.aidl:
--------------------------------------------------------------------------------
1 | package android.content.pm;
2 |
3 | interface IPackageInstallerCallback {
4 | void onSessionCreated(int sessionId);
5 | void onSessionBadgingChanged(int sessionId);
6 | void onSessionActiveChanged(int sessionId, boolean active);
7 | void onSessionProgressChanged(int sessionId, float progress);
8 | void onSessionFinished(int sessionId, boolean success);
9 | }
10 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/net/wifi/IWifiScanner.aidl:
--------------------------------------------------------------------------------
1 | package android.net.wifi;
2 |
3 | import android.os.Messenger;
4 | import android.os.Bundle;
5 |
6 | interface IWifiScanner
7 | {
8 | Messenger getMessenger();
9 |
10 | Bundle getAvailableChannels(int band);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/android/os/ISystemUpdateManager.aidl:
--------------------------------------------------------------------------------
1 | package android.os;
2 |
3 | import android.os.Bundle;
4 | import android.os.PersistableBundle;
5 |
6 | interface ISystemUpdateManager {
7 | Bundle retrieveSystemUpdateInfo();
8 | void updateSystemUpdateInfo(in PersistableBundle data);
9 | }
--------------------------------------------------------------------------------
/android-mirror/src/main/aidl/com/android/internal/widget/ILockSettings.aidl:
--------------------------------------------------------------------------------
1 | package com.android.internal.widget;
2 |
3 | interface ILockSettings {
4 | void setRecoverySecretTypes(in int[] secretTypes);
5 | int[] getRecoverySecretTypes();
6 | }
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ActivityThreadQ.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IBinder;
4 | import java.util.List;
5 | import top.niunaijun.blackreflection.annotation.BClassName;
6 | import top.niunaijun.blackreflection.annotation.BMethod;
7 |
8 | @BClassName("android.app.ActivityThread")
9 | public interface ActivityThreadQ {
10 | @BMethod
11 | void handleNewIntent(IBinder IBinder0, List List1);
12 | }
13 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/AlarmManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IInterface;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.app.AlarmManager")
8 | public interface AlarmManager {
9 | @BField
10 | IInterface mService();
11 |
12 | @BField
13 | int mTargetSdkVersion();
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/AppOpsManager.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IInterface;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.app.AppOpsManager")
8 | public interface AppOpsManager {
9 | @BField
10 | IInterface mService();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ClientTransactionHandler.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IBinder;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BMethod;
6 |
7 | @BClassName("android.app.ClientTransactionHandler")
8 | public interface ClientTransactionHandler {
9 | @BMethod
10 | Object getActivityClient(IBinder IBinder0);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/ContextImplICS.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import java.io.File;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.app.ContextImpl")
8 | public interface ContextImplICS {
9 | @BField
10 | File mExternalCacheDir();
11 |
12 | @BField
13 | File mExternalFilesDir();
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/LoadedApkHuaWei.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("android.app.LoadedApk")
7 | public interface LoadedApkHuaWei {
8 | @BField
9 | Object mReceiverResource();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/LoadedApkICS.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("android.app.LoadedApk")
7 | public interface LoadedApkICS {
8 | @BField
9 | Object mCompatibilityInfo();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/LoadedApkKitkat.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("android.app.LoadedApk")
7 | public interface LoadedApkKitkat {
8 | @BField
9 | Object mDisplayAdjustments();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/NotificationChannel.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("android.app.NotificationChannel")
7 | public interface NotificationChannel {
8 | @BField
9 | String mId();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/NotificationM.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.graphics.drawable.Icon;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.app.Notification")
8 | public interface NotificationM {
9 | @BField
10 | Icon mLargeIcon();
11 |
12 | @BField
13 | Icon mSmallIcon();
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/NotificationO.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("android.app.Notification")
7 | public interface NotificationO {
8 | @BField
9 | String mChannelId();
10 |
11 | @BField
12 | String mGroupKey();
13 | }
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/PendingIntentO.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import android.os.IBinder;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BConstructor;
6 |
7 | @BClassName("android.app.PendingIntent")
8 | public interface PendingIntentO {
9 | @BConstructor
10 | PendingIntentO _new(IBinder IBinder0, Object Object1);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/SharedPreferencesImpl.java:
--------------------------------------------------------------------------------
1 | package black.android.app;
2 |
3 | import java.io.File;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BConstructor;
6 |
7 | @BClassName("android.app.SharedPreferencesImpl")
8 | public interface SharedPreferencesImpl {
9 | @BConstructor
10 | SharedPreferencesImpl _new(File File0, int int1);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/servertransaction/ActivityLifecycleItem.java:
--------------------------------------------------------------------------------
1 | package black.android.app.servertransaction;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BMethod;
5 |
6 | @BClassName("android.app.servertransaction.ActivityLifecycleItem")
7 | public interface ActivityLifecycleItem {
8 | @BMethod
9 | Integer getTargetState();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/servertransaction/ActivityResultItem.java:
--------------------------------------------------------------------------------
1 | package black.android.app.servertransaction;
2 |
3 | import java.util.List;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.app.servertransaction.ActivityResultItem")
8 | public interface ActivityResultItem {
9 | @BField
10 | List mResultInfoList();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/app/servertransaction/TopResumedActivityChangeItem.java:
--------------------------------------------------------------------------------
1 | package black.android.app.servertransaction;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("android.app.servertransaction.TopResumedActivityChangeItem")
7 | public interface TopResumedActivityChangeItem {
8 | @BField
9 | Boolean mOnTop();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/ContentProviderClient.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import android.os.IInterface;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.content.ContentProviderClient")
8 | public interface ContentProviderClient {
9 | @BField
10 | IInterface mContentProvider();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/ContentProviderClientQ.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BConstructor;
5 |
6 | @BClassName("android.content.ContentProviderClient")
7 | public interface ContentProviderClientQ {
8 | @BConstructor
9 | ContentProviderClientQ _new();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/IContentProvider.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 |
5 | @BClassName("android.content.IContentProvider")
6 | public interface IContentProvider {}
7 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/IntentFilter.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import java.util.List;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.content.IntentFilter")
8 | public interface IntentFilter {
9 | @BField
10 | List mActions();
11 |
12 | @BField
13 | List mCategories();
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/IntentSender.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import android.os.IInterface;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.content.IntentSender")
8 | public interface IntentSender {
9 | @BField
10 | IInterface mTarget();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/PeriodicSync.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("android.content.PeriodicSync")
7 | public interface PeriodicSync {
8 | @BField
9 | long flexTime();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/SyncInfo.java:
--------------------------------------------------------------------------------
1 | package black.android.content;
2 |
3 | import android.accounts.Account;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BConstructor;
6 |
7 | @BClassName("android.content.SyncInfo")
8 | public interface SyncInfo {
9 | @BConstructor
10 | SyncInfo _new(int int0, Account Account1, String String2, long long3);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/content/pm/PackageUserState.java:
--------------------------------------------------------------------------------
1 | package black.android.content.pm;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BConstructor;
5 |
6 | @BClassName("android.content.pm.PackageUserState")
7 | public interface PackageUserState {
8 | @BConstructor
9 | PackageUserState _new();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/ddm/DdmHandleAppName.java:
--------------------------------------------------------------------------------
1 | package black.android.ddm;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
5 |
6 | @BClassName("android.ddm.DdmHandleAppName")
7 | public interface DdmHandleAppName {
8 | @BStaticMethod
9 | void setAppName(String String0, int i);
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/graphics/Compatibility.java:
--------------------------------------------------------------------------------
1 | package black.android.graphics;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
5 |
6 | /** Created by BlackBox on 2022/2/24. */
7 | @BClassName("android.graphics.Compatibility")
8 | public interface Compatibility {
9 | @BStaticMethod
10 | void setTargetSdkVersion(int targetSdkVersion);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/hardware/display/IDisplayManager.java:
--------------------------------------------------------------------------------
1 | package black.android.hardware.display;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 |
5 | @BClassName("android.hardware.display.IDisplayManager")
6 | public interface IDisplayManager {}
7 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/net/wifi/WifiScanner.java:
--------------------------------------------------------------------------------
1 | package black.android.net.wifi;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticField;
5 |
6 | @BClassName("android.net.wifi.WifiScanner")
7 | public interface WifiScanner {
8 | @BStaticField
9 | String GET_AVAILABLE_CHANNELS_EXTRA();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/net/wifi/WifiSsid.java:
--------------------------------------------------------------------------------
1 | package black.android.net.wifi;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
5 |
6 | @BClassName("android.net.wifi.WifiSsid")
7 | public interface WifiSsid {
8 | @BStaticMethod
9 | Object createFromAsciiEncoded(String asciiEncoded);
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/BaseBundle.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import android.os.Parcel;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.os.BaseBundle")
8 | public interface BaseBundle {
9 | @BField
10 | Parcel mParcelledData();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/Build.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 |
5 | @BClassName("android.os.Build")
6 | public interface Build {}
7 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/Bundle.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import android.os.IBinder;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BMethod;
6 |
7 | @BClassName("android.os.Bundle")
8 | public interface Bundle {
9 | @BMethod
10 | IBinder getIBinder(String String0);
11 |
12 | @BMethod
13 | void putIBinder(String String0, IBinder IBinder1);
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/BundleICS.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import android.os.Parcel;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.os.Bundle")
8 | public interface BundleICS {
9 | @BField
10 | Parcel mParcelledData();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/DropBoxManager.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import android.os.IInterface;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.os.DropBoxManager")
8 | public interface DropBoxManager {
9 | @BField
10 | IInterface mService();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/Environment.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticField;
5 |
6 | @BClassName("android.os.Environment")
7 | public interface Environment {
8 |
9 | @BStaticField
10 | Object sCurrentUser();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/Handler.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import android.os.Handler.Callback;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.os.Handler")
8 | public interface Handler {
9 | @BField
10 | Callback mCallback();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/MemoryFile.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import java.io.FileDescriptor;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BMethod;
6 |
7 | @BClassName("android.os.MemoryFile")
8 | public interface MemoryFile {
9 | @BMethod
10 | FileDescriptor getFileDescriptor();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/Message.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
5 |
6 | @BClassName("android.os.Message")
7 | public interface Message {
8 | @BStaticMethod
9 | void updateCheckRecycle(int int0);
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/Parcel.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticField;
5 |
6 | @BClassName("android.os.Parcel")
7 | public interface Parcel {
8 | @BStaticField
9 | int VAL_PARCELABLE();
10 |
11 | @BStaticField
12 | int VAL_PARCELABLEARRAY();
13 | }
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/Process.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
5 |
6 | @BClassName("android.os.Process")
7 | public interface Process {
8 | @BStaticMethod
9 | void setArgV0(String String0);
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/UserHandle.java:
--------------------------------------------------------------------------------
1 | package black.android.os;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
5 |
6 | @BClassName("android.os.UserHandle")
7 | public interface UserHandle {
8 | @BStaticMethod
9 | Integer myUserId();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/health/SystemHealthManager.java:
--------------------------------------------------------------------------------
1 | package black.android.os.health;
2 |
3 | import android.os.IInterface;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.os.health.SystemHealthManager")
8 | public interface SystemHealthManager {
9 | @BField
10 | IInterface mBatteryStats();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/os/storage/StorageVolume.java:
--------------------------------------------------------------------------------
1 | package black.android.os.storage;
2 |
3 | import java.io.File;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.os.storage.StorageVolume")
8 | public interface StorageVolume {
9 | @BField
10 | File mInternalPath();
11 |
12 | @BField
13 | File mPath();
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/renderscript/RenderScriptCacheDir.java:
--------------------------------------------------------------------------------
1 | package black.android.renderscript;
2 |
3 | import java.io.File;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
6 |
7 | @BClassName("android.renderscript.RenderScriptCacheDir")
8 | public interface RenderScriptCacheDir {
9 | @BStaticMethod
10 | void setupDiskCache(File File0);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/rms/HwSysResImplP.java:
--------------------------------------------------------------------------------
1 | package black.android.rms;
2 |
3 | import java.util.Map;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.rms.HwSysResImpl")
8 | public interface HwSysResImplP {
9 | @BField
10 | Map> mWhiteListMap();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/rms/resource/ReceiverResourceLP.java:
--------------------------------------------------------------------------------
1 | package black.android.rms.resource;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("android.rms.resource.ReceiverResource")
7 | public interface ReceiverResourceLP {
8 | @BField
9 | Object mResourceConfig();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/rms/resource/ReceiverResourceM.java:
--------------------------------------------------------------------------------
1 | package black.android.rms.resource;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("android.rms.resource.ReceiverResource")
7 | public interface ReceiverResourceM {
8 | @BField
9 | String[] mWhiteList();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/rms/resource/ReceiverResourceN.java:
--------------------------------------------------------------------------------
1 | package black.android.rms.resource;
2 |
3 | import java.util.List;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.rms.resource.ReceiverResource")
8 | public interface ReceiverResourceN {
9 | @BField
10 | List mWhiteList();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/rms/resource/ReceiverResourceO.java:
--------------------------------------------------------------------------------
1 | package black.android.rms.resource;
2 |
3 | import java.util.Map;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("android.rms.resource.ReceiverResource")
8 | public interface ReceiverResourceO {
9 | @BField
10 | Map> mWhiteListMap();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/telephony/NeighboringCellInfo.java:
--------------------------------------------------------------------------------
1 | package black.android.telephony;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("android.telephony.NeighboringCellInfo")
7 | public interface NeighboringCellInfo {
8 | @BField
9 | int mCid();
10 |
11 | @BField
12 | int mLac();
13 |
14 | @BField
15 | int mRssi();
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/telephony/SmsManager.java:
--------------------------------------------------------------------------------
1 | package black.android.telephony;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BMethod;
5 |
6 | @BClassName("android.telephony.SmsManager")
7 | public interface SmsManager {
8 | @BMethod
9 | Boolean getAutoPersisting();
10 |
11 | @BMethod
12 | void setAutoPersisting(boolean boolean0);
13 | }
14 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/util/Singleton.java:
--------------------------------------------------------------------------------
1 | package black.android.util;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 | import top.niunaijun.blackreflection.annotation.BMethod;
6 |
7 | @BClassName("android.util.Singleton")
8 | public interface Singleton {
9 | @BField
10 | Object mInstance();
11 |
12 | @BMethod
13 | Object get();
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/CompatibilityInfoHolder.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BMethod;
5 |
6 | @BClassName("android.view.CompatibilityInfoHolder")
7 | public interface CompatibilityInfoHolder {
8 | @BMethod
9 | void set();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/Display.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import android.os.IInterface;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticField;
6 |
7 | @BClassName("android.view.Display")
8 | public interface Display {
9 | @BStaticField
10 | IInterface sWindowManager();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/DisplayAdjustments.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BMethod;
5 |
6 | @BClassName("android.view.DisplayAdjustments")
7 | public interface DisplayAdjustments {
8 | @BMethod
9 | void setCompatibilityInfo();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/HardwareRenderer.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import java.io.File;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
6 |
7 | @BClassName("android.view.HardwareRenderer")
8 | public interface HardwareRenderer {
9 | @BStaticMethod
10 | void setupDiskCache(File File0);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/RenderScript.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import java.io.File;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
6 |
7 | @BClassName("android.renderscript.RenderScript")
8 | public interface RenderScript {
9 | @BStaticMethod
10 | void setupDiskCache(File File0);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/SurfaceControl.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import android.graphics.Bitmap;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
6 |
7 | @BClassName("android.view.SurfaceControl")
8 | public interface SurfaceControl {
9 | @BStaticMethod
10 | Bitmap screnshot(int int0, int int1);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/view/ThreadedRenderer.java:
--------------------------------------------------------------------------------
1 | package black.android.view;
2 |
3 | import java.io.File;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticMethod;
6 |
7 | @BClassName("android.view.ThreadedRenderer")
8 | public interface ThreadedRenderer {
9 | @BStaticMethod
10 | void setupDiskCache(File File0);
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/android/widget/Toast.java:
--------------------------------------------------------------------------------
1 | package black.android.widget;
2 |
3 | import android.os.IInterface;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BStaticField;
6 |
7 | @BClassName("android.widget.Toast")
8 | public interface Toast {
9 | @BStaticField
10 | IInterface sService();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/com/android/internal/telephony/PhoneConstantsMtk.java:
--------------------------------------------------------------------------------
1 | package black.com.android.internal.telephony;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticField;
5 |
6 | @BClassName("com.android.internal.telephony.PhoneConstants")
7 | public interface PhoneConstantsMtk {
8 | @BStaticField
9 | int GEMINI_SIM_NUM();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/com/android/internal/view/IInputMethodManager.java:
--------------------------------------------------------------------------------
1 | package black.com.android.internal.view;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 |
5 | @BClassName("com.android.internal.view.IInputMethodManager")
6 | public interface IInputMethodManager {}
7 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/dalvik/system/BaseDexClassLoader.java:
--------------------------------------------------------------------------------
1 | package black.dalvik.system;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("dalvik.system.BaseDexClassLoader")
7 | public interface BaseDexClassLoader {
8 |
9 | @BField
10 | Object sharedLibraryLoaders();
11 | }
12 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/java/io/File.java:
--------------------------------------------------------------------------------
1 | package black.java.io;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticField;
5 |
6 | @BClassName("java.io.File")
7 | public interface File {
8 | @BStaticField
9 | Object fs();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/java/io/FileSystem.java:
--------------------------------------------------------------------------------
1 | package black.java.io;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 |
5 | @BClassName("java.io.FileSystem")
6 | public interface FileSystem {}
7 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/java/io/UnixFileSystem.java:
--------------------------------------------------------------------------------
1 | package black.java.io;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 |
5 | @BClassName("java.io.UnixFileSystem")
6 | public interface UnixFileSystem {}
7 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/java/lang/ThreadGroup.java:
--------------------------------------------------------------------------------
1 | package black.java.lang;
2 |
3 | import java.util.List;
4 | import top.niunaijun.blackreflection.annotation.BClassName;
5 | import top.niunaijun.blackreflection.annotation.BField;
6 |
7 | @BClassName("java.lang.ThreadGroup")
8 | public interface ThreadGroup {
9 | @BField
10 | List groups();
11 |
12 | @BField
13 | java.lang.ThreadGroup parent();
14 | }
15 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/java/lang/ThreadGroupN.java:
--------------------------------------------------------------------------------
1 | package black.java.lang;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("java.lang.ThreadGroup")
7 | public interface ThreadGroupN {
8 | @BField
9 | java.lang.ThreadGroup[] groups();
10 |
11 | @BField
12 | Integer ngroups();
13 |
14 | @BField
15 | java.lang.ThreadGroup parent();
16 | }
17 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/libcore/io/ForwardingOs.java:
--------------------------------------------------------------------------------
1 | package black.libcore.io;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BField;
5 |
6 | @BClassName("libcore.io.ForwardingOs")
7 | public interface ForwardingOs {
8 | @BField
9 | Object os();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/libcore/io/Libcore.java:
--------------------------------------------------------------------------------
1 | package black.libcore.io;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 | import top.niunaijun.blackreflection.annotation.BStaticField;
5 |
6 | @BClassName("libcore.io.Libcore")
7 | public interface Libcore {
8 | @BStaticField
9 | Object os();
10 | }
11 |
--------------------------------------------------------------------------------
/android-mirror/src/main/java/black/libcore/io/Os.java:
--------------------------------------------------------------------------------
1 | package black.libcore.io;
2 |
3 | import top.niunaijun.blackreflection.annotation.BClassName;
4 |
5 | @BClassName("libcore.io.Os")
6 | public interface Os {}
7 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /SandBox32/release/output-metadata.json
3 |
--------------------------------------------------------------------------------
/app/abi.gradle:
--------------------------------------------------------------------------------
1 | android {
2 | flavorDimensions "abi"
3 |
4 | productFlavors {
5 | v7 {
6 | dimension "abi"
7 | ndk {
8 | abiFilters "armeabi-v7a"
9 | }
10 | }
11 |
12 | v8 {
13 | dimension "abi"
14 | ndk {
15 | abiFilters "arm64-v8a"
16 | }
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/app/gradle.properties:
--------------------------------------------------------------------------------
1 | app_versionCode=1004
2 | app_versionName=1.0.4
--------------------------------------------------------------------------------
/app/signing.gradle:
--------------------------------------------------------------------------------
1 | android {
2 | signingConfigs {
3 | release {
4 | storeFile file(gradle.ext.sign_storeFile)
5 | storePassword gradle.ext.sign_storePassword
6 | keyAlias gradle.ext.sign_keyAlias
7 | keyPassword gradle.ext.sign_keyPassword
8 | v1SigningEnabled true
9 | v2SigningEnabled true
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/aidl/top/niunaijun/blackboxa/screen/IScreenOrientation.aidl:
--------------------------------------------------------------------------------
1 | // IScreenOrientation.aidl
2 | package top.niunaijun.blackboxa.screen;
3 |
4 | import top.niunaijun.blackboxa.screen.ScreenFlippedListener;
5 |
6 | interface IScreenOrientation {
7 | void registerScreenFlippedListener(in String packageName ,in ScreenFlippedListener listener);
8 | void open();
9 | void close();
10 | }
--------------------------------------------------------------------------------
/app/src/main/aidl/top/niunaijun/blackboxa/screen/ScreenFlippedListener.aidl:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackboxa.screen;
2 |
3 | interface ScreenFlippedListener {
4 | void onFlipped();
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/kotlin/com/hello/sandbox/ui/guide/HideGuideInfo.kt:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.ui.guide
2 |
3 | import android.graphics.drawable.Drawable
4 |
5 | data class HideGuideInfo(val title: String, val icon: Drawable, val description: String)
6 |
--------------------------------------------------------------------------------
/app/src/main/kotlin/com/hello/sandbox/ui/home/AppInstallerListener.kt:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.ui.home
2 |
3 | import android.net.Uri
4 |
5 | interface AppInstallerListener {
6 | fun onAppInstallOrUnInstall(action: String, data: Uri?)
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/kotlin/com/hello/sandbox/ui/home/HomeBannerInfo.kt:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.ui.home
2 |
3 | import android.graphics.drawable.Drawable
4 |
5 | data class HomeBannerInfo(val url: String, val icon: Drawable)
6 |
--------------------------------------------------------------------------------
/app/src/main/kotlin/com/hello/sandbox/ui/screen/ScreenOrientationAction.kt:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.ui.screen
2 |
3 | import top.niunaijun.blackboxa.screen.ScreenFlippedListener
4 |
5 | interface ScreenOrientationAction {
6 |
7 | fun registerScreenFlippedListener(packageName: String, listener: ScreenFlippedListener)
8 |
9 | fun open()
10 |
11 | fun close()
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/kotlin/com/hello/sandbox/ui/search/HeaderAppBean.kt:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.ui.search
2 |
3 | import android.graphics.drawable.Drawable
4 |
5 | data class HeaderAppBean(
6 | val name: String,
7 | val icon: Drawable,
8 | val packageName: String,
9 | val sourceDir: String,
10 | val downloadUrl: String
11 | )
12 |
--------------------------------------------------------------------------------
/app/src/main/kotlin/com/hello/sandbox/user/UserLoginInfo.kt:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.user
2 |
3 | import androidx.annotation.Keep
4 |
5 | @Keep data class UserLoginInfo(var userId: String = "")
6 |
--------------------------------------------------------------------------------
/app/src/main/kotlin/com/hello/sandbox/util/ViewUtil.kt:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.util
2 |
3 | import android.view.View
4 | import com.hello.sandbox.common.util.ViewUtil
5 |
6 | inline fun View.singleClickListener(onClickListenr: View.OnClickListener) {
7 | ViewUtil.singleClickListener(this, onClickListenr)
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/kotlin/top/niunaijun/blackboxa/bean/GmsBean.kt:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackboxa.bean
2 |
3 | /**
4 | *
5 | * @Description:
6 | * @Author: BlackBox
7 | * @CreateDate: 2022/3/2 21:30
8 | */
9 | data class GmsBean(val userID: Int, val userName: String, var isInstalledGms: Boolean)
10 |
11 | data class GmsInstallBean(val userID: Int, val success: Boolean, val msg: String)
12 |
--------------------------------------------------------------------------------
/app/src/main/kotlin/top/niunaijun/blackboxa/bean/XpModuleInfo.kt:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackboxa.bean
2 |
3 | import android.graphics.drawable.Drawable
4 |
5 | /**
6 | *
7 | * @Description:
8 | * @Author: wukaicheng
9 | * @CreateDate: 2021/5/2 21:03
10 | */
11 | data class XpModuleInfo(
12 | val name: String,
13 | val desc: String,
14 | val packageName: String,
15 | val version: String,
16 | var enable: Boolean,
17 | val icon: Drawable
18 | )
19 |
--------------------------------------------------------------------------------
/app/src/main/kotlin/top/niunaijun/blackboxa/util/ResUtil.kt:
--------------------------------------------------------------------------------
1 | package top.niunaijun.blackboxa.util
2 |
3 | import androidx.annotation.StringRes
4 | import top.niunaijun.blackboxa.app.App
5 |
6 | fun getString(@StringRes id: Int, vararg arg: String): String {
7 | if (arg.isEmpty()) {
8 | return App.getContext().getString(id)
9 | }
10 | return App.getContext().getString(id, *arg)
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-anydpi/ic_add.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-hdpi/ic_add.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_location_change.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-hdpi/ic_location_change.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-hdpi/ic_search.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-mdpi/ic_add.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_location_change.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-mdpi/ic_location_change.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-mdpi/ic_search.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/bottom_tab_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/bottom_tab_add.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/bottom_tab_home_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/bottom_tab_home_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/bottom_tab_home_unselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/bottom_tab_home_unselected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/bottom_tab_me_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/bottom_tab_me_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/bottom_tab_me_unselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/bottom_tab_me_unselected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/fragment_me_about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/fragment_me_about.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/fragment_me_help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/fragment_me_help.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/fragment_me_logout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/fragment_me_logout.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/fragment_me_question.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/fragment_me_question.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/fragment_me_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/fragment_me_share.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/hide_bg_guide1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/hide_bg_guide1.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/hide_bg_guide2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/hide_bg_guide2.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/hide_bg_guide3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/hide_bg_guide3.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/home_banner_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/home_banner_1.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/home_banner_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/home_banner_2.jpg
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/home_banner_3.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/home_banner_3.jpeg
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/home_change_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/home_change_icon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/home_icon_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/home_icon_add.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/home_rotate_screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/home_rotate_screen.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/home_set_secret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/home_set_secret.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/ic_add.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_location_change.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/ic_location_change.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/ic_search.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/icon_arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/icon_arrow.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/launch_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/launch_bg.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/me_default_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/me_default_icon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/momo_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/momo_icon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/search.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/search.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/splash_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/splash_icon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/splash_icon_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/splash_icon_small.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/tantan_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xhdpi/tantan_icon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/bottom_tab_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/bottom_tab_add.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/bottom_tab_home_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/bottom_tab_home_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/bottom_tab_home_unselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/bottom_tab_home_unselected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/bottom_tab_me_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/bottom_tab_me_selected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/bottom_tab_me_unselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/bottom_tab_me_unselected.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/calculator_pop_close.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/calculator_pop_close.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/change_app_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/change_app_icon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/fragment_me_about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/fragment_me_about.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/fragment_me_help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/fragment_me_help.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/fragment_me_logout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/fragment_me_logout.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/fragment_me_question.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/fragment_me_question.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/fragment_me_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/fragment_me_share.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/general_error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/general_error.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/home_change_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/home_change_icon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/home_rotate_screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/home_rotate_screen.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/home_set_secret.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/home_set_secret.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/ic_add.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_location_change.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/ic_location_change.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/ic_search.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/icon_arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/icon_arrow.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/icon_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/icon_close.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/icon_fake.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/icon_fake.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/screen_orientation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/screen_orientation.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/search.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/search.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/setting_password_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/setting_password_next.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/setting_password_tip_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/setting_password_tip_icon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/splash_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/splash_icon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/splash_icon_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/drawable-xxhdpi/splash_icon_small.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/home_icon_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_btn_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_btn_cancel_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_change_icon_normall.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_change_icon_selected.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_change_icon_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_color_3ec0aa_14.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_color_3ec0aa_24.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_color_3ec0aa_32.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_color_3ec0aa_9.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_color_aaaaaa_32.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_detail_input.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/shape_home_icon_label.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/sort_text_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/sort_text_view_hint_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_login.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/home_pager_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_viewpager.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/profile_view_line.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/view_switch.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_search.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-hdpi/ic_launcher_beta.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round_beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-hdpi/ic_launcher_round_beta.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-ldpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-ldpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-ldpi/ic_launcher_beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-ldpi/ic_launcher_beta.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-ldpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-ldpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-ldpi/ic_launcher_round_beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-ldpi/ic_launcher_round_beta.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-mdpi/ic_launcher_beta.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round_beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-mdpi/ic_launcher_round_beta.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-xhdpi/ic_launcher_beta.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round_beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-xhdpi/ic_launcher_round_beta.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-xxhdpi/ic_launcher_beta.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round_beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-xxhdpi/ic_launcher_round_beta.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-xxxhdpi/ic_launcher_beta.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round_beta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round_beta.png
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 5dp
3 | 6dp
4 | 10dp
5 | 16dp
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/network_security_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/assets/Screenshot_20230629_103013.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/assets/Screenshot_20230629_103013.png
--------------------------------------------------------------------------------
/assets/Screenshot_20230629_103039.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/assets/Screenshot_20230629_103039.png
--------------------------------------------------------------------------------
/assets/Screenshot_20230629_103051.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/assets/Screenshot_20230629_103051.png
--------------------------------------------------------------------------------
/calc/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/calc/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/consumer-rules.pro
--------------------------------------------------------------------------------
/calc/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/calc/src/main/java/com/hello/sandbox/calc/core/AutoCalcException.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.calc.core;
2 |
3 | /**
4 | * AutoCalc 在计算中发生的异常
5 | */
6 | public class AutoCalcException extends Exception {
7 | public AutoCalcException(String message) {
8 | super(message);
9 | }
10 | }
--------------------------------------------------------------------------------
/calc/src/main/java/com/hello/sandbox/calc/core/AutoCalcInfiniteException.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.calc.core;
2 |
3 | /**
4 | * AutoCalc 在计算中发生无限大异常
5 | */
6 | public class AutoCalcInfiniteException extends Exception {
7 | public AutoCalcInfiniteException() {
8 | super("Calc Infinite");
9 | }
10 | }
--------------------------------------------------------------------------------
/calc/src/main/java/com/hello/sandbox/calc/frag/CalcResultChangeListener.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.calc.frag;
2 | public interface CalcResultChangeListener {
3 |
4 | void onChange(String text);
5 | }
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/anim/dialog_bottom_down_hide.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
--------------------------------------------------------------------------------
/calc/src/main/res/anim/dialog_bottom_down_show.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/calc/src/main/res/anim/dialog_bottom_up_hide.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/calc/src/main/res/anim/dialog_bottom_up_show.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
--------------------------------------------------------------------------------
/calc/src/main/res/anim/fade_hide.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/calc/src/main/res/anim/fade_show.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/calc/src/main/res/color/btn_pad_number.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/arccos.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/arccos.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/arcsin.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/arcsin.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/arctan.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/arctan.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_cbrt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_cbrt.png
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_checkbox_off_normal.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_checkbox_off_normal.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_checkbox_on_normal.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_checkbox_on_normal.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_ac_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_ac_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_ac_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_ac_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_c_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_c_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_c_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_c_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_del_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_del_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_del_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_del_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_div_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_div_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_div_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_div_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_equal_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_equal_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_minus_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_minus_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_minus_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_minus_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_mul_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_mul_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_mul_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_mul_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_neg.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_neg.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_percent_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_percent_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_percent_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_percent_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_plus_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_plus_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_plus_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_plus_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pad_switch.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pad_switch.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_pow.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_pow.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/btn_sqrt.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/btn_sqrt.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/comma.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/comma.png
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/cos.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/cos.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/deg.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/deg.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/deg_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/deg_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/e.png
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/fac.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/fac.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0001.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0001.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0002.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0002.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0003.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0003.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0004.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0004.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0005.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0005.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0006.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0006.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0007.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0007.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0008.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0008.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0009.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0009.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0010.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0010.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0011.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0011.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0012.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0012.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0013.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0013.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0014.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0014.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0015.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0015.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0016.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0016.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0017.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0017.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0018.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0018.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0019.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0019.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0020.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0020.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0021.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0021.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0022.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0022.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0023.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0023.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/iconmv0024.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/iconmv0024.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/left_p.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/left_p.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/lg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/lg.png
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/ln.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/ln.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/pi.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/pi.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/rad.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/rad.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/right_p.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/right_p.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/rpc.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/rpc.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/second.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/second.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/second_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/second_active.png
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/second_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/second_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/sin.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/sin.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-mdpi/tan.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-mdpi/tan.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_ac_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_ac_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_ac_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_ac_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_c_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_c_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_c_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_c_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_del_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_del_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_del_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_del_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_div_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_div_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_div_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_div_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_dot_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_dot_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_dot_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_dot_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_equal_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_equal_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_equal_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_equal_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_minus_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_minus_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_minus_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_minus_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_mul_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_mul_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_mul_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_mul_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_neg.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_neg.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_percent_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_percent_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_percent_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_percent_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_plus_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_plus_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/btn_pad_plus_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/btn_pad_plus_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0001.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0001.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0002.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0002.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0003.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0003.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0004.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0004.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0005.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0005.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0006.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0006.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0007.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0007.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0008.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0008.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0009.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0009.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0010.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0010.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0011.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0011.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0012.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0012.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0013.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0013.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0014.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0014.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0015.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0015.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0016.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0016.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0017.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0017.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0018.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0018.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0019.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0019.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0020.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0020.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0021.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0021.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0022.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0022.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0023.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0023.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xhdpi/iconmv0024.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xhdpi/iconmv0024.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/arccos.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/arccos.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/arcsin.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/arcsin.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/arctan.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/arctan.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_cbrt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_cbrt.png
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_checkbox_off_normal.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_checkbox_off_normal.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_checkbox_on_normal.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_checkbox_on_normal.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_ac_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_ac_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_ac_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_ac_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_c_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_c_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_c_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_c_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_del_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_del_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_del_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_del_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_div_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_div_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_div_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_div_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_dot_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_dot_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_dot_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_dot_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_equal_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_equal_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_equal_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_equal_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_minus_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_minus_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_minus_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_minus_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_mul_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_mul_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_mul_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_mul_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_neg.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_neg.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_percent_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_percent_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_percent_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_percent_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_plus_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_plus_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_plus_n.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_plus_n.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pad_switch.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pad_switch.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_pow.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_pow.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/btn_sqrt.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/btn_sqrt.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/comma.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/comma.png
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/cos.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/cos.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/deg.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/deg.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/deg_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/deg_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/e.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/e.png
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/fac.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/fac.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0001.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0001.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0002.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0002.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0003.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0003.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0004.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0004.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0005.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0005.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0006.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0006.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0007.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0007.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0008.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0008.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0009.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0009.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0010.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0010.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0011.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0011.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0012.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0012.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0013.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0013.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0014.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0014.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0015.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0015.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0016.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0016.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0017.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0017.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0018.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0018.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0019.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0019.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0020.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0020.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0021.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0021.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0022.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0022.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0023.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0023.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/iconmv0024.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/iconmv0024.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/left_p.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/left_p.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/lg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/lg.png
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/ln.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/ln.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/pi.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/pi.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/rad.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/rad.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/right_p.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/right_p.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/rpc.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/rpc.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/second.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/second.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/second_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/second_active.png
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/second_d.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/second_d.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/sin.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/sin.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable-xxhdpi/tan.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/calc/src/main/res/drawable-xxhdpi/tan.webp
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_2nd.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_2nd_active.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_calculate.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_calculate_n.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_calculate_p.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_check_box.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_deg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_ac.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_c.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_del.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_div.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_dot.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_equal.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_minus.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_mul.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_number.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_number_last.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_number_last_s.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_percent.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/btn_pad_plus.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/calc/src/main/res/drawable/dialog_white_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/common/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/common/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/common/src/main/assets/fonts/Aqum-classic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/assets/fonts/Aqum-classic.otf
--------------------------------------------------------------------------------
/common/src/main/assets/fonts/ArialRounded-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/assets/fonts/ArialRounded-Bold.ttf
--------------------------------------------------------------------------------
/common/src/main/assets/fonts/DINCondensed-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/assets/fonts/DINCondensed-Bold.ttf
--------------------------------------------------------------------------------
/common/src/main/assets/fonts/Roboto-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/assets/fonts/Roboto-Italic.ttf
--------------------------------------------------------------------------------
/common/src/main/assets/fonts/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/assets/fonts/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/common/src/main/assets/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/assets/fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/common/src/main/assets/fonts/RobotoCondensed-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/assets/fonts/RobotoCondensed-Regular.ttf
--------------------------------------------------------------------------------
/common/src/main/assets/fonts/Semibold-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/assets/fonts/Semibold-Italic.ttf
--------------------------------------------------------------------------------
/common/src/main/java/com/hello/sandbox/common/Config.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.common;
2 |
3 | public class Config {
4 | public static final boolean DEBUG = BuildConfig.DEBUG;
5 | }
6 |
--------------------------------------------------------------------------------
/common/src/main/java/com/hello/sandbox/common/DialogExtraState.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.common;
2 |
3 | public interface DialogExtraState {
4 | boolean isShowing();
5 |
6 | void dismiss();
7 | }
8 |
--------------------------------------------------------------------------------
/common/src/main/java/com/hello/sandbox/common/DialogLifeTracer.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.common;
2 |
3 | public interface DialogLifeTracer {
4 |
5 | void onDialogAttachToWindow(android.app.Dialog dialog);
6 |
7 | void onDialogDetachFromWindow(android.app.Dialog dialog);
8 | }
9 |
--------------------------------------------------------------------------------
/common/src/main/java/com/hello/sandbox/common/DialogLifecycleProvider.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.common;
2 |
3 | /** Create by huangzhuqing on 2021/7/14 */
4 | public interface DialogLifecycleProvider {
5 | default void tracer(DialogLifeTracer tracer) {}
6 | }
7 |
--------------------------------------------------------------------------------
/common/src/main/java/com/hello/sandbox/common/rx/MissingBackpressureThrowable.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.common.rx;
2 |
3 | class MissingBackpressureThrowable extends Throwable {
4 | public MissingBackpressureThrowable(String message) {
5 | super(message);
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/common/src/main/java/com/hello/sandbox/common/util/NullChecker.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.common.util;
2 |
3 | public class NullChecker {
4 |
5 | public static boolean notNull(Object o) {
6 | return o != null;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/common/src/main/java/com/hello/sandbox/common/util/collections/Unit.java:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.common.util.collections;
2 |
3 | import rx.functions.Action1;
4 |
5 | public class Unit {
6 | private Unit() {}
7 |
8 | public static final Unit UNIT = new Unit();
9 |
10 | public static Action1 IGNORE = u -> {};
11 | }
12 |
--------------------------------------------------------------------------------
/common/src/main/java/v/OnDispatchTouchEventListener.java:
--------------------------------------------------------------------------------
1 | package v;
2 |
3 | /** Created by molikto on 6/7/16. */
4 | import android.view.MotionEvent;
5 |
6 | public interface OnDispatchTouchEventListener {
7 | boolean dispatchTouchEvent(MotionEvent ev);
8 | }
9 |
--------------------------------------------------------------------------------
/common/src/main/java/v/pushbubble/OnDispatchTouchEventListener.java:
--------------------------------------------------------------------------------
1 | package v.pushbubble;
2 |
3 | /** Created by molikto on 6/7/16. */
4 | import android.view.MotionEvent;
5 |
6 | public interface OnDispatchTouchEventListener {
7 | boolean dispatchTouchEvent(MotionEvent ev);
8 | }
9 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable-xhdpi/common_checkbox_bg_off.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/res/drawable-xhdpi/common_checkbox_bg_off.webp
--------------------------------------------------------------------------------
/common/src/main/res/drawable-xhdpi/common_checkbox_bg_on.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/res/drawable-xhdpi/common_checkbox_bg_on.webp
--------------------------------------------------------------------------------
/common/src/main/res/drawable-xhdpi/common_navigation_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/res/drawable-xhdpi/common_navigation_back.png
--------------------------------------------------------------------------------
/common/src/main/res/drawable-xhdpi/common_view_push_bubble_bg.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/res/drawable-xhdpi/common_view_push_bubble_bg.9.png
--------------------------------------------------------------------------------
/common/src/main/res/drawable-xxhdpi/common_checkbox_bg_off.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/res/drawable-xxhdpi/common_checkbox_bg_off.webp
--------------------------------------------------------------------------------
/common/src/main/res/drawable-xxhdpi/common_checkbox_bg_on.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/res/drawable-xxhdpi/common_checkbox_bg_on.webp
--------------------------------------------------------------------------------
/common/src/main/res/drawable-xxhdpi/common_view_push_bubble_bg.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/res/drawable-xxhdpi/common_view_push_bubble_bg.9.png
--------------------------------------------------------------------------------
/common/src/main/res/drawable-xxhdpi/rect_rounded_shadow.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/common/src/main/res/drawable-xxhdpi/rect_rounded_shadow.9.png
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_button_btn_medium_black.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_button_btn_medium_black_with_white_stroke.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_button_btn_medium_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_button_btn_orange_large.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_button_btn_orange_press.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_button_btn_orange_small.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_button_btn_white_medium.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_button_btn_white_small.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_checkbox_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_primary_ripple.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_toast_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_view_popup_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_view_popup_bg_window.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/common_view_popup_bg_window_big.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/progress_dialog_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/text_cursor.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/tf_rect_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/tf_rect_dark_shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/tf_rect_light.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/tf_rect_rounded_light.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/tf_rect_rounded_light_shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/tf_rect_rounded_padding_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/common/src/main/res/drawable/tf_rect_rounded_padding_light.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/common/src/main/res/layout/test_push_small_01.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
--------------------------------------------------------------------------------
/common/src/main/res/values/attrs_navigation_bar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/common/src/main/res/values/common_dimen.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 20sp
5 | 18sp
6 | 12sp
7 | 11sp
8 |
9 | 10dp
10 |
--------------------------------------------------------------------------------
/common/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | .
4 |
5 | Choose application
6 |
--------------------------------------------------------------------------------
/common/src/main/res/values/styles_checkbox.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
--------------------------------------------------------------------------------
/common/src/main/res/values/styles_popup.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/network/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/network/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/network/src/main/kotlin/com/hello/sandbox/network/BaseResponse.kt:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.network
2 |
3 | class BaseResponse {
4 | val data: T? = null
5 |
6 | val errorCode: Int? = null
7 |
8 | val errorMsg: String? = null
9 |
10 | var exception: Exception? = null
11 | }
12 |
--------------------------------------------------------------------------------
/network/src/main/kotlin/com/hello/sandbox/network/exception/ErrorMsg.kt:
--------------------------------------------------------------------------------
1 | package com.hello.sandbox.network.exception
2 |
3 | import androidx.annotation.Keep
4 |
5 | @Keep data class ErrorMsg(var meta: ErrorMeta?)
6 |
7 | @Keep data class ErrorMeta(var code: Int, var message: String)
8 |
--------------------------------------------------------------------------------
/walle/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "channelInfoList": [
3 | {
4 | "channel": "huawei"
5 | },
6 | {
7 | "channel": "xiaomi"
8 | },
9 | {
10 | "channel": "oppo"
11 | },
12 | {
13 | "channel": "vivo"
14 | },
15 | {
16 | "channel": "qq"
17 | },
18 | {
19 | "channel": "GdtTianmiao01"
20 | }
21 | ]
22 | }
--------------------------------------------------------------------------------
/walle/run_sign.sh:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | java -jar ./walle/walle-cli-all.jar batch2 -f ./walle/config.json $1
--------------------------------------------------------------------------------
/walle/walle-cli-all.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Monster-GM/sandbox/0a4d3d437bcac0775d416cc1c9c8ba66017bebe5/walle/walle-cli-all.jar
--------------------------------------------------------------------------------
/xpopup/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/xpopup/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/xpopup/src/main/java/com/lxj/xpopup/enums/LayoutStatus.java:
--------------------------------------------------------------------------------
1 | package com.lxj.xpopup.enums;
2 |
3 | /**
4 | * Description:
5 | */
6 | public enum LayoutStatus {
7 | Open, Close, Opening, Closing
8 | }
9 |
--------------------------------------------------------------------------------
/xpopup/src/main/java/com/lxj/xpopup/enums/PopupPosition.java:
--------------------------------------------------------------------------------
1 | package com.lxj.xpopup.enums;
2 |
3 | /**
4 | * Description: 弹窗相对于目标View显示的位置
5 | */
6 | public enum PopupPosition {
7 | Left, Right, Top, Bottom
8 | }
9 |
--------------------------------------------------------------------------------
/xpopup/src/main/java/com/lxj/xpopup/enums/PopupStatus.java:
--------------------------------------------------------------------------------
1 | package com.lxj.xpopup.enums;
2 |
3 | /**
4 | * Description: Popup显示和隐藏状态
5 | */
6 | public enum PopupStatus {
7 | Show, // 显示
8 | Showing, // 正在执行显示动画
9 | Dismiss, // 隐藏
10 | Dismissing //正在执行消失动画
11 | }
12 |
--------------------------------------------------------------------------------
/xpopup/src/main/java/com/lxj/xpopup/interfaces/OnCancelListener.java:
--------------------------------------------------------------------------------
1 | package com.lxj.xpopup.interfaces;
2 |
3 | /**
4 | * Description:
5 | */
6 | public interface OnCancelListener {
7 | void onCancel();
8 | }
9 |
--------------------------------------------------------------------------------
/xpopup/src/main/java/com/lxj/xpopup/interfaces/OnClickOutsideListener.java:
--------------------------------------------------------------------------------
1 | package com.lxj.xpopup.interfaces;
2 |
3 | /**
4 | * Description:
5 | */
6 | public interface OnClickOutsideListener {
7 | void onClickOutside();
8 | }
9 |
--------------------------------------------------------------------------------
/xpopup/src/main/java/com/lxj/xpopup/interfaces/OnConfirmListener.java:
--------------------------------------------------------------------------------
1 | package com.lxj.xpopup.interfaces;
2 |
3 | /**
4 | * Description:
5 | */
6 | public interface OnConfirmListener {
7 | void onConfirm();
8 | }
9 |
--------------------------------------------------------------------------------
/xpopup/src/main/java/com/lxj/xpopup/interfaces/OnDragChangeListener.java:
--------------------------------------------------------------------------------
1 | package com.lxj.xpopup.interfaces;
2 |
3 | public interface OnDragChangeListener {
4 | void onRelease();
5 | void onDragChange(int dy, float scale, float fraction);
6 | }
7 |
--------------------------------------------------------------------------------
/xpopup/src/main/java/com/lxj/xpopup/interfaces/OnImageViewerLongPressListener.java:
--------------------------------------------------------------------------------
1 | package com.lxj.xpopup.interfaces;
2 |
3 | import com.lxj.xpopup.core.BasePopupView;
4 |
5 | public interface OnImageViewerLongPressListener {
6 | void onLongPressed(BasePopupView popupView, int position);
7 | }
8 |
--------------------------------------------------------------------------------
/xpopup/src/main/java/com/lxj/xpopup/interfaces/OnInputConfirmListener.java:
--------------------------------------------------------------------------------
1 | package com.lxj.xpopup.interfaces;
2 |
3 | /**
4 | * Description:
5 | */
6 | public interface OnInputConfirmListener {
7 | void onConfirm(String text);
8 | }
9 |
--------------------------------------------------------------------------------
/xpopup/src/main/java/com/lxj/xpopup/interfaces/OnSelectListener.java:
--------------------------------------------------------------------------------
1 | package com.lxj.xpopup.interfaces;
2 |
3 | /**
4 | * Description:
5 | */
6 | public interface OnSelectListener {
7 | void onSelect(int position, String text);
8 | }
9 |
--------------------------------------------------------------------------------
/xpopup/src/main/java/com/lxj/xpopup/interfaces/OnSrcViewUpdateListener.java:
--------------------------------------------------------------------------------
1 | package com.lxj.xpopup.interfaces;
2 |
3 | import androidx.annotation.NonNull;
4 | import com.lxj.xpopup.core.ImageViewerPopupView;
5 |
6 | /**
7 | * Description:
8 | */
9 | public interface OnSrcViewUpdateListener {
10 | void onSrcViewUpdate(@NonNull ImageViewerPopupView popupView, int position);
11 | }
12 |
--------------------------------------------------------------------------------
/xpopup/src/main/java/com/lxj/xpopup/photoview/OnOutsidePhotoTapListener.java:
--------------------------------------------------------------------------------
1 | package com.lxj.xpopup.photoview;
2 |
3 | import android.widget.ImageView;
4 |
5 | /**
6 | * Callback when the user tapped outside of the photo
7 | */
8 | public interface OnOutsidePhotoTapListener {
9 |
10 | /**
11 | * The outside of the photo has been tapped
12 | */
13 | void onOutsidePhotoTap(ImageView imageView);
14 | }
15 |
--------------------------------------------------------------------------------
/xpopup/src/main/res/layout/_xpopup_attach_impl_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/xpopup/src/main/res/layout/_xpopup_attach_popup_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/xpopup/src/main/res/layout/_xpopup_bottom_popup_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/xpopup/src/main/res/layout/_xpopup_bubble_attach_popup_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/xpopup/src/main/res/layout/_xpopup_center_popup_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/xpopup/src/main/res/layout/_xpopup_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/xpopup/src/main/res/layout/_xpopup_fullscreen_popup_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/xpopup/src/main/res/layout/_xpopup_partshadow_popup_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/xpopup/src/main/res/layout/_xpopup_position_popup_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/xpopup/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 取消
4 | 确定
5 | 保存
6 | 已保存到相册
7 | 图片不存在
8 | 图片保存失败
9 |
10 |
--------------------------------------------------------------------------------
/xpopup/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Cancel
4 | OK
5 | save
6 | Saved to album
7 | Image not exist
8 | Image save failed
9 |
--------------------------------------------------------------------------------