├── .github ├── CHANGELOG_POSTFIX.md ├── FUNDING.yml └── workflows │ ├── build.yml │ └── crowdin-contributors.yml ├── .gitignore ├── .gitmodules ├── .idea └── gradle.xml ├── BUILD_ROOT.md ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle.kts ├── google-services.json ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── timschneeberger │ │ └── rootlessjamesdsp │ │ └── ExampleInstrumentedTest.kt │ ├── debug │ └── res │ │ ├── mipmap-anydpi-v26 │ │ └── ic_dsp_launcher.xml │ │ ├── mipmap-hdpi │ │ ├── ic_dsp_launcher.png │ │ ├── ic_dsp_launcher_background.png │ │ └── ic_dsp_launcher_foreground.png │ │ ├── mipmap-mdpi │ │ ├── ic_dsp_launcher.png │ │ ├── ic_dsp_launcher_background.png │ │ └── ic_dsp_launcher_foreground.png │ │ ├── mipmap-xhdpi │ │ ├── ic_dsp_launcher.png │ │ ├── ic_dsp_launcher_background.png │ │ └── ic_dsp_launcher_foreground.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_dsp_launcher.png │ │ ├── ic_dsp_launcher_background.png │ │ └── ic_dsp_launcher_foreground.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_dsp_launcher.png │ │ ├── ic_dsp_launcher_background.png │ │ └── ic_dsp_launcher_foreground.png │ │ └── values │ │ └── debug.xml │ ├── fdroid │ ├── AndroidManifest.xml │ └── java │ │ └── me │ │ └── timschneeberger │ │ └── rootlessjamesdsp │ │ └── flavor │ │ └── CrashlyticsImpl.kt │ ├── full │ └── java │ │ └── me │ │ └── timschneeberger │ │ └── rootlessjamesdsp │ │ └── flavor │ │ └── CrashlyticsImpl.kt │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ ├── Convolver │ │ │ ├── Church.wav │ │ │ ├── CorredHRTF_Crossfeed.wav │ │ │ ├── CorredHRTF_Surround1.wav │ │ │ ├── CorredHRTF_Surround2.wav │ │ │ └── SwapChannels.wav │ │ ├── DDC │ │ │ ├── Butterworth.vdc │ │ │ ├── FrontRearContrast.vdc │ │ │ └── mh750.vdc │ │ └── Liveprog │ │ │ ├── 3bandSplitting.eel │ │ │ ├── 8bandSplitting.eel │ │ │ ├── Joe0Bloggs DRX10K compander-HR.eel │ │ │ ├── audioGlitchGenerator.eel │ │ │ ├── autoWideness.eel │ │ │ ├── autopeakfilter.eel │ │ │ ├── butterworth3Band.eel │ │ │ ├── butterworth8Band.eel │ │ │ ├── dc_remove.eel │ │ │ ├── decimate.eel │ │ │ ├── delayChorus.eel │ │ │ ├── depthsurround.eel │ │ │ ├── downmixer.eel │ │ │ ├── fftConvolution2x4x2.eel │ │ │ ├── fftConvolutionHRTF.eel │ │ │ ├── firFilter.eel │ │ │ ├── firlsProc.eel │ │ │ ├── fractionalDelayline.eel │ │ │ ├── gainControl.eel │ │ │ ├── hadamVerb.eel │ │ │ ├── highpass.eel │ │ │ ├── lofiDistortionMangler.eel │ │ │ ├── lowpass.eel │ │ │ ├── metallic-reverb.eel │ │ │ ├── msCentreBoost.eel │ │ │ ├── phaseshifter.eel │ │ │ ├── pitchDownshift.eel │ │ │ ├── polyphaseFilterbank.eel │ │ │ ├── polyphaseFilterbankEqualization.eel │ │ │ ├── stereoFieldManipulator.eel │ │ │ ├── stereoPhaseInvert.eel │ │ │ ├── stereowide.eel │ │ │ ├── stftCentreBoost.eel │ │ │ ├── stftCentreCut.eel │ │ │ ├── stftDenoise.eel │ │ │ ├── stftFilter.eel │ │ │ ├── swapChannels.eel │ │ │ ├── timeAdjustment.eel │ │ │ ├── viper_dynamicbass.eel │ │ │ └── viper_dynamicbass_preset.eel │ ├── cpp │ │ ├── CMakeLists.txt │ │ ├── EELStdOutExtension.c │ │ ├── EELStdOutExtension.h │ │ ├── libcrashlytics-connector │ │ │ ├── CMakeLists.txt │ │ │ ├── Log.cpp │ │ │ ├── Log.h │ │ │ └── crashlytics.h │ │ ├── libjamesdsp-wrapper │ │ │ ├── CMakeLists.txt │ │ │ ├── EelVmVariable.cpp │ │ │ ├── EelVmVariable.h │ │ │ ├── IJavaObject.h │ │ │ ├── JArrayList.cpp │ │ │ ├── JArrayList.h │ │ │ ├── JamesDspWrapper.cpp │ │ │ └── JamesDspWrapper.h │ │ └── libjdspimptoolbox │ │ │ ├── CMakeLists.txt │ │ │ ├── dr_flac.h │ │ │ ├── dr_mp3.h │ │ │ ├── dr_wav.h │ │ │ ├── libsamplerate │ │ │ ├── common.h │ │ │ ├── config.h │ │ │ ├── float_cast.h │ │ │ ├── samplerate.c │ │ │ ├── samplerate.h │ │ │ ├── src_linear.c │ │ │ └── src_sinc.c │ │ │ └── main │ │ │ ├── JdspImpResToolbox.c │ │ │ ├── cpthread.c │ │ │ └── cpthread.h │ ├── java │ │ └── me │ │ │ └── timschneeberger │ │ │ └── rootlessjamesdsp │ │ │ ├── MainApplication.kt │ │ │ ├── activity │ │ │ ├── AeqSelectorActivity.kt │ │ │ ├── AppCompatibilityActivity.kt │ │ │ ├── BaseActivity.kt │ │ │ ├── BlocklistActivity.kt │ │ │ ├── EngineLauncherActivity.kt │ │ │ ├── GraphicEqualizerActivity.kt │ │ │ ├── LiveprogEditorActivity.kt │ │ │ ├── LiveprogParamsActivity.kt │ │ │ ├── MainActivity.kt │ │ │ ├── OnboardingActivity.kt │ │ │ └── SettingsActivity.kt │ │ │ ├── adapter │ │ │ ├── AppBlocklistAdapter.kt │ │ │ ├── AppsListAdapter.kt │ │ │ ├── AutoEqResultAdapter.kt │ │ │ ├── CustomCodeViewAdapter.kt │ │ │ ├── GraphicEqNodeAdapter.kt │ │ │ ├── RoundedRipplePreferenceGroupAdapter.kt │ │ │ └── ThemesPreferenceAdapter.kt │ │ │ ├── api │ │ │ ├── AutoEqClient.kt │ │ │ ├── AutoEqService.kt │ │ │ └── UserAgentInterceptor.kt │ │ │ ├── backup │ │ │ ├── BackupCreatorJob.kt │ │ │ ├── BackupManager.kt │ │ │ ├── BackupNotifier.kt │ │ │ └── BackupRestoreService.kt │ │ │ ├── contract │ │ │ └── AutoEqSelectorContract.kt │ │ │ ├── delegates │ │ │ └── ThemingDelegate.kt │ │ │ ├── editor │ │ │ ├── plugin │ │ │ │ ├── SourcePositionListener.kt │ │ │ │ └── UndoRedoManager.kt │ │ │ ├── syntax │ │ │ │ ├── Constant.kt │ │ │ │ ├── EelLanguage.kt │ │ │ │ └── Function.kt │ │ │ └── widget │ │ │ │ └── SymbolInputView.kt │ │ │ ├── fragment │ │ │ ├── AppCompatibilityFragment.kt │ │ │ ├── AppsListFragment.kt │ │ │ ├── BlocklistFragment.kt │ │ │ ├── CompanderDialogFragment.kt │ │ │ ├── DeviceProfilesCardFragment.kt │ │ │ ├── DspFragment.kt │ │ │ ├── EqualizerDialogFragment.kt │ │ │ ├── FileLibraryDialogFragment.kt │ │ │ ├── GraphicEqualizerFragment.kt │ │ │ ├── LibraryLoadErrorFragment.kt │ │ │ ├── LimitationsFragment.kt │ │ │ ├── LiveprogParamsFragment.kt │ │ │ ├── OnboardingFragment.kt │ │ │ ├── PreferenceGroupFragment.kt │ │ │ └── settings │ │ │ │ ├── SettingsAboutFragment.kt │ │ │ │ ├── SettingsAppearanceFragment.kt │ │ │ │ ├── SettingsAudioFormatFragment.kt │ │ │ │ ├── SettingsBackupFragment.kt │ │ │ │ ├── SettingsBaseFragment.kt │ │ │ │ ├── SettingsDeviceProfilesFragment.kt │ │ │ │ ├── SettingsFragment.kt │ │ │ │ ├── SettingsMiscFragment.kt │ │ │ │ └── SettingsTroubleshootingFragment.kt │ │ │ ├── interop │ │ │ ├── BenchmarkManager.kt │ │ │ ├── JamesDspBaseEngine.kt │ │ │ ├── JamesDspLocalEngine.kt │ │ │ ├── JamesDspRemoteEngine.kt │ │ │ ├── JamesDspWrapper.kt │ │ │ ├── JdspImpResToolbox.kt │ │ │ ├── PreferenceCache.kt │ │ │ ├── ProcessorMessageHandler.kt │ │ │ └── structure │ │ │ │ └── EelVmVariable.kt │ │ │ ├── liveprog │ │ │ ├── EelBaseProperty.kt │ │ │ ├── EelListProperty.kt │ │ │ ├── EelNumberRangeProperty.kt │ │ │ ├── EelParser.kt │ │ │ ├── EelPropertyFactory.kt │ │ │ └── IPropertyCompanion.kt │ │ │ ├── model │ │ │ ├── AppInfo.kt │ │ │ ├── AudioSessionDumpEntry.kt │ │ │ ├── GraphicEqNode.kt │ │ │ ├── GraphicEqNodeList.kt │ │ │ ├── IEffectSession.kt │ │ │ ├── ItemViewModel.kt │ │ │ ├── ProcessorMessage.kt │ │ │ ├── Translator.kt │ │ │ ├── api │ │ │ │ └── AeqSearchResult.kt │ │ │ ├── preference │ │ │ │ ├── AppTheme.kt │ │ │ │ ├── AudioEncoding.kt │ │ │ │ ├── SessionUpdateMode.kt │ │ │ │ └── ThemeMode.kt │ │ │ ├── preset │ │ │ │ └── Preset.kt │ │ │ ├── room │ │ │ │ ├── AppBlocklistDao.kt │ │ │ │ ├── AppBlocklistDatabase.kt │ │ │ │ ├── AppBlocklistRepository.kt │ │ │ │ ├── AppBlocklistViewModel.kt │ │ │ │ └── BlockedApp.kt │ │ │ ├── root │ │ │ │ └── RemoteEffectSession.kt │ │ │ └── rootless │ │ │ │ ├── MutedEffectSession.kt │ │ │ │ └── SessionRecordingPolicyEntry.kt │ │ │ ├── preference │ │ │ ├── AppIconPreference.kt │ │ │ ├── CompanderPreference.kt │ │ │ ├── DropDownPreference.kt │ │ │ ├── EqualizerPreference.kt │ │ │ ├── FileLibraryPreference.kt │ │ │ ├── GraphicEqualizerPreference.kt │ │ │ ├── IconPreference.kt │ │ │ ├── MaterialSeekbarPreference.kt │ │ │ ├── MaterialSwitchPreference.kt │ │ │ ├── SwitchPreferenceGroup.kt │ │ │ └── ThemesPreference.kt │ │ │ ├── receiver │ │ │ ├── BootCompletedReceiver.kt │ │ │ ├── PowerStateReceiver.kt │ │ │ └── SessionReceiver.kt │ │ │ ├── service │ │ │ ├── BaseAudioProcessorService.kt │ │ │ ├── NotificationListenerService.kt │ │ │ ├── QuickTileService.kt │ │ │ ├── RootAudioProcessorService.kt │ │ │ └── RootlessAudioProcessorService.kt │ │ │ ├── session │ │ │ ├── dump │ │ │ │ ├── DebugDumpFileProvider.kt │ │ │ │ ├── DumpManager.kt │ │ │ │ ├── data │ │ │ │ │ ├── AudioPolicyServiceDump.kt │ │ │ │ │ ├── AudioServiceDump.kt │ │ │ │ │ ├── IDump.kt │ │ │ │ │ ├── ISessionInfoDump.kt │ │ │ │ │ ├── ISessionPolicyInfoDump.kt │ │ │ │ │ └── PackageServiceDump.kt │ │ │ │ ├── provider │ │ │ │ │ ├── AudioFlingerServiceDumpProvider.kt │ │ │ │ │ ├── AudioPolicyServiceDumpProvider.kt │ │ │ │ │ ├── AudioServiceDumpProvider.kt │ │ │ │ │ ├── IDumpProvider.kt │ │ │ │ │ ├── ISessionDumpProvider.kt │ │ │ │ │ ├── ISessionPolicyDumpProvider.kt │ │ │ │ │ └── PackageServiceDumpProvider.kt │ │ │ │ └── utils │ │ │ │ │ ├── AudioFlingerServiceDumpUtils.kt │ │ │ │ │ └── DumpUtils.kt │ │ │ ├── root │ │ │ │ ├── RootSessionDatabase.kt │ │ │ │ └── RootSessionDumpManager.kt │ │ │ ├── rootless │ │ │ │ ├── RootlessSessionDatabase.kt │ │ │ │ ├── RootlessSessionManager.kt │ │ │ │ └── SessionRecordingPolicyManager.kt │ │ │ └── shared │ │ │ │ ├── BaseSessionDatabase.kt │ │ │ │ └── BaseSessionManager.kt │ │ │ ├── utils │ │ │ ├── Constants.kt │ │ │ ├── EngineUtils.kt │ │ │ ├── FlavorConditionals.kt │ │ │ ├── MutedAudioEffectFactory.kt │ │ │ ├── ProfileManager.kt │ │ │ ├── Result.kt │ │ │ ├── RoutingObserver.kt │ │ │ ├── SdkCheck.kt │ │ │ ├── extensions │ │ │ │ ├── ApiExtensions.kt │ │ │ │ ├── AssetManagerExtensions.kt │ │ │ │ ├── AudioEffectExtensions.kt │ │ │ │ ├── CompatExtensions.kt │ │ │ │ ├── ContextExtensions.kt │ │ │ │ ├── MiscUtils.kt │ │ │ │ ├── NotificationExtensions.kt │ │ │ │ └── PermissionExtensions.kt │ │ │ ├── notifications │ │ │ │ ├── Notifications.kt │ │ │ │ └── ServiceNotificationHelper.kt │ │ │ ├── preferences │ │ │ │ ├── NonPersistentDatastore.kt │ │ │ │ └── Preferences.kt │ │ │ └── storage │ │ │ │ ├── Cache.kt │ │ │ │ ├── StorageUtils.kt │ │ │ │ └── Tar.kt │ │ │ └── view │ │ │ ├── BaseEqualizerSurface.kt │ │ │ ├── Card.kt │ │ │ ├── CompanderSurface.kt │ │ │ ├── EqualizerSurface.kt │ │ │ ├── FloatingToggleButton.kt │ │ │ ├── GraphicEqualizerSurface.kt │ │ │ ├── NumberInputBox.kt │ │ │ └── ProgressDialog.kt │ └── res │ │ ├── color │ │ ├── selector_floating_toggle_foreground_tint.xml │ │ └── selector_floating_toggle_tint.xml │ │ ├── drawable │ │ ├── ic_baseline_add_24dp.xml │ │ ├── ic_baseline_arrow_collapse_24dp.xml │ │ ├── ic_baseline_chart_timeline_variant_24dp.xml │ │ ├── ic_baseline_code_tags_24dp.xml │ │ ├── ic_baseline_cone_24dp.xml │ │ ├── ic_baseline_cube_outline_24dp.xml │ │ ├── ic_baseline_download_24dp.xml │ │ ├── ic_baseline_equalizer_24dp.xml │ │ ├── ic_baseline_find_replace_24dp.xml │ │ ├── ic_baseline_format_size_24dp.xml │ │ ├── ic_baseline_github_24dp.xml │ │ ├── ic_baseline_google_play_24dp.xml │ │ ├── ic_baseline_image_filter_tilt_shift_24dp.xml │ │ ├── ic_baseline_keyboard_arrow_down_24dp.xml │ │ ├── ic_baseline_keyboard_arrow_up_24dp.xml │ │ ├── ic_baseline_led_outline_24dp.xml │ │ ├── ic_baseline_play_arrow_24dp.xml │ │ ├── ic_baseline_redo_24dp.xml │ │ ├── ic_baseline_refresh_24dp.xml │ │ ├── ic_baseline_sine_wave_24dp.xml │ │ ├── ic_baseline_undo_24dp.xml │ │ ├── ic_baseline_warning_24dp.xml │ │ ├── ic_baseline_waveform_24dp.xml │ │ ├── ic_close_24dp.xml │ │ ├── ic_code_json.xml │ │ ├── ic_function_variant.xml │ │ ├── ic_key.xml │ │ ├── ic_numeric_1_circle_outline.xml │ │ ├── ic_numeric_2_circle_outline.xml │ │ ├── ic_numeric_3_circle_outline.xml │ │ ├── ic_numeric_4_circle_outline.xml │ │ ├── ic_numeric_5_circle_outline.xml │ │ ├── ic_numeric_6_circle_outline.xml │ │ ├── ic_search_24dp.xml │ │ ├── ic_tune_vertical_variant_24dp.xml │ │ ├── ic_twotone_add_24dp.xml │ │ ├── ic_twotone_app_blocking_24dp.xml │ │ ├── ic_twotone_auto_fix_high_24.xml │ │ ├── ic_twotone_bluetooth_24dp.xml │ │ ├── ic_twotone_cable_24dp.xml │ │ ├── ic_twotone_cast_24dp.xml │ │ ├── ic_twotone_check_24dp.xml │ │ ├── ic_twotone_check_circle_24dp.xml │ │ ├── ic_twotone_chevron_right_24dp.xml │ │ ├── ic_twotone_color_lens_24dp.xml │ │ ├── ic_twotone_delete_24dp.xml │ │ ├── ic_twotone_delete_forever_24dp.xml │ │ ├── ic_twotone_device_unknown_24dp.xml │ │ ├── ic_twotone_download_24.xml │ │ ├── ic_twotone_edit_24dp.xml │ │ ├── ic_twotone_error_24dp.xml │ │ ├── ic_twotone_find_in_page_24dp.xml │ │ ├── ic_twotone_folder_special_24dp.xml │ │ ├── ic_twotone_headphones_24dp.xml │ │ ├── ic_twotone_help_24dp.xml │ │ ├── ic_twotone_history_24dp.xml │ │ ├── ic_twotone_info_24dp.xml │ │ ├── ic_twotone_launch_24dp.xml │ │ ├── ic_twotone_mic_24dp.xml │ │ ├── ic_twotone_more_horiz_24.xml │ │ ├── ic_twotone_nodes_24dp.xml │ │ ├── ic_twotone_notifications_24dp.xml │ │ ├── ic_twotone_power_settings_24dp.xml │ │ ├── ic_twotone_privacy_tip_24dp.xml │ │ ├── ic_twotone_remove_24dp.xml │ │ ├── ic_twotone_save_24dp.xml │ │ ├── ic_twotone_search_24dp.xml │ │ ├── ic_twotone_security_24dp.xml │ │ ├── ic_twotone_settings_24dp.xml │ │ ├── ic_twotone_settings_backup_restore_24dp.xml │ │ ├── ic_twotone_settings_input_hdmi_24dp.xml │ │ ├── ic_twotone_speaker_24dp.xml │ │ ├── ic_twotone_translate_24dp.xml │ │ ├── ic_twotone_troubleshoot_24dp.xml │ │ ├── ic_twotone_usb_24dp.xml │ │ ├── ic_twotone_volume_up_24dp.xml │ │ ├── ic_twotone_warning_24dp.xml │ │ ├── ic_welcome_24dp.xml │ │ ├── ripple_rounded.xml │ │ ├── shape_card_divider.xml │ │ ├── shape_rounded_corners.xml │ │ ├── shape_rounded_highlight.xml │ │ └── shape_rounded_rectangle.xml │ │ ├── font │ │ └── jetbrainsmono.ttf │ │ ├── layout-land │ │ └── fragment_graphic_eq.xml │ │ ├── layout │ │ ├── activity_aeq_selector.xml │ │ ├── activity_app_compatibility.xml │ │ ├── activity_blocklist.xml │ │ ├── activity_dsp_main.xml │ │ ├── activity_graphic_eq.xml │ │ ├── activity_liveprog_editor.xml │ │ ├── activity_liveprog_params.xml │ │ ├── activity_onboarding.xml │ │ ├── activity_settings.xml │ │ ├── content_main.xml │ │ ├── dialog_editor_search_replace.xml │ │ ├── dialog_filelibrary.xml │ │ ├── dialog_progress.xml │ │ ├── dialog_textinput.xml │ │ ├── fragment_app_compatibility.xml │ │ ├── fragment_applist_sheet.xml │ │ ├── fragment_blocklist.xml │ │ ├── fragment_dsp.xml │ │ ├── fragment_graphic_eq.xml │ │ ├── fragment_library_load_error.xml │ │ ├── item_app_list.xml │ │ ├── item_autoeq_profile_list.xml │ │ ├── item_blocked_app_list.xml │ │ ├── item_editor_autocomplete.xml │ │ ├── item_geq_node_list.xml │ │ ├── item_preset_list.xml │ │ ├── onboarding_controls.xml │ │ ├── onboarding_fragment.xml │ │ ├── onboarding_page1.xml │ │ ├── onboarding_page2.xml │ │ ├── onboarding_page3.xml │ │ ├── onboarding_page4.xml │ │ ├── onboarding_page5.xml │ │ ├── onboarding_page6.xml │ │ ├── preference_alt.xml │ │ ├── preference_appicon.xml │ │ ├── preference_compander.xml │ │ ├── preference_compander_dialog.xml │ │ ├── preference_equalizer.xml │ │ ├── preference_equalizer_dialog.xml │ │ ├── preference_graphic_equalizer.xml │ │ ├── preference_icon.xml │ │ ├── preference_materialslider.xml │ │ ├── preference_materialswitch.xml │ │ ├── preference_switchgroup.xml │ │ ├── preference_theme_item.xml │ │ ├── preference_themes_list.xml │ │ ├── view_card.xml │ │ └── view_number_input_box.xml │ │ ├── menu │ │ ├── menu_filelibrary_add_context.xml │ │ ├── menu_filelibrary_context.xml │ │ ├── menu_liveprog_editor.xml │ │ ├── menu_liveprog_params.xml │ │ ├── menu_main_bottom.xml │ │ └── menu_main_bottom_left.xml │ │ ├── mipmap-anydpi-v26 │ │ └── ic_dsp_launcher.xml │ │ ├── mipmap-hdpi │ │ ├── ic_dsp_launcher.png │ │ ├── ic_dsp_launcher_background.png │ │ ├── ic_dsp_launcher_foreground.png │ │ └── ic_dsp_launcher_monochrome.png │ │ ├── mipmap-mdpi │ │ ├── ic_dsp_launcher.png │ │ ├── ic_dsp_launcher_background.png │ │ ├── ic_dsp_launcher_foreground.png │ │ └── ic_dsp_launcher_monochrome.png │ │ ├── mipmap-xhdpi │ │ ├── ic_dsp_launcher.png │ │ ├── ic_dsp_launcher_background.png │ │ ├── ic_dsp_launcher_foreground.png │ │ └── ic_dsp_launcher_monochrome.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_dsp_launcher.png │ │ ├── ic_dsp_launcher_background.png │ │ ├── ic_dsp_launcher_foreground.png │ │ └── ic_dsp_launcher_monochrome.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_dsp_launcher.png │ │ ├── ic_dsp_launcher_background.png │ │ ├── ic_dsp_launcher_foreground.png │ │ └── ic_dsp_launcher_monochrome.png │ │ ├── navigation │ │ ├── nav_main.xml │ │ └── nav_onboarding.xml │ │ ├── raw │ │ └── translators.json │ │ ├── values-af-rZA │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-ar-rSA │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-az-rAZ │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-bg-rBG │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-ca-rES │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-cs-rCZ │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-da-rDK │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-de-rDE │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-el-rGR │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-es-rES │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-fa-rIR │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-fi-rFI │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-fr-rFR │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-hi-rIN │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-hr-rHR │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-hu-rHU │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-in-rID │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-it-rIT │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-iw-rIL │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-ja-rJP │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-ko-rKR │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-lt-rLT │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-lv-rLV │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-ms-rMY │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-night-v31 │ │ └── themes.xml │ │ ├── values-night │ │ ├── colors.xml │ │ ├── colors_greenapple.xml │ │ ├── colors_honey.xml │ │ ├── colors_strawberry.xml │ │ ├── colors_tealturqoise.xml │ │ ├── colors_tidalwave.xml │ │ ├── colors_yinyang.xml │ │ ├── colors_yotsuba.xml │ │ └── themes.xml │ │ ├── values-nl-rNL │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-no-rNO │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-pl-rPL │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-pt-rPT │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-ro-rRO │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-ru-rRU │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-sk-rSK │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-sl-rSI │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-sr-rSP │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-sv-rSE │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-th-rTH │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-tr-rTR │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-uk-rUA │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-v29 │ │ └── themes.xml │ │ ├── values-v31 │ │ └── themes.xml │ │ ├── values-vi-rVN │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ ├── plurals.xml │ │ └── strings.xml │ │ ├── values │ │ ├── arrays.xml │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── colors_greenapple.xml │ │ ├── colors_honey.xml │ │ ├── colors_strawberry.xml │ │ ├── colors_tealturqoise.xml │ │ ├── colors_tidalwave.xml │ │ ├── colors_yinyang.xml │ │ ├── colors_yotsuba.xml │ │ ├── defaults.xml │ │ ├── dimens.xml │ │ ├── keys.xml │ │ ├── plurals.xml │ │ ├── strings.xml │ │ └── themes.xml │ │ └── xml │ │ ├── app_about_preferences.xml │ │ ├── app_appearance_preferences.xml │ │ ├── app_audio_format_preferences.xml │ │ ├── app_backup_preferences.xml │ │ ├── app_device_profiles_preferences.xml │ │ ├── app_misc_preferences.xml │ │ ├── app_preferences.xml │ │ ├── app_troubleshooting_preferences.xml │ │ ├── backup_rules.xml │ │ ├── data_extraction_rules.xml │ │ ├── device_profile_preferences.xml │ │ ├── dsp_bass_preferences.xml │ │ ├── dsp_compander_preferences.xml │ │ ├── dsp_convolver_preferences.xml │ │ ├── dsp_crossfeed_preferences.xml │ │ ├── dsp_ddc_preferences.xml │ │ ├── dsp_equalizer_preferences.xml │ │ ├── dsp_graphiceq_preferences.xml │ │ ├── dsp_liveprog_preferences.xml │ │ ├── dsp_output_control_preferences.xml │ │ ├── dsp_reverb_preferences.xml │ │ ├── dsp_stereowide_preferences.xml │ │ ├── dsp_tube_preferences.xml │ │ ├── provider_dump_paths.xml │ │ └── provider_filelibrary_paths.xml │ ├── plugin │ ├── AndroidManifest.xml │ └── java │ │ └── me │ │ └── timschneeberger │ │ └── rootlessjamesdsp │ │ └── flavor │ │ ├── JamesDspBasePlugin.kt │ │ ├── RootShellImpl.kt │ │ └── UpdateManager.kt │ ├── preview │ └── google-services.json │ ├── root │ ├── AndroidManifest.xml │ └── java │ │ └── me │ │ └── timschneeberger │ │ └── rootlessjamesdsp │ │ └── flavor │ │ ├── RootShellImpl.kt │ │ ├── UpdateManager.kt │ │ └── updates │ │ ├── SessionInstaller.kt │ │ ├── SessionInstallerService.kt │ │ ├── api │ │ ├── UpdateCheckClient.kt │ │ └── UpdateCheckService.kt │ │ └── model │ │ └── UpdateCheckResponse.kt │ ├── rootless │ └── java │ │ └── me │ │ └── timschneeberger │ │ └── rootlessjamesdsp │ │ └── flavor │ │ ├── RootShellImpl.kt │ │ └── UpdateManager.kt │ └── test │ └── java │ └── me │ └── timschneeberger │ └── rootlessjamesdsp │ └── ExampleUnitTest.kt ├── build.gradle.kts ├── buildSrc ├── .gitignore ├── build.gradle.kts └── src │ └── main │ └── kotlin │ ├── AndroidConfig.kt │ └── Commands.kt ├── codeview ├── .gitignore ├── build.gradle ├── consumer-rules.pro ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ └── com │ └── amrdeveloper │ └── codeview │ ├── Code.kt │ ├── CodeView.kt │ ├── CodeViewAdapter.kt │ ├── Findable.kt │ ├── Keyword.kt │ ├── KeywordTokenizer.kt │ ├── Replaceable.kt │ ├── Snippet.kt │ └── Token.kt ├── crowdin.yml ├── fastlane ├── .gitignore ├── Appfile ├── Fastfile ├── NOTE.md └── metadata │ └── android │ ├── af │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── ar │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── az-AZ │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── bg │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── ca │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── cs-CZ │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── da-DK │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── de-DE │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── el-GR │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── en-US │ ├── changelogs │ │ ├── 17.txt │ │ ├── 18.txt │ │ ├── 19.txt │ │ ├── 20.txt │ │ ├── 21.txt │ │ ├── 22.txt │ │ ├── 23.txt │ │ ├── 24.txt │ │ ├── 25.txt │ │ ├── 26.txt │ │ ├── 27.txt │ │ ├── 28.txt │ │ ├── 29.txt │ │ ├── 30.txt │ │ ├── 31.txt │ │ ├── 32.txt │ │ ├── 33.txt │ │ ├── 34.txt │ │ ├── 35.txt │ │ ├── 37.txt │ │ ├── 38.txt │ │ ├── 39.txt │ │ ├── 40.txt │ │ ├── 41.txt │ │ ├── 42.txt │ │ ├── 43.txt │ │ ├── 44.txt │ │ ├── 45.txt │ │ ├── 46.txt │ │ ├── 47.txt │ │ ├── 48.txt │ │ ├── 49.txt │ │ └── 50.txt │ ├── full_description.txt │ ├── images │ │ ├── featureGraphic.png │ │ ├── icon.png │ │ └── phoneScreenshots │ │ │ ├── 1_en-US.png │ │ │ ├── 2_en-US.png │ │ │ ├── 3_en-US.png │ │ │ ├── 4_en-US.png │ │ │ ├── 5_en-US.png │ │ │ ├── 6_en-US.png │ │ │ └── 7_en-US.png │ ├── short_description.txt │ └── title.txt │ ├── es-ES │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── fa-IR │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── fi-FI │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── fr-FR │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── he-IL │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── hi-IN │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── hr-HR │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── hu-HU │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── id │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── it-IT │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── ja-JP │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── ko-KR │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── lt-LT │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── lv │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── ms-MY │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── nl-NL │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── no-NO │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── pl-PL │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── pt-BR │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── pt-PT │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── ro │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── ru-RU │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── sk │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── sl-SI │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── sr │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── sv-SE │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── th │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── tr-TR │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── uk │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── vi │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ ├── zh-CN │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt │ └── zh-TW │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── hidden-api-impl ├── .gitignore ├── build.gradle.kts ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ ├── android │ └── media │ │ └── IAudioPolicyService.java │ └── me │ └── timschneeberger │ └── hiddenapi_impl │ ├── AudioPolicyService.java │ ├── AudioSystem.java │ ├── CapturePolicy.java │ ├── ShizukuSystemServerApi.java │ ├── Singleton.java │ └── UserHandle.java ├── hidden-api-refined ├── .gitignore ├── build.gradle.kts ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ └── android │ └── media │ ├── AudioPlaybackConfigurationHidden.java │ ├── audiofx │ └── AudioEffectHidden.java │ └── session │ └── MediaSessionHidden.java ├── hidden-api-stubs ├── .gitignore ├── build.gradle.kts └── src │ └── main │ └── java │ ├── android │ ├── annotation │ │ ├── NonNull.java │ │ ├── Nullable.java │ │ └── UserIdInt.java │ ├── os │ │ ├── Binder.java │ │ ├── IBinder.java │ │ ├── IInterface.java │ │ ├── Parcel.java │ │ └── RemoteException.java │ └── permission │ │ └── IPermissionManager.java │ ├── androidx │ └── annotation │ │ ├── IntRange.java │ │ └── RequiresApi.java │ └── com │ └── android │ └── internal │ └── app │ └── IAppOpsService.java ├── img ├── icon.svg ├── icon_no_shadow.svg ├── icons │ ├── android │ │ ├── play_store_512.png │ │ └── res │ │ │ ├── mipmap-anydpi-v26 │ │ │ └── ic_launcher.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_monochrome.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_monochrome.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_monochrome.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_monochrome.png │ │ │ └── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_monochrome.png │ ├── androidtv │ │ └── res │ │ │ └── drawable-xhdpi │ │ │ └── tv_banner.png │ ├── play-store │ │ └── play_store_feature_graphic.png │ └── web │ │ ├── README.txt │ │ ├── apple-touch-icon.png │ │ ├── favicon.ico │ │ ├── icon-192-maskable.png │ │ ├── icon-192.png │ │ ├── icon-512-maskable.png │ │ └── icon-512.png ├── preview-res │ ├── mipmap-anydpi-v26 │ │ └── ic_launcher.xml │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ └── ic_launcher_foreground.png │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ └── ic_launcher_foreground.png │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ └── ic_launcher_foreground.png │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ └── ic_launcher_foreground.png │ └── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.png │ │ └── ic_launcher_foreground.png ├── screenshot1.png ├── screenshot2.png ├── screenshot3.png ├── screenshot4.png ├── screenshot5.png ├── screenshot6.png └── screenshot7.png └── settings.gradle /.github/CHANGELOG_POSTFIX.md: -------------------------------------------------------------------------------- 1 | ________ 2 | 3 | ## Available on Google Play & F-Droid 4 | 5 | [Get it on Google Play](https://play.google.com/store/apps/details?id=me.timschneeberger.rootlessjamesdsp&utm_source=github&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1)[Get it on F-Droid](https://f-droid.org/packages/me.timschneeberger.rootlessjamesdsp/) 10 | 11 | 12 | Download the application on Google Play: 13 | 14 | [https://play.google.com/store/apps/details?id=me.timschneeberger.rootlessjamesdsp](https://play.google.com/store/apps/details?id=me.timschneeberger.rootlessjamesdsp&utm_source=github&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1) 15 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | ko_fi: thepbone 2 | github: thepbone 3 | custom: https://paypal.me/timschneeberger 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /.idea/caches 6 | /.idea/libraries 7 | /.idea/modules.xml 8 | /.idea/workspace.xml 9 | /.idea/navEditor.xml 10 | /.idea/assetWizardSettings.xml 11 | .DS_Store 12 | /build 13 | /captures 14 | .externalNativeBuild 15 | .cxx 16 | local.properties 17 | /hidden-refine-api/build/ 18 | /app/src/main/cpp/libjamesdsp/Main/DSPManager/.idea 19 | /app/src/main/cpp/libjamesdsp/Main/DSPManager/DSPManager.iml 20 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "app/src/main/cpp/libjamesdsp"] 2 | path = app/src/main/cpp/libjamesdsp 3 | url = https://github.com/ThePBone/JamesDSPManager 4 | branch = extensions 5 | [submodule "cpp/libjamesdsp"] 6 | branch = extensions 7 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "fastlane" 4 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /rootlessFull/ 3 | /rootlessFdroid/ 4 | /rootFull/ 5 | /rootFdroid/ 6 | -------------------------------------------------------------------------------- /app/src/androidTest/java/me/timschneeberger/rootlessjamesdsp/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("me.timschneeberger.rootlessjamesdsp", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-anydpi-v26/ic_dsp_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-hdpi/ic_dsp_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-hdpi/ic_dsp_launcher.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-hdpi/ic_dsp_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-hdpi/ic_dsp_launcher_background.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-hdpi/ic_dsp_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-hdpi/ic_dsp_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-mdpi/ic_dsp_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-mdpi/ic_dsp_launcher.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-mdpi/ic_dsp_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-mdpi/ic_dsp_launcher_background.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-mdpi/ic_dsp_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-mdpi/ic_dsp_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-xhdpi/ic_dsp_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-xhdpi/ic_dsp_launcher.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-xhdpi/ic_dsp_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-xhdpi/ic_dsp_launcher_background.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-xhdpi/ic_dsp_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-xhdpi/ic_dsp_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-xxhdpi/ic_dsp_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-xxhdpi/ic_dsp_launcher.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-xxhdpi/ic_dsp_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-xxhdpi/ic_dsp_launcher_background.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-xxhdpi/ic_dsp_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-xxhdpi/ic_dsp_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-xxxhdpi/ic_dsp_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-xxxhdpi/ic_dsp_launcher.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-xxxhdpi/ic_dsp_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-xxxhdpi/ic_dsp_launcher_background.png -------------------------------------------------------------------------------- /app/src/debug/res/mipmap-xxxhdpi/ic_dsp_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/debug/res/mipmap-xxxhdpi/ic_dsp_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/debug/res/values/debug.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | -------------------------------------------------------------------------------- /app/src/fdroid/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/fdroid/java/me/timschneeberger/rootlessjamesdsp/flavor/CrashlyticsImpl.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("UNUSED_PARAMETER") 2 | 3 | package me.timschneeberger.rootlessjamesdsp.flavor 4 | 5 | // Stubbed 6 | object CrashlyticsImpl { 7 | fun setCollectionEnabled(on: Boolean) {} 8 | fun setCustomKey(key: String, value: String) {} 9 | fun setCustomKey(key: String, value: Int) {} 10 | fun log(msg: String) {} 11 | fun recordException(t: Throwable) {} 12 | fun sendUnsentReports() {} 13 | } -------------------------------------------------------------------------------- /app/src/full/java/me/timschneeberger/rootlessjamesdsp/flavor/CrashlyticsImpl.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.flavor 2 | 3 | import com.google.firebase.crashlytics.ktx.crashlytics 4 | import com.google.firebase.ktx.Firebase 5 | 6 | object CrashlyticsImpl { 7 | fun setCollectionEnabled(on: Boolean) = Firebase.crashlytics.setCrashlyticsCollectionEnabled(on) 8 | fun setCustomKey(key: String, value: String) = Firebase.crashlytics.setCustomKey(key, value) 9 | fun setCustomKey(key: String, value: Int) = Firebase.crashlytics.setCustomKey(key, value) 10 | fun log(msg: String) = Firebase.crashlytics.log(msg) 11 | fun recordException(t: Throwable) = Firebase.crashlytics.recordException(t) 12 | fun sendUnsentReports() = Firebase.crashlytics.sendUnsentReports() 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/assets/Convolver/Church.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/assets/Convolver/Church.wav -------------------------------------------------------------------------------- /app/src/main/assets/Convolver/CorredHRTF_Crossfeed.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/assets/Convolver/CorredHRTF_Crossfeed.wav -------------------------------------------------------------------------------- /app/src/main/assets/Convolver/CorredHRTF_Surround1.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/assets/Convolver/CorredHRTF_Surround1.wav -------------------------------------------------------------------------------- /app/src/main/assets/Convolver/CorredHRTF_Surround2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/assets/Convolver/CorredHRTF_Surround2.wav -------------------------------------------------------------------------------- /app/src/main/assets/Convolver/SwapChannels.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/assets/Convolver/SwapChannels.wav -------------------------------------------------------------------------------- /app/src/main/assets/Liveprog/butterworth3Band.eel: -------------------------------------------------------------------------------- 1 | desc: Butterworth 3 bands (Equalization example) 2 | 3 | //tags: iir 4 | 5 | @init 6 | iirBPS = 0; 7 | reqSize = IIRBandSplitterInit(iirBPS, srate, 4000, 12000); 8 | iirBPS2 = iirBPS + reqSize; // Shift the pointer 9 | reqSize = IIRBandSplitterInit(iirBPS2, srate, 4000, 12000); 10 | low1 = 0; 11 | mid1 = 0; 12 | high1 = 0; 13 | eqGain = iirBPS2 + reqSize; // Shift pointer again 14 | eqGain[0] = 1; 15 | eqGain[1] = 0; 16 | eqGain[2] = 1; 17 | 18 | @sample 19 | IIRBandSplitterProcess(iirBPS, spl0, low1, mid1, high1); 20 | IIRBandSplitterProcess(iirBPS, spl1, low2, mid2, high2); 21 | low1 *= eqGain[0]; 22 | mid1 *= eqGain[1]; 23 | high1 *= eqGain[2]; 24 | low2 *= eqGain[0]; 25 | mid2 *= eqGain[1]; 26 | high2 *= eqGain[2]; 27 | spl0 = low1 + mid1 + high1; 28 | spl1 = low2 + mid2 + high2; -------------------------------------------------------------------------------- /app/src/main/assets/Liveprog/dc_remove.eel: -------------------------------------------------------------------------------- 1 | // This effect Copyright (C) 2004 and later Cockos Incorporated 2 | // License: GPL - http://www.gnu.org/licenses/gpl.html 3 | // based on the algorithm in Steve Harris's plug-in package: http://plugin.org.uk/ 4 | 5 | desc:DC filter 6 | //tags: filter repair 7 | //author: Cockos 8 | 9 | @init 10 | itm1=itm2=otm1=otm2=0; 11 | 12 | @sample 13 | otm1=0.999*otm1 + spl0 - itm1; 14 | itm1=spl0; 15 | spl0=otm1; 16 | otm2=0.999*otm2 + spl1 - itm2; 17 | itm2=spl1; 18 | spl1=otm2; 19 | -------------------------------------------------------------------------------- /app/src/main/assets/Liveprog/decimate.eel: -------------------------------------------------------------------------------- 1 | desc: Decimate 2 | //tags: distortion 3 | 4 | @init 5 | bits=16; 6 | rate=0.5; 7 | 8 | out=0; 9 | cnt=0; 10 | m=1<<(bits-1); 11 | 12 | function decimate(i)( 13 | cnt+=rate; 14 | cnt>=1 ? ( 15 | cnt-=1; 16 | out=floor(i*m)/m; 17 | ); 18 | out; 19 | ); 20 | 21 | @sample 22 | tmp0 = decimate(spl0); 23 | tmp1 = decimate(spl1); 24 | spl0=tmp0; 25 | spl1=tmp1; 26 | -------------------------------------------------------------------------------- /app/src/main/assets/Liveprog/downmixer.eel: -------------------------------------------------------------------------------- 1 | desc: Stereo to mono downmixer 2 | 3 | //tags: stereo 4 | 5 | @init 6 | ; 7 | 8 | @sample 9 | spl0 = spl1 = spl0 / 2 + spl1 / 2; -------------------------------------------------------------------------------- /app/src/main/assets/Liveprog/firFilter.eel: -------------------------------------------------------------------------------- 1 | desc: FIR filtering 2 | 3 | //tags: fir filter 4 | 5 | @init 6 | coefficients = 0; 7 | hLen = importFLTFromStr("-0.000814106447125912,-0.00101893557539458,0.00439540510163513,0.0191817066643173,0.0348758447331096,0.0296722242827697,-0.00949579830159734,-0.0574346591733406,-0.0538264189367632,0.0446871259733802,0.207161817163176,0.333544729155861,0.333544729155861,0.207161817163176,0.0446871259733802,-0.0538264189367632,-0.0574346591733406,-0.00949579830159734,0.0296722242827697,0.0348758447331096,0.0191817066643173,0.00439540510163513,-0.00101893557539458,-0.000814106447125912", coefficients); 8 | ptr1 = coefficients + hLen; 9 | req = FIRInit(ptr1, hLen); 10 | ptr2 = ptr1 + req; 11 | req = FIRInit(ptr2, hLen); 12 | 13 | @sample 14 | spl0 = FIRProcess(ptr1, spl0, coefficients); 15 | spl1 = FIRProcess(ptr2, spl1, coefficients); -------------------------------------------------------------------------------- /app/src/main/assets/Liveprog/fractionalDelayline.eel: -------------------------------------------------------------------------------- 1 | desc: Fractional delay line 2 | //tags: delay 3 | 4 | leftDelay:15.1<0,1024,0.1>Fractional delay L (samples) 5 | rightDelay:4.2<0,1024,0.1>Fractional delay R (samples) 6 | 7 | @init 8 | leftDelay = 15.1; 9 | rightDelay = 4.2; 10 | 11 | ptr1 = 0; 12 | req = fractionalDelayLineInit(ptr1, 1024); 13 | ptr2 = ptr1 + req; 14 | req = fractionalDelayLineInit(ptr2, 1024); 15 | 16 | fractionalDelayLineSetDelay(ptr1, leftDelay); 17 | fractionalDelayLineSetDelay(ptr2, rightDelay); 18 | 19 | @sample 20 | spl0 = fractionalDelayLineProcess(ptr1, spl0); 21 | spl1 = fractionalDelayLineProcess(ptr2, spl1); -------------------------------------------------------------------------------- /app/src/main/assets/Liveprog/gainControl.eel: -------------------------------------------------------------------------------- 1 | desc: Gain control 2 | //tags: gain 3 | 4 | dB:-8<-30,15,1>Volume gain (dB) 5 | 6 | @init 7 | dB = -8; 8 | DB_2_LOG = 0.11512925464970228420089957273422; 9 | gainLin = exp(dB * DB_2_LOG); 10 | 11 | @sample 12 | spl0 = spl0 * gainLin; 13 | spl1 = spl1 * gainLin; 14 | -------------------------------------------------------------------------------- /app/src/main/assets/Liveprog/msCentreBoost.eel: -------------------------------------------------------------------------------- 1 | desc: MS centre boost 2 | 3 | //tags: surround 4 | 5 | midBoostDB:3<-15,15>Mid boost (dB) 6 | sideBoostDB:0<-15,15>Side boost (dB) 7 | 8 | @init 9 | midBoostDB = 3.00; 10 | sideBoostDB = 0.00; 11 | 12 | function db2mag(db) 13 | ( 14 | pow(10, db / 20); 15 | ); 16 | function mag2db(mag) 17 | ( 18 | 20 * log10(mag); 19 | ); 20 | 21 | midBoost=db2mag(midBoostDB); 22 | sideBoost=db2mag(sideBoostDB); 23 | 24 | @sample 25 | mid= (spl0 + spl1) * 0.5; 26 | side= (spl0 - spl1) * 0.5; 27 | mid = mid * midBoost; 28 | side = side * sideBoost; 29 | spl0 = mid - side; 30 | spl1 = mid + side; 31 | -------------------------------------------------------------------------------- /app/src/main/assets/Liveprog/stereowide.eel: -------------------------------------------------------------------------------- 1 | desc: Stereo widener 2 | //width:2<0,6,0.1>Stereo Width 3 | //reimplemented from: https://www.musicdsp.org/en/latest/Effects/256-stereo-width-control-obtained-via-transfromation-matrix.html 4 | //tags: stereo 5 | 6 | @init 7 | width = 2; 8 | 9 | @sample 10 | coef_S = width * 0.5; 11 | 12 | m = (spl0 + spl1) * 0.5; 13 | s = (spl1 - spl0) * coef_S; 14 | 15 | spl0 = m - s; 16 | spl1 = m + s; 17 | -------------------------------------------------------------------------------- /app/src/main/assets/Liveprog/swapChannels.eel: -------------------------------------------------------------------------------- 1 | desc: Swap channels 2 | //tags: gain 3 | 4 | leftGain:0<-30,10>Left post-gain (dB) 5 | rightGain:0<-30,10>Right post-gain (dB) 6 | 7 | @init 8 | leftGain = 0.00; 9 | rightGain = 0.00; 10 | 11 | function db2Lin(dB)( 12 | DB_2_LOG = 0.11512925464970228420089957273422; 13 | exp(dB * DB_2_LOG); 14 | ); 15 | 16 | @sample 17 | tmp0 = spl0; 18 | tmp1 = spl1; 19 | 20 | spl0 = tmp1 * db2Lin(leftGain); 21 | spl1 = tmp0 * db2Lin(rightGain); 22 | -------------------------------------------------------------------------------- /app/src/main/assets/Liveprog/timeAdjustment.eel: -------------------------------------------------------------------------------- 1 | desc: Time adjustment (delay) 2 | //tags: delay 3 | 4 | slider1:0<-100,100,.1>Delay amount (ms) 5 | slider2:0<-120,12,1>Wet mix (dB) 6 | slider3:-120<-120,12,1>Dry mix (dB) 7 | slider4:0<-40000,40000,1>Additional delay amount (samples) 8 | 9 | @init 10 | bpos=0; 11 | 12 | slider1 = 0; 13 | slider2 = 0; 14 | slider3 = -120; 15 | slider4 = 0; 16 | 17 | wet=2^(slider2/6); 18 | dry=2^(slider3/6); 19 | delaylen = (slider1*srate*0.001 + slider4)|0; 20 | delaylen<0?( 21 | pdc_delay=-delaylen; 22 | pdc_top_ch=2; 23 | pdc_bot_ch=0; 24 | delaylen=0; 25 | ):( 26 | delaylen+=pdc_delay; 27 | //pdc_delay=0; 28 | ); 29 | bufsize=srate*4.0; // extra in case the user wants to go over 30 | 31 | @sample 32 | bpos[0]=spl0; 33 | bpos[1]=spl1; 34 | 35 | rdpos=bpos-delaylen*2; 36 | rdpos<0 ? rdpos+=bufsize*2; 37 | spl0=spl0*dry+rdpos[0]*wet; 38 | spl1=spl1*dry+rdpos[1]*wet; 39 | 40 | bpos+=2; 41 | bpos>=bufsize*2 ? bpos=0; 42 | -------------------------------------------------------------------------------- /app/src/main/cpp/EELStdOutExtension.c: -------------------------------------------------------------------------------- 1 | #include "EELStdOutExtension.h" 2 | #include "Effects/eel2/ns-eel.h" 3 | 4 | static stdOutHandler _stdOutHandlerPtr = NULL; 5 | static void* _stdOutHandlerUserPtr = NULL; 6 | 7 | void writeCircularStringBuf(char *cmdCur) 8 | { 9 | if(_stdOutHandlerPtr != NULL) 10 | { 11 | _stdOutHandlerPtr(cmdCur, _stdOutHandlerUserPtr); 12 | } 13 | } 14 | 15 | void setStdOutHandler(stdOutHandler funcPtr, void* userData) 16 | { 17 | _stdOutHandlerPtr = funcPtr; 18 | _stdOutHandlerUserPtr = userData; 19 | } 20 | 21 | int isStdOutHandlerSet() 22 | { 23 | return _stdOutHandlerPtr != NULL; 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/cpp/EELStdOutExtension.h: -------------------------------------------------------------------------------- 1 | #ifndef EELSTDOUTEXTENSION_H 2 | #define EELSTDOUTEXTENSION_H 3 | 4 | typedef void (*stdOutHandler)(const char*, void*); 5 | 6 | extern void setStdOutHandler(stdOutHandler funcPtr, void* userData); 7 | extern int isStdOutHandlerSet(); 8 | 9 | #endif // EELSTDOUTEXTENSION_H 10 | -------------------------------------------------------------------------------- /app/src/main/cpp/libcrashlytics-connector/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(crashlytics-connector LANGUAGES CXX) 2 | 3 | add_library( # Sets the name of the library. 4 | crashlytics-connector 5 | 6 | # Sets the library as a shared library. 7 | SHARED 8 | 9 | # Provides a relative path to your source file(s). 10 | ${CMAKE_CURRENT_LIST_DIR}/crashlytics.h 11 | ${CMAKE_CURRENT_LIST_DIR}/Log.h 12 | ${CMAKE_CURRENT_LIST_DIR}/Log.cpp 13 | ) 14 | 15 | 16 | find_library( # Sets the name of the path variable. 17 | log-lib 18 | 19 | # Specifies the name of the NDK library that 20 | # you want CMake to locate. 21 | log) 22 | 23 | target_link_libraries( # Specifies the target library. 24 | crashlytics-connector 25 | 26 | # Links the target library to the log library 27 | # included in the NDK. 28 | ${log-lib}) 29 | -------------------------------------------------------------------------------- /app/src/main/cpp/libcrashlytics-connector/Log.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by tim on 08.07.22. 3 | // 4 | 5 | #include "Log.h" 6 | 7 | #ifdef NO_CRASHLYTICS 8 | void log::toCrashlytics(const char *level, const char* tag, const char *fmt, ...) { 9 | // Stubbed 10 | } 11 | #else 12 | // TODO clean up this abomination 13 | void log::toCrashlytics(const char *level, const char* tag, const char *fmt, ...) { 14 | va_list arguments; 15 | va_start(arguments, fmt); 16 | ssize_t bufsz = vsnprintf(nullptr, 0, fmt, arguments); 17 | char* buf = static_cast(malloc(bufsz + 1)); 18 | vsnprintf(buf, bufsz + 1, fmt, arguments); 19 | firebase::crashlytics::Log(("["+std::string(level)+"] "+tag+": " + std::string(buf)).c_str()); 20 | free(buf); 21 | va_end(arguments); 22 | } 23 | #endif -------------------------------------------------------------------------------- /app/src/main/cpp/libjamesdsp-wrapper/EelVmVariable.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by tim on 30.06.22. 3 | // 4 | 5 | #ifndef ROOTLESSJAMESDSP_EELVMVARIABLE_H 6 | #define ROOTLESSJAMESDSP_EELVMVARIABLE_H 7 | 8 | #include "IJavaObject.h" 9 | 10 | class EelVmVariable : IJavaObject { 11 | public: 12 | EelVmVariable(JNIEnv* env, const char* name, const char* value, bool isString); 13 | bool isValid() const; 14 | 15 | jobject getJavaReference(); 16 | 17 | private: 18 | jobject innerObject; 19 | bool _isValid = false; 20 | }; 21 | 22 | #endif //ROOTLESSJAMESDSP_EELVMVARIABLE_H 23 | -------------------------------------------------------------------------------- /app/src/main/cpp/libjamesdsp-wrapper/IJavaObject.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by tim on 01.07.22. 3 | // 4 | 5 | #ifndef ROOTLESSJAMESDSP_IJAVAOBJECT_H 6 | #define ROOTLESSJAMESDSP_IJAVAOBJECT_H 7 | 8 | #include 9 | 10 | class IJavaObject { 11 | public: 12 | IJavaObject(JNIEnv* env) : _env(env) {}; 13 | virtual bool isValid() const = 0; 14 | virtual jobject getJavaReference() = 0; 15 | 16 | protected: 17 | JNIEnv* _env; 18 | }; 19 | 20 | #endif //ROOTLESSJAMESDSP_IJAVAOBJECT_H 21 | -------------------------------------------------------------------------------- /app/src/main/cpp/libjamesdsp-wrapper/JArrayList.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by tim on 01.07.22. 3 | // 4 | 5 | #ifndef ROOTLESSJAMESDSP_JARRAYLIST_H 6 | #define ROOTLESSJAMESDSP_JARRAYLIST_H 7 | 8 | #include "IJavaObject.h" 9 | 10 | class JArrayList : IJavaObject { 11 | public: 12 | JArrayList(JNIEnv* env); 13 | bool isValid() const; 14 | bool add(jobject object); 15 | jobject getJavaReference(); 16 | 17 | private: 18 | jclass arrayClass; 19 | jobject innerArrayList; 20 | jmethodID methodAdd; 21 | 22 | bool _isValid = false; 23 | }; 24 | 25 | 26 | #endif //ROOTLESSJAMESDSP_JARRAYLIST_H 27 | -------------------------------------------------------------------------------- /app/src/main/cpp/libjamesdsp-wrapper/JamesDspWrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef DSPHOST_H 2 | #define DSPHOST_H 3 | 4 | #include 5 | 6 | typedef struct 7 | { 8 | void* dsp; 9 | JNIEnv* env; 10 | jobject callbackInterface; 11 | jmethodID callbackOnLiveprogOutput; 12 | jmethodID callbackOnLiveprogExec; 13 | jmethodID callbackOnLiveprogResult; 14 | jmethodID callbackOnVdcParseError; 15 | } JamesDspWrapper; 16 | 17 | /* C interop function */ 18 | static void receiveLiveprogStdOut(const char* buffer, void* userData); 19 | 20 | #endif // DSPHOST_H 21 | -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/api/AutoEqService.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.api 2 | 3 | import me.timschneeberger.rootlessjamesdsp.model.api.AeqSearchResult 4 | import retrofit2.Call 5 | import retrofit2.http.GET 6 | import retrofit2.http.Path 7 | 8 | interface AutoEqService { 9 | @GET("results/search/{query}") 10 | fun queryProfiles(@Path("query") query: String): Call> 11 | @GET("results/{id}") 12 | fun getProfile(@Path("id") id: Long): Call 13 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/api/UserAgentInterceptor.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.api 2 | 3 | import okhttp3.Interceptor 4 | import okhttp3.Response 5 | 6 | class UserAgentInterceptor(private val userAgent: String) : Interceptor { 7 | override fun intercept(chain: Interceptor.Chain): Response { 8 | return chain.proceed( 9 | chain.request().newBuilder() 10 | .header("User-Agent", userAgent) 11 | .build() 12 | ) 13 | } 14 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/contract/AutoEqSelectorContract.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.contract 2 | 3 | import android.app.Activity 4 | import android.content.Context 5 | import android.content.Intent 6 | import androidx.activity.result.contract.ActivityResultContract 7 | import me.timschneeberger.rootlessjamesdsp.activity.AeqSelectorActivity 8 | 9 | class AutoEqSelectorContract : ActivityResultContract() { 10 | 11 | /* input unused */ 12 | override fun createIntent(context: Context, input: Int): Intent { 13 | return Intent(context, AeqSelectorActivity::class.java) 14 | } 15 | 16 | override fun parseResult(resultCode: Int, intent: Intent?): String? = when { 17 | resultCode != Activity.RESULT_OK -> null 18 | else -> intent?.getStringExtra(EXTRA_RESULT) ?: "" 19 | } 20 | 21 | companion object { 22 | const val EXTRA_RESULT = "result" 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/editor/syntax/Constant.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.editor.syntax 2 | 3 | import com.amrdeveloper.codeview.Code 4 | 5 | class Constant(private val title: String, private val prefix: String = title) : Code { 6 | override val codeTitle: String 7 | get() = title 8 | override val codePrefix: String 9 | get() = prefix 10 | override val codeBody: String 11 | get() = prefix 12 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/editor/syntax/Function.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.editor.syntax 2 | 3 | import com.amrdeveloper.codeview.Code 4 | 5 | class Function(private val title: String, private val prefix: String = title) : Code { 6 | override val codeTitle: String 7 | get() = title 8 | override val codePrefix: String 9 | get() = prefix 10 | override val codeBody: String 11 | get() = prefix 12 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/interop/structure/EelVmVariable.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.interop.structure 2 | 3 | data class EelVmVariable(var name: String, var value: String, var isString: Boolean) -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/liveprog/EelBaseProperty.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.liveprog 2 | 3 | 4 | abstract class EelBaseProperty(val key: String, val description: String) { 5 | /** Whether the property has a default value */ 6 | abstract fun hasDefault(): Boolean 7 | /** Whether the value is the property is currently set to the default value */ 8 | abstract fun isDefault(): Boolean 9 | /** Assign default value to current value if available */ 10 | abstract fun restoreDefaults() 11 | /** Value to string */ 12 | abstract fun valueAsString(): String 13 | /** Manipulate property in script file and return modified file contents */ 14 | abstract fun manipulateProperty(contents: String): String? 15 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/liveprog/EelPropertyFactory.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.liveprog 2 | 3 | import kotlin.reflect.full.companionObjectInstance 4 | 5 | object EelPropertyFactory { 6 | private val typeOrder = arrayOf( 7 | EelNumberRangeProperty::class.companionObjectInstance, 8 | EelListProperty::class.companionObjectInstance 9 | ).map { 10 | it as IPropertyCompanion 11 | } 12 | 13 | fun create(line: String, contents: String): EelBaseProperty? { 14 | typeOrder.forEach { factory -> 15 | factory.parse(line, contents)?.let { return it } 16 | } 17 | return null 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/liveprog/IPropertyCompanion.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.liveprog 2 | 3 | interface IPropertyCompanion { 4 | val definitionRegex: Regex 5 | fun parse(line: String, contents: String): EelBaseProperty? 6 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/AppInfo.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model 2 | 3 | import android.graphics.drawable.Drawable 4 | 5 | data class AppInfo ( 6 | val appName: String, 7 | val packageName: String, 8 | val icon: Drawable?, 9 | val isSystem: Boolean, 10 | val uid: Int, 11 | ) { 12 | override fun toString(): String { 13 | return "name=$appName; pkg=$packageName; isSystem=$isSystem; uid=$uid" 14 | } 15 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/GraphicEqNode.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model 2 | 3 | import java.io.Serializable 4 | import java.util.* 5 | 6 | data class GraphicEqNode( 7 | val freq: Double, 8 | val gain: Double, 9 | val uuid: UUID = UUID.randomUUID() /* Uniquely identifies one node during an editing session */ 10 | ) : Serializable -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/IEffectSession.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model 2 | 3 | interface IEffectSession { 4 | var uid: Int 5 | var packageName: String 6 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/ItemViewModel.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model 2 | 3 | import androidx.lifecycle.LiveData 4 | import androidx.lifecycle.MutableLiveData 5 | import androidx.lifecycle.ViewModel 6 | 7 | class ItemViewModel : ViewModel() { 8 | private val mutableSelectedItem = MutableLiveData() 9 | val selectedItem: LiveData get() = mutableSelectedItem 10 | 11 | fun selectItem(item: T) { 12 | mutableSelectedItem.value = item!! 13 | } 14 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/api/AeqSearchResult.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model.api 2 | 3 | import com.google.gson.annotations.SerializedName 4 | import java.io.Serializable 5 | 6 | data class AeqSearchResult ( 7 | @SerializedName("n") var name: String? = null, 8 | @SerializedName("s") var source: String? = null, 9 | @SerializedName("r") var rank: Int? = null, 10 | @SerializedName("i") var id: Long? = null 11 | ) : Serializable -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/preference/AppTheme.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model.preference 2 | 3 | import me.timschneeberger.rootlessjamesdsp.R 4 | 5 | enum class AppTheme(val titleResId: Int?) { 6 | DEFAULT(R.string.theme_default), 7 | MONET(R.string.theme_monet), 8 | GREEN_APPLE(R.string.theme_greenapple), 9 | HONEY(R.string.theme_honey), 10 | STRAWBERRY_DAIQUIRI(R.string.theme_strawberrydaiquiri), 11 | TEALTURQUOISE(R.string.theme_tealturquoise), 12 | TIDAL_WAVE(R.string.theme_tidalwave), 13 | YINYANG(R.string.theme_yinyang), 14 | YOTSUBA(R.string.theme_yotsuba); 15 | 16 | companion object { 17 | fun fromInt(titleResId: Int) = values().first { it.titleResId == titleResId } 18 | } 19 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/preference/AudioEncoding.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model.preference 2 | 3 | enum class AudioEncoding(val value: Int) { 4 | PcmShort(0), 5 | PcmFloat(1); 6 | 7 | companion object { 8 | fun fromInt(value: Int) = values().first { it.value == value } 9 | } 10 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/preference/SessionUpdateMode.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model.preference 2 | 3 | enum class SessionUpdateMode(val value: Int) { 4 | Listener(0), 5 | ContinuousPolling(1); 6 | 7 | companion object { 8 | fun fromInt(value: Int) = values().first { it.value == value } 9 | } 10 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/preference/ThemeMode.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model.preference 2 | 3 | enum class ThemeMode(val value: Int) { 4 | FollowSystem(0), 5 | Light(1), 6 | Dark(2); 7 | 8 | companion object { 9 | fun fromInt(value: Int) = values().first { it.value == value } 10 | } 11 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/room/BlockedApp.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model.room 2 | 3 | import android.graphics.drawable.Drawable 4 | import androidx.room.ColumnInfo 5 | import androidx.room.Entity 6 | import androidx.room.Ignore 7 | import androidx.room.PrimaryKey 8 | 9 | @Entity 10 | data class BlockedApp( 11 | @PrimaryKey val uid: Int, 12 | @ColumnInfo(name = "package_name") val packageName: String?, 13 | @ColumnInfo(name = "app_name") val appName: String? 14 | ) { 15 | @Ignore var appIcon: Drawable? = null 16 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/root/RemoteEffectSession.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model.root 2 | 3 | import kotlinx.coroutines.CoroutineScope 4 | import kotlinx.coroutines.Dispatchers 5 | import me.timschneeberger.rootlessjamesdsp.interop.JamesDspRemoteEngine 6 | import me.timschneeberger.rootlessjamesdsp.model.IEffectSession 7 | 8 | data class RemoteEffectSession( 9 | override var packageName: String, 10 | override var uid: Int, 11 | var effect: JamesDspRemoteEngine? 12 | ) : CoroutineScope by CoroutineScope(Dispatchers.Default), IEffectSession { 13 | override fun toString(): String { 14 | return "package=$packageName; uid=$uid" 15 | } 16 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/rootless/MutedEffectSession.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model.rootless 2 | 3 | import android.media.audiofx.AudioEffect 4 | import me.timschneeberger.rootlessjamesdsp.model.IEffectSession 5 | 6 | data class MutedEffectSession( 7 | override var uid: Int, 8 | override var packageName: String, 9 | var audioMuteEffect: AudioEffect? 10 | ) : IEffectSession { 11 | override fun toString(): String { 12 | return "package=$packageName; uid=$uid" 13 | } 14 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/model/rootless/SessionRecordingPolicyEntry.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.model.rootless 2 | 3 | data class SessionRecordingPolicyEntry(val uid: Int, val packageName: String, val isRestricted: Boolean) 4 | { 5 | override fun toString(): String { 6 | return "uid=$uid; package=$packageName; isRestricted=$isRestricted" 7 | } 8 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/preference/IconPreference.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.preference 2 | 3 | import android.content.Context 4 | import android.util.AttributeSet 5 | import androidx.preference.Preference 6 | import me.timschneeberger.rootlessjamesdsp.R 7 | 8 | 9 | open class IconPreference( 10 | mContext: Context, val attrs: AttributeSet?, 11 | defStyleAttr: Int, defStyleRes: Int, 12 | ) : Preference(mContext, attrs, defStyleAttr, defStyleRes) { 13 | 14 | @JvmOverloads 15 | constructor( 16 | context: Context, attrs: AttributeSet? = null, 17 | defStyle: Int = androidx.preference.R.attr.preferenceStyle, 18 | ) : this(context, attrs, defStyle, 0) { 19 | layoutResource = R.layout.preference_icon 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/receiver/PowerStateReceiver.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.receiver 2 | 3 | import android.content.BroadcastReceiver 4 | import android.content.Context 5 | import android.content.Intent 6 | import me.timschneeberger.rootlessjamesdsp.utils.EngineUtils.toggleEnginePower 7 | import timber.log.Timber 8 | 9 | class PowerStateReceiver : BroadcastReceiver() { 10 | override fun onReceive(context: Context?, intent: Intent?) { 11 | intent ?: return 12 | context ?: return 13 | 14 | Timber.d("Received power state broadcast") 15 | 16 | context.toggleEnginePower(intent.getBooleanExtra(EXTRA_ENABLED, false)) 17 | } 18 | 19 | companion object { 20 | const val EXTRA_ENABLED = "rootlessjamesdsp.enabled" 21 | } 22 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/service/NotificationListenerService.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.service 2 | 3 | import android.service.notification.NotificationListenerService 4 | import android.content.Intent 5 | import android.os.IBinder 6 | import android.service.notification.StatusBarNotification 7 | 8 | class NotificationListenerService : NotificationListenerService() { 9 | override fun onBind(intent: Intent): IBinder? { 10 | return super.onBind(intent) 11 | } 12 | 13 | override fun onNotificationPosted(sbn: StatusBarNotification) {} 14 | override fun onNotificationRemoved(sbn: StatusBarNotification) {} 15 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/session/dump/DebugDumpFileProvider.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.session.dump 2 | 3 | import androidx.core.content.FileProvider 4 | 5 | // Subclass to prevent naming collision 6 | class DebugDumpFileProvider : FileProvider() -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/session/dump/data/AudioServiceDump.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.session.dump.data 2 | 3 | import me.timschneeberger.rootlessjamesdsp.model.AudioSessionDumpEntry 4 | 5 | data class AudioServiceDump(override val sessions: HashMap) : 6 | ISessionInfoDump 7 | { 8 | override fun toString(): String { 9 | val sb = StringBuilder("\n--> Session stack\n") 10 | sessions.forEach { (key, value) -> 11 | sb.append("sid=$key\t-> $value\n") 12 | } 13 | return sb.toString() 14 | } 15 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/session/dump/data/IDump.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.session.dump.data 2 | 3 | interface IDump { 4 | override fun toString(): String 5 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/session/dump/data/ISessionInfoDump.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.session.dump.data 2 | 3 | import me.timschneeberger.rootlessjamesdsp.model.AudioSessionDumpEntry 4 | 5 | interface ISessionInfoDump : IDump { 6 | val sessions: HashMap 7 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/session/dump/data/ISessionPolicyInfoDump.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.session.dump.data 2 | 3 | interface ISessionPolicyInfoDump : IDump { 4 | val capturePermissionLog: HashMap 5 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/session/dump/data/PackageServiceDump.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.session.dump.data 2 | 3 | import me.timschneeberger.rootlessjamesdsp.model.AppInfo 4 | 5 | data class PackageServiceDump(val apps: List) : IDump { 6 | override fun toString(): String { 7 | val sb = StringBuilder("\n--> Apps\n") 8 | apps.forEach(sb::append) 9 | return sb.toString() 10 | } 11 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/session/dump/provider/IDumpProvider.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.session.dump.provider 2 | 3 | import android.content.Context 4 | 5 | interface IDumpProvider { 6 | /** 7 | * Dump audio session information to string for debug purposes 8 | */ 9 | fun dumpString(context: Context): String 10 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/session/dump/provider/ISessionDumpProvider.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.session.dump.provider 2 | 3 | import android.content.Context 4 | import me.timschneeberger.rootlessjamesdsp.session.dump.data.ISessionInfoDump 5 | 6 | interface ISessionDumpProvider : IDumpProvider { 7 | /** 8 | * Dump audio session information as ISessionInfoDump 9 | */ 10 | fun dump(context: Context): ISessionInfoDump? 11 | 12 | /** 13 | * Dump audio session information to string for debug purposes 14 | */ 15 | override fun dumpString(context: Context): String 16 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/session/dump/provider/ISessionPolicyDumpProvider.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.session.dump.provider 2 | 3 | import android.content.Context 4 | 5 | interface ISessionPolicyDumpProvider : IDumpProvider { 6 | /** 7 | * Dump audio session information as ISessionInfoDump 8 | */ 9 | fun dump(context: Context): ISessionPolicyDumpProvider? 10 | 11 | /** 12 | * Dump audio session information to string for debug purposes 13 | */ 14 | override fun dumpString(context: Context): String 15 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/utils/FlavorConditionals.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("NOTHING_TO_INLINE") 2 | package me.timschneeberger.rootlessjamesdsp.utils 3 | 4 | import me.timschneeberger.rootlessjamesdsp.BuildConfig 5 | 6 | inline fun isRootless() = BuildConfig.ROOTLESS && !BuildConfig.PLUGIN 7 | inline fun isRoot() = !BuildConfig.ROOTLESS && !BuildConfig.PLUGIN 8 | inline fun isPlugin() = BuildConfig.PLUGIN 9 | -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/utils/Result.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.utils 2 | 3 | import kotlinx.coroutines.flow.Flow 4 | import kotlinx.coroutines.flow.catch 5 | import kotlinx.coroutines.flow.map 6 | import kotlinx.coroutines.flow.onStart 7 | 8 | sealed interface Result { 9 | data class Success(val data: T) : Result 10 | 11 | data class Error( 12 | val exception: Throwable? = null, 13 | val data: T? = null 14 | ) : Result 15 | 16 | object Loading : Result 17 | } 18 | 19 | fun Flow.asResult(): Flow> { 20 | return this 21 | .map> { Result.Success(it) } 22 | .onStart { emit(Result.Loading) } 23 | .catch { emit(Result.Error(it)) } 24 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/utils/preferences/NonPersistentDatastore.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.utils.preferences 2 | 3 | import androidx.preference.PreferenceDataStore 4 | 5 | class NonPersistentDatastore : PreferenceDataStore() { 6 | private var preferenceChangedListener: OnPreferenceChanged? = null 7 | 8 | override fun putFloat(key: String?, value: Float) { 9 | key ?: return 10 | this.preferenceChangedListener?.onFloatPreferenceChanged(key, value) 11 | } 12 | 13 | override fun putString(key: String?, value: String?) {} 14 | 15 | fun setOnPreferenceChanged(preferenceChangedListener: OnPreferenceChanged) { 16 | this.preferenceChangedListener = preferenceChangedListener 17 | } 18 | 19 | interface OnPreferenceChanged { 20 | fun onFloatPreferenceChanged(key: String, value: Float) 21 | } 22 | } -------------------------------------------------------------------------------- /app/src/main/java/me/timschneeberger/rootlessjamesdsp/view/CompanderSurface.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.view 2 | 3 | import android.content.Context 4 | import android.util.AttributeSet 5 | import me.timschneeberger.rootlessjamesdsp.interop.JdspImpResToolbox 6 | 7 | class CompanderSurface(context: Context?, attrs: AttributeSet?) : BaseEqualizerSurface(context, attrs, 7, 40.0, 20000.0, -1.2, 1.2, 0.2f) { 8 | override fun computeCurve( 9 | freqs: DoubleArray, 10 | gains: DoubleArray, 11 | resolution: Int, 12 | dispFreq: DoubleArray, 13 | response: FloatArray 14 | ) { 15 | JdspImpResToolbox.ComputeCompResponse(freqs, gains, resolution, dispFreq, response) 16 | } 17 | 18 | override val frequencyScale: DoubleArray 19 | get() = SCALE 20 | 21 | companion object { 22 | val SCALE = doubleArrayOf(95.0, 200.0, 400.0, 800.0, 1600.0, 3400.0, 7500.0) 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/res/color/selector_floating_toggle_foreground_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/color/selector_floating_toggle_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 7 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_add_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_arrow_collapse_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_chart_timeline_variant_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_code_tags_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_cone_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_cube_outline_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_download_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_equalizer_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_find_replace_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_format_size_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_google_play_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_keyboard_arrow_down_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_keyboard_arrow_up_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_led_outline_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_play_arrow_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_redo_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_refresh_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_sine_wave_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_undo_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_warning_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_waveform_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_close_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_code_json.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_function_variant.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_key.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_numeric_1_circle_outline.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_numeric_2_circle_outline.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_numeric_3_circle_outline.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_numeric_4_circle_outline.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_numeric_5_circle_outline.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_numeric_6_circle_outline.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_tune_vertical_variant_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_add_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_bluetooth_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_cable_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_cast_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_check_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_check_circle_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_chevron_right_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_delete_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_delete_forever_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_download_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_edit_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_error_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_folder_special_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_headphones_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_help_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_history_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_info_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_launch_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_mic_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_more_horiz_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_nodes_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_notifications_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_power_settings_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_privacy_tip_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_remove_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_save_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_search_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_security_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_settings_backup_restore_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_settings_input_hdmi_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_speaker_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_translate_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_troubleshoot_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_usb_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_volume_up_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_twotone_warning_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_welcome_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ripple_rounded.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_card_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_rounded_corners.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_rounded_highlight.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape_rounded_rectangle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/font/jetbrainsmono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/font/jetbrainsmono.ttf -------------------------------------------------------------------------------- /app/src/main/res/layout/item_preset_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/preference_compander.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/preference_compander_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/preference_equalizer.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/preference_equalizer_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 16 | 17 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/preference_materialswitch.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_filelibrary_add_context.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 9 | 10 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_liveprog_params.xml: -------------------------------------------------------------------------------- 1 | 5 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_main_bottom_left.xml: -------------------------------------------------------------------------------- 1 | 5 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_dsp_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_dsp_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-hdpi/ic_dsp_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_dsp_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-hdpi/ic_dsp_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_dsp_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-hdpi/ic_dsp_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_dsp_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-hdpi/ic_dsp_launcher_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_dsp_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-mdpi/ic_dsp_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_dsp_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-mdpi/ic_dsp_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_dsp_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-mdpi/ic_dsp_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_dsp_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-mdpi/ic_dsp_launcher_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_dsp_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-xhdpi/ic_dsp_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_dsp_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-xhdpi/ic_dsp_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_dsp_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-xhdpi/ic_dsp_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_dsp_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-xhdpi/ic_dsp_launcher_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_dsp_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-xxhdpi/ic_dsp_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_dsp_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-xxhdpi/ic_dsp_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_dsp_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-xxhdpi/ic_dsp_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_dsp_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-xxhdpi/ic_dsp_launcher_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_dsp_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-xxxhdpi/ic_dsp_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_dsp_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-xxxhdpi/ic_dsp_launcher_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_dsp_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-xxxhdpi/ic_dsp_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_dsp_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/app/src/main/res/mipmap-xxxhdpi/ic_dsp_launcher_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/navigation/nav_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/navigation/nav_onboarding.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/values-af-rZA/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-az-rAZ/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-bg-rBG/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-ca-rES/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-da-rDK/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-de-rDE/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d Knoten 5 | %d Knoten 6 | 7 | 8 | %d anpassbarer Parameter 9 | %d anpassbare Parameter 10 | 11 | 12 | %d nicht unterstützte App wurde automatisch ausgeschlossen. Tippen für Details. 13 | %d nicht unterstützte Apps wurden automatisch ausgeschlossen. Tippen für Details. 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values-el-rGR/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d Προσαρμόσιμη παράμετρος 5 | %d Προσαρμόσιμες παράμετροι 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/values-es-rES/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d nodo 5 | %d nodos 6 | 7 | 8 | %d parámetro personalizable 9 | %d parámetro personalizable 10 | 11 | 12 | %d la aplicación no soportada ha sido excluida automáticamente. Pulse para más detalles. 13 | %d Las aplicaciones no soportadas han sido excluidas automáticamente. Pulse para más detalles. 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values-fa-rIR/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-fi-rFI/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-fr-rFR/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d Nœud 5 | %d Nœuds 6 | 7 | 8 | %d Paramètre personnalisable 9 | %d Paramètres personnalisables 10 | 11 | 12 | %d L\'application non prise en charge a été automatiquement exclues. Appuyez pour plus de détails. 13 | %d Les applications non prises en charge ont été automatiquement exclues. Appuyez pour plus de détails. 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values-hi-rIN/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-hr-rHR/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-hu-rHU/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d testreszabható paraméter 5 | %d testreszabható paraméterek 6 | 7 | 8 | %d nem támogatott alkalmazás kizárva. Koppints a részletekért. 9 | %d nem támogatott alkalmazások kizárva. Koppints a részletekért. 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/values-in-rID/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d simpul 5 | 6 | 7 | %d parameter dapat diubah 8 | 9 | 10 | %d aplikasi yang tidak didukung telah dikecualikan otomatis, sentuh untuk melihat detail. 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/values-it-rIT/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d nodo 5 | %d nodi 6 | 7 | 8 | %d parametro personalizzabile 9 | %d parametri personalizzabili 10 | 11 | 12 | L\'applicazione %d non è supportata ed è stata automaticamente esclusa. Tocca per i dettagli. 13 | Le applicazioni %d non sono supportate e sono state automaticamente escluse. Tocca per i dettagli. 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values-iw-rIL/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-ja-rJP/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d 個のノード 5 | 6 | 7 | %d 個のカスタマイズ可能なパラメータ 8 | 9 | 10 | %d 個のアプリはサポートされていないため、自動的に除外されました。詳細をついてはこちらをタップして下さい。 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/values-ko-rKR/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d 노드 5 | 6 | 7 | %d 사용자 정의 가능한 매개변수 8 | 9 | 10 | %d개의 앱은 지원되지 않기 때문에 자동으로 제외되었습니다. 자세한 내용은 이쪽을 탭해 주세요. 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/values-lt-rLT/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-lv-rLV/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-ms-rMY/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d simpul 5 | 6 | 7 | %d parameter dapat diubah 8 | 9 | 10 | %d aplikasi yang tidak didukung telah dikecualikan otomatis, sentuh untuk melihat detail. 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @color/md_white_1000_12 4 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-nl-rNL/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d node 5 | %d nodes 6 | 7 | 8 | %d aanpasbare parameter 9 | %d aanpasbare parameters 10 | 11 | 12 | %d niet-ondersteunde app is automatisch uitgesloten. Tik voor meer informatie. 13 | %d niet-ondersteunde apps zijn automatisch uitgesloten. Tik voor meer informatie. 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values-no-rNO/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-pt-rBR/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d nó 5 | %d nós 6 | 7 | 8 | %d apps não suportados foram automaticamente exclusos. Clique para ver os detalhes. 9 | %d apps não suportados foram automaticamente exclusos. Clique para ver os detalhes. 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/values-pt-rPT/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Nó %d 5 | %d Nós 6 | 7 | 8 | Parâmetro personalizável %d 9 | Parâmetros personalizáveis %d 10 | 11 | 12 | %d aplicação não suportada foi automaticamente excluída. Clique para saber mais. 13 | %d aplicações não suportadas foram automaticamente excluídas. Clique para saber mais. 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values-ro-rRO/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d nod 5 | %d noduri 6 | %d noduri 7 | 8 | 9 | %d parametru personalizabil 10 | %d parametre personalizabile 11 | %d parametre personalizabile 12 | 13 | 14 | %d aplicație nesuportată a fost exclusă automat. Atingeți pentru detalii. 15 | %d aplicațiile nesuportate au fost excluse automat. Atingeți pentru detalii. 16 | %d aplicațiile nesuportate au fost excluse automat. Atingeți pentru detalii. 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/values-sk-rSK/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-sl-rSI/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-sr-rSP/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-sv-rSE/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/values-th-rTH/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d โหนด 5 | 6 | 7 | %d พารามิเตอร์ที่ปรับแต่งได้ 8 | 9 | 10 | %d แอปที่ไม่รองรับได้รับการยกเว้นโดยอัตโนมัติ แตะเพื่อดูรายละเอียด 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/values-tr-rTR/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d düğüm 5 | %d düğümler 6 | 7 | 8 | %d özelleştirilebilir parametre 9 | %d özelleştirilebilir parametre 10 | 11 | 12 | %d desteklenmeyen uygulama otomatik olarak dışlandı. Ayrıntılar için dokun. 13 | %d desteklenmeyen uygulama otomatik olarak hariç tutulur. Ayrıntılar için dokun. 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values-v29/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values-vi-rVN/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d Các nút 5 | 6 | 7 | %d thông số có thể tùy chỉnh 8 | 9 | 10 | %d các ứng dụng không được hỗ trợ đã tự động bị loại trừ. Nhấn để biết chi tiết. 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/values-zh-rCN/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d 个节点 5 | 6 | 7 | %d 个自定义参数 8 | 9 | 10 | %d 个不支持的应用已被自动排除,点击查看详情。 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/values-zh-rTW/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d 個截點 5 | 6 | 7 | %d 個可自訂的參數 8 | 9 | 10 | 已自動排除 %d 個不支援的程式。瞭解詳情。 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 12dp 3 | -------------------------------------------------------------------------------- /app/src/main/res/values/plurals.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d node 5 | %d nodes 6 | 7 | 8 | %d customizable parameter 9 | %d customizable parameters 10 | 11 | 12 | %d unsupported app has been automatically excluded. Tap for details. 13 | %d unsupported apps have been automatically excluded. Tap for details. 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/xml/backup_rules.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/xml/data_extraction_rules.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/xml/device_profile_preferences.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/xml/provider_dump_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/xml/provider_filelibrary_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/plugin/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/plugin/java/me/timschneeberger/rootlessjamesdsp/flavor/RootShellImpl.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("UNUSED_PARAMETER") 2 | 3 | package me.timschneeberger.rootlessjamesdsp.flavor 4 | 5 | // Stubbed 6 | object RootShellImpl { 7 | interface OnShellAttachedCallback { 8 | fun onShellAttached(isRoot: Boolean) 9 | } 10 | 11 | fun getShell(callback: OnShellAttachedCallback) {} 12 | fun cmd(command: String) = false 13 | } 14 | -------------------------------------------------------------------------------- /app/src/plugin/java/me/timschneeberger/rootlessjamesdsp/flavor/UpdateManager.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("UNUSED_PARAMETER", "RedundantSuspendModifier", "RedundantNullableReturnType") 2 | 3 | package me.timschneeberger.rootlessjamesdsp.flavor 4 | 5 | import android.content.Context 6 | import kotlinx.coroutines.flow.Flow 7 | import me.timschneeberger.rootlessjamesdsp.utils.Result 8 | import java.lang.IllegalStateException 9 | 10 | class UpdateManager(val context: Context) { 11 | fun getUpdateVersionInfo(): Pair? = throw IllegalStateException() 12 | suspend fun isUpdateAvailable(): Flow> = throw IllegalStateException() 13 | fun installUpdate(context: Context): Nothing = throw IllegalStateException() 14 | } 15 | -------------------------------------------------------------------------------- /app/src/root/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/root/java/me/timschneeberger/rootlessjamesdsp/flavor/updates/api/UpdateCheckService.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.flavor.updates.api 2 | 3 | import me.timschneeberger.rootlessjamesdsp.flavor.updates.model.UpdateCheckResponse 4 | import okhttp3.ResponseBody 5 | import retrofit2.Call 6 | import retrofit2.http.GET 7 | import retrofit2.http.Path 8 | import retrofit2.http.Streaming 9 | 10 | interface UpdateCheckService { 11 | @GET("updates/check/rootlessjamesdsp/{flavor}/{versionCode}") 12 | fun checkUpdate(@Path("flavor") flavor: String, @Path("versionCode") versionCode: String): Call 13 | 14 | @Streaming 15 | @GET("updates/download/rootlessjamesdsp/{flavor}") 16 | suspend fun downloadUpdate(@Path("flavor") flavor: String): ResponseBody 17 | } -------------------------------------------------------------------------------- /app/src/root/java/me/timschneeberger/rootlessjamesdsp/flavor/updates/model/UpdateCheckResponse.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp.flavor.updates.model 2 | 3 | import com.google.gson.annotations.SerializedName 4 | import java.io.Serializable 5 | 6 | data class UpdateCheckResponse( 7 | @SerializedName("name") var name: String? = null, 8 | @SerializedName("versionName") var versionName: String? = null, 9 | @SerializedName("versionCode") var versionCode: Int? = null 10 | ) : Serializable 11 | -------------------------------------------------------------------------------- /app/src/rootless/java/me/timschneeberger/rootlessjamesdsp/flavor/RootShellImpl.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("UNUSED_PARAMETER") 2 | 3 | package me.timschneeberger.rootlessjamesdsp.flavor 4 | 5 | // Stubbed 6 | object RootShellImpl { 7 | interface OnShellAttachedCallback { 8 | fun onShellAttached(isRoot: Boolean) 9 | } 10 | 11 | fun getShell(callback: OnShellAttachedCallback) {} 12 | fun cmd(command: String) = false 13 | } 14 | -------------------------------------------------------------------------------- /app/src/rootless/java/me/timschneeberger/rootlessjamesdsp/flavor/UpdateManager.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("UNUSED_PARAMETER", "RedundantSuspendModifier", "RedundantNullableReturnType") 2 | 3 | package me.timschneeberger.rootlessjamesdsp.flavor 4 | 5 | import android.content.Context 6 | import kotlinx.coroutines.flow.Flow 7 | import me.timschneeberger.rootlessjamesdsp.utils.Result 8 | import java.lang.IllegalStateException 9 | 10 | class UpdateManager(val context: Context) { 11 | fun getUpdateVersionInfo(): Pair? = throw IllegalStateException() 12 | suspend fun isUpdateAvailable(): Flow> = throw IllegalStateException() 13 | fun installUpdate(context: Context): Nothing = throw IllegalStateException() 14 | } 15 | -------------------------------------------------------------------------------- /app/src/test/java/me/timschneeberger/rootlessjamesdsp/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.rootlessjamesdsp 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } -------------------------------------------------------------------------------- /build.gradle.kts: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | buildscript { 3 | repositories { 4 | google() 5 | mavenCentral() // Google's Maven repository 6 | gradlePluginPortal() 7 | maven("https://jitpack.io") 8 | } 9 | dependencies { 10 | classpath("com.android.tools.build:gradle:8.7.3") 11 | classpath("com.google.gms:google-services:4.4.2") 12 | classpath("com.google.firebase:firebase-crashlytics-gradle:3.0.2") 13 | classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.0") 14 | } 15 | } 16 | 17 | plugins { 18 | id("com.android.application") version "8.7.3" apply false 19 | id("com.android.library") version "8.7.3" apply false 20 | id("org.jetbrains.kotlin.android") version "2.1.0" apply false 21 | } 22 | 23 | tasks.register("clean") { 24 | delete(rootProject.buildDir) 25 | } -------------------------------------------------------------------------------- /buildSrc/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /buildSrc/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | `kotlin-dsl` 3 | } 4 | 5 | dependencies { 6 | compileOnly("org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.0") 7 | 8 | implementation(gradleApi()) 9 | } 10 | 11 | repositories { 12 | mavenCentral() 13 | google() 14 | } 15 | -------------------------------------------------------------------------------- /buildSrc/src/main/kotlin/AndroidConfig.kt: -------------------------------------------------------------------------------- 1 | object AndroidConfig { 2 | var minSdk = 29 3 | 4 | const val compileSdk = 35 5 | const val targetSdk = 34 6 | 7 | const val versionName = "1.6.14" 8 | const val versionCode = 51 9 | 10 | const val kotlinVersion = "2.1.0" 11 | const val kspVersion = "2.1.0-1.0.29" 12 | const val shizukuVersion = "12.2.0" 13 | const val rikkaRefineVersion = "4.3.0" 14 | } 15 | -------------------------------------------------------------------------------- /codeview/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /codeview/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | apply plugin: 'org.jetbrains.kotlin.android' 3 | 4 | android { 5 | compileSdk 33 6 | 7 | defaultConfig { 8 | minSdkVersion 15 9 | targetSdkVersion 33 10 | 11 | consumerProguardFiles "consumer-rules.pro" 12 | } 13 | 14 | compileOptions { 15 | sourceCompatibility = JavaVersion.VERSION_17 16 | targetCompatibility = JavaVersion.VERSION_17 17 | } 18 | 19 | kotlinOptions { 20 | jvmTarget = "17" 21 | } 22 | 23 | buildTypes { 24 | release { 25 | minifyEnabled false 26 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 27 | } 28 | } 29 | namespace 'com.amrdeveloper.codeview' 30 | } 31 | 32 | dependencies { 33 | implementation 'androidx.appcompat:appcompat:1.7.0' 34 | } -------------------------------------------------------------------------------- /codeview/consumer-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/codeview/consumer-rules.pro -------------------------------------------------------------------------------- /codeview/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /codeview/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- 1 | commit_message: 'l10n: updated %original_file_name% translation (%language%)' 2 | append_commit_message: 3 | pull_request_title: 'l10n: New Crowdin updates' 4 | pull_request_labels: 5 | - crowdin 6 | - l10n 7 | files: 8 | - source: /app/src/main/res/values/strings.xml 9 | translation: /app/src/main/res/values-%android_code%/%original_file_name% 10 | translate_attributes: 0 11 | - source: /fastlane/metadata/android/en-US/*.txt 12 | translation: /fastlane/metadata/android/%locale%/%original_file_name% 13 | - source: /app/src/main/res/values/plurals.xml 14 | translation: /app/src/main/res/values-%android_code%/plurals.xml 15 | translate_attributes: 0 16 | -------------------------------------------------------------------------------- /fastlane/.gitignore: -------------------------------------------------------------------------------- 1 | report.xml 2 | README.md 3 | -------------------------------------------------------------------------------- /fastlane/Appfile: -------------------------------------------------------------------------------- 1 | json_key_file("~/.keys/pc-api-6940086729655979938-806.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one 2 | package_name("me.timschneeberger.rootlessjamesdsp") 3 | -------------------------------------------------------------------------------- /fastlane/Fastfile: -------------------------------------------------------------------------------- 1 | # This file contains the fastlane.tools configuration 2 | # You can find the documentation at https://docs.fastlane.tools 3 | # 4 | # For a list of all available actions, check out 5 | # 6 | # https://docs.fastlane.tools/actions 7 | # 8 | # For a list of all available plugins, check out 9 | # 10 | # https://docs.fastlane.tools/plugins/available-plugins 11 | # 12 | 13 | # Uncomment the line if you want fastlane to automatically update itself 14 | # update_fastlane 15 | 16 | default_platform(:android) 17 | 18 | platform :android do 19 | desc "Runs all the tests" 20 | lane :test do 21 | gradle(task: "test") 22 | end 23 | 24 | desc "Deploy new metadata to the Google Play" 25 | lane :deploy_meta do 26 | #gradle(task: "clean bundleRootlessFullRelease") 27 | upload_to_play_store(track: "beta", skip_upload_apk: true, skip_upload_aab: true) 28 | end 29 | end 30 | -------------------------------------------------------------------------------- /fastlane/NOTE.md: -------------------------------------------------------------------------------- 1 | Run SUPPLY_VERSION_CODE=%versioncode% fastlane deploy_meta to upload changes. 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/af/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/af/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/ar/short_description.txt: -------------------------------------------------------------------------------- 1 | محرك معالجة صوت JamesDSP على مستوى النظام لأجهزة الأندرويد غير المجذرة. -------------------------------------------------------------------------------- /fastlane/metadata/android/ar/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/az-AZ/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/az-AZ/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/bg/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/bg/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/ca/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/ca/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/cs-CZ/short_description.txt: -------------------------------------------------------------------------------- 1 | JamesDSP engine pro zpracování zvuku na Android zařízeních bez rootu. -------------------------------------------------------------------------------- /fastlane/metadata/android/cs-CZ/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/da-DK/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/da-DK/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/short_description.txt: -------------------------------------------------------------------------------- 1 | Systemweite JamesDSP-Audioverarbeitung für Android-Geräte ohne Root. -------------------------------------------------------------------------------- /fastlane/metadata/android/de-DE/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/el-GR/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/el-GR/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/17.txt: -------------------------------------------------------------------------------- 1 | * Script editor: Fixed performance issues when opening large files 2 | * Script editor: Better syntax highlighting for user-defined functions and other tokens 3 | * Script editor: Added font size settings 4 | * Fixed various crashes -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/18.txt: -------------------------------------------------------------------------------- 1 | * Added monochrome icon support for Android 13 launchers 2 | * Liveprog: Better syntax highlighting in script editor 3 | * Fixed many app crashes and bugs 4 | * Customizable AutoEQ API url (to allow self-hosting) 5 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/19.txt: -------------------------------------------------------------------------------- 1 | * Fixed minor bugs and crashes 2 | * Added fastlane structure for F-Droid deployment 3 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/20.txt: -------------------------------------------------------------------------------- 1 | * Added german translation 2 | * Fixed minor crash 3 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/21.txt: -------------------------------------------------------------------------------- 1 | Updates for libjamesdsp: 2 | * Fixed bug in convolver causing crashes in rare cases 3 | * Fixed pop sound in EEL when switching script files 4 | 5 | Updates for RootlessJamesDSP: 6 | * None -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/22.txt: -------------------------------------------------------------------------------- 1 | * Fixed critical issue which caused JamesDSP to stop and detect a false compatibility issue when using apps are accessing the microphone (like the voice search feature in YouTube & YT Music) 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/23.txt: -------------------------------------------------------------------------------- 1 | * Added link to the Crowdin translation project site 2 | * Added unfinished translations for more languages 3 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/24.txt: -------------------------------------------------------------------------------- 1 | * Added Quick tile settings toggle for the statusbar to enable/disable JamesDSP quickly 2 | * Added option to exclude app from recents (@fankes) 3 | * Added credits for translators 4 | * Filter liveprog by category 5 | * Added full Russian & Ukrainian translation (@netrunner-exe) 6 | * Added full Chinese translation (@fankes, @O2C14) 7 | * Added partial Spanish translation (@TheGary, @ianpok17) 8 | * Added partial Turkish translation (@pizzawithdirt) 9 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/25.txt: -------------------------------------------------------------------------------- 1 | * Fixed crash when opening audio format settings due to invalid default value 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/26.txt: -------------------------------------------------------------------------------- 1 | * Fixed crash caused by multi-threaded access 2 | * Updated translations for languages Russian, Ukrainian, Czech, Chinese, German 3 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/27.txt: -------------------------------------------------------------------------------- 1 | * Backup/restore feature with automatic backups 2 | * Preset system rewritten & stabilized 3 | * Presets/backups can now be properly shared between app versions/flavors without causing issues 4 | * Better auto-start notification that skips the permission prompt if possible and doesn't bring the app into foreground by force 5 | * Added info about skipping the capture permission prompt in the ADB setup wizard 6 | * Updated translations for languages Russian, Ukrainian, Czech, Chinese, German, Hindi 7 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/28.txt: -------------------------------------------------------------------------------- 1 | * Hotfix: fixed crash during setup wizard due to regression in v1.4.0 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/29.txt: -------------------------------------------------------------------------------- 1 | * Hotfix: fixed crash when opening file selector (Convolver, DDC, Liveprog) due to regression in v1.4.1 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/30.txt: -------------------------------------------------------------------------------- 1 | * Material3 transitions in settings 2 | * Translation updates 3 | * Other fixes & code refactors 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/31.txt: -------------------------------------------------------------------------------- 1 | * Added device-specific audio profiles (automatic switching) 2 | * Automatic auto-start support (requires additional permissions) 3 | * Equalizer: apply changes in real-time 4 | * Translation updates 5 | * Other fixes & code refactors 6 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/32.txt: -------------------------------------------------------------------------------- 1 | * Added prominent disclosure about diagnostic reports to setup wizard 2 | * Added category icons (can be disabled in settings) 3 | * Several crash and bug fixes 4 | * Translation updates 5 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/33.txt: -------------------------------------------------------------------------------- 1 | * Translation updates -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/34.txt: -------------------------------------------------------------------------------- 1 | * Translation updates 2 | * Fixed various crashes and bugs -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/35.txt: -------------------------------------------------------------------------------- 1 | * Translation updates 2 | * Fixed bug that caused the 'Contribute translations' message to be unresponsive 3 | * Fixed various crashes and bugs 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/37.txt: -------------------------------------------------------------------------------- 1 | * Dynamic range compander effect added 2 | * Multimodal equalizer effect added (replaces old EQ) 3 | * Removed weird spiky sound for vacuum tube simulation 4 | * Convolution modules use automatic benchmarking (in the background) to optimize performance 5 | * Several bug fixes and minor performance improvements 6 | * Translation updates 7 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/38.txt: -------------------------------------------------------------------------------- 1 | * Fixed crash caused by racing-condition when turning off JamesDSP 2 | * Several minor bug fixes 3 | * Translation updates 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/39.txt: -------------------------------------------------------------------------------- 1 | * Disabled new background benchmark operations to prevent crashes 2 | * Updated libjamesdsp 3 | * EEL engine updated 4 | * Minor bug fixes 5 | * Translation updates 6 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/40.txt: -------------------------------------------------------------------------------- 1 | * Disabled new background benchmark operations to prevent crashes 2 | * Play store version only: Disabled some compat features to comply with Play Store's policy 3 | * Minor bug fixes 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/41.txt: -------------------------------------------------------------------------------- 1 | * libjamesdsp updated 2 | * Compander time-freqeuncy transform parameter added 3 | * Several minor bug fixes 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/42.txt: -------------------------------------------------------------------------------- 1 | * libjamesdsp updated 2 | * New compander time-frequency transform parameter added 3 | * Convolver benchmarking optimizations 4 | * Fixed random crashes 5 | 6 | * Small playback optimizations 7 | * Several minor bug fixes 8 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/43.txt: -------------------------------------------------------------------------------- 1 | * libjamesdsp updated 2 | * New resampler implementation 3 | 4 | * Translation updates 5 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/44.txt: -------------------------------------------------------------------------------- 1 | * Prevent audio echo on some devices 2 | * Translation updates 3 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/45.txt: -------------------------------------------------------------------------------- 1 | * Merged with updates & bugfixes from upstream libjamesdsp 2 | * Fixed sorting bug that caused the file selection list to be inconsistent (liveprog, convolver, vdc) 3 | * Translation updates -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/46.txt: -------------------------------------------------------------------------------- 1 | * Show warning about new restrictions on Android 15 2 | * Fixed crash during setup wizard on Android 14 3 | * Target Android 14 4 | * Translation updates 5 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/47.txt: -------------------------------------------------------------------------------- 1 | * Crash during Shizuku setup on Android 15 fixed 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/48.txt: -------------------------------------------------------------------------------- 1 | * Fixed a crash when toggling quick tile on Android 14 2 | * Fixed a crash during automatic backup on Android 14 and 15 due to new foreground service restrictions 3 | * Fixed several crashes when attempting to open URLs with no browser installed 4 | * Fixed a rare crash on startup -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/49.txt: -------------------------------------------------------------------------------- 1 | * Request users to grant the 'PROJECT_MEDIA' permission on Android 15+ due to new screen sharing restrictions -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/50.txt: -------------------------------------------------------------------------------- 1 | * Fixed another crash during setup on Android 14 -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/featureGraphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/fastlane/metadata/android/en-US/images/featureGraphic.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/fastlane/metadata/android/en-US/images/icon.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/1_en-US.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/fastlane/metadata/android/en-US/images/phoneScreenshots/1_en-US.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/2_en-US.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/fastlane/metadata/android/en-US/images/phoneScreenshots/2_en-US.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/3_en-US.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/fastlane/metadata/android/en-US/images/phoneScreenshots/3_en-US.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/4_en-US.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/fastlane/metadata/android/en-US/images/phoneScreenshots/4_en-US.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/5_en-US.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/fastlane/metadata/android/en-US/images/phoneScreenshots/5_en-US.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/6_en-US.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/fastlane/metadata/android/en-US/images/phoneScreenshots/6_en-US.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/7_en-US.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/fastlane/metadata/android/en-US/images/phoneScreenshots/7_en-US.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/es-ES/short_description.txt: -------------------------------------------------------------------------------- 1 | Motor de procesamiento de audio JamesDSP para dispositivos Android sin root. -------------------------------------------------------------------------------- /fastlane/metadata/android/es-ES/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/fa-IR/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/fa-IR/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/fi-FI/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/fi-FI/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/fr-FR/short_description.txt: -------------------------------------------------------------------------------- 1 | Moteur de traitement audio JamesDSP pour appareils Android non rootés. -------------------------------------------------------------------------------- /fastlane/metadata/android/fr-FR/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/he-IL/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/he-IL/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/hi-IN/short_description.txt: -------------------------------------------------------------------------------- 1 | गैर-रूट किए गए उपकरणों के लिए सिस्टम-वाइड जेम्स डीएसपी ऑडियो प्रोसेसिंग इंजन -------------------------------------------------------------------------------- /fastlane/metadata/android/hi-IN/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/hr-HR/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/hr-HR/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/hu-HU/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/hu-HU/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/id/short_description.txt: -------------------------------------------------------------------------------- 1 | Pemroses audio System-wide JamesDSP untuk perangkat Android yang tidak di root. -------------------------------------------------------------------------------- /fastlane/metadata/android/id/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/it-IT/short_description.txt: -------------------------------------------------------------------------------- 1 | Motore di elaborazione audio JamesDSP per dispositivi Android non rootati. -------------------------------------------------------------------------------- /fastlane/metadata/android/it-IT/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/ja-JP/short_description.txt: -------------------------------------------------------------------------------- 1 | root化されていないAndroidデバイス向けのシステム全体で使えるJamesDSPオーディオ処理エンジンです。 -------------------------------------------------------------------------------- /fastlane/metadata/android/ja-JP/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/ko-KR/short_description.txt: -------------------------------------------------------------------------------- 1 | 루트 권한이 없는 Android 기기에서 사용 가능한 JamesDSP 시스템 전역 오디오 처리 엔진입니다. -------------------------------------------------------------------------------- /fastlane/metadata/android/ko-KR/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/lt-LT/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/lt-LT/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/lv/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/lv/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/ms-MY/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/ms-MY/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/nl-NL/short_description.txt: -------------------------------------------------------------------------------- 1 | Systeem-brede JamesDSP audio-verwerkings engine voor Android zonder root. -------------------------------------------------------------------------------- /fastlane/metadata/android/nl-NL/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/no-NO/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/no-NO/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/pl-PL/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/pl-PL/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/pt-BR/short_description.txt: -------------------------------------------------------------------------------- 1 | Equalizador do sistema James para dispositivos Android sem raiz. -------------------------------------------------------------------------------- /fastlane/metadata/android/pt-BR/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP 2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/pt-PT/short_description.txt: -------------------------------------------------------------------------------- 1 | Mecanismo de processamento de áudio JamesDSP para dispositivos Android sem root. -------------------------------------------------------------------------------- /fastlane/metadata/android/pt-PT/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/ro/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/ro/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/ru-RU/short_description.txt: -------------------------------------------------------------------------------- 1 | Общесистемный движок обработки аудио JamesDSP для устройств без root-доступа. -------------------------------------------------------------------------------- /fastlane/metadata/android/ru-RU/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/sk/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/sk/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/sl-SI/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/sl-SI/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/sr/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/sr/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/sv-SE/short_description.txt: -------------------------------------------------------------------------------- 1 | System-wide JamesDSP audio processing engine for non-rooted Android devices. -------------------------------------------------------------------------------- /fastlane/metadata/android/sv-SE/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/th/short_description.txt: -------------------------------------------------------------------------------- 1 | เครื่องมือประมวลผลเสียง JamesDSP ทั้งระบบสำหรับอุปกรณ์ Android ที่ไม่ได้รูท -------------------------------------------------------------------------------- /fastlane/metadata/android/th/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/tr-TR/short_description.txt: -------------------------------------------------------------------------------- 1 | Root'suz Android cihazlar için sistem çapında JamesDSP ses işleme motoru. -------------------------------------------------------------------------------- /fastlane/metadata/android/tr-TR/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/uk/short_description.txt: -------------------------------------------------------------------------------- 1 | Загальносистемний механізм обробки звуку JamesDSP для пристроїв без прав root. -------------------------------------------------------------------------------- /fastlane/metadata/android/uk/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/vi/short_description.txt: -------------------------------------------------------------------------------- 1 | Ứng dụng xử lý âm thanh toàn hệ thống JamesDPS dành cho các thiết bị chưa root. -------------------------------------------------------------------------------- /fastlane/metadata/android/vi/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/zh-CN/short_description.txt: -------------------------------------------------------------------------------- 1 | 全系统 JamesDSP 用于未 Root 的 Android 设备的音频处理引擎。 -------------------------------------------------------------------------------- /fastlane/metadata/android/zh-CN/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /fastlane/metadata/android/zh-TW/short_description.txt: -------------------------------------------------------------------------------- 1 | JamesDSP是個系統級的全域音效處理引擎,無須root權限。 -------------------------------------------------------------------------------- /fastlane/metadata/android/zh-TW/title.txt: -------------------------------------------------------------------------------- 1 | RootlessJamesDSP -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Sep 20 21:31:15 CEST 2022 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /hidden-api-impl/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /hidden-api-impl/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle.kts. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | 23 | -dontobfuscate 24 | -dontoptimize 25 | -dontshrink 26 | -dontpreverify -------------------------------------------------------------------------------- /hidden-api-impl/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hidden-api-impl/src/main/java/me/timschneeberger/hiddenapi_impl/AudioSystem.java: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.hiddenapi_impl; 2 | 3 | import android.annotation.SuppressLint; 4 | 5 | public class AudioSystem { 6 | private static final int REFLECTION_ERROR = -999; 7 | private Class mAudioSystem; 8 | 9 | @SuppressLint("PrivateApi") 10 | public AudioSystem() { 11 | try { 12 | mAudioSystem = Class.forName("android.media.AudioSystem"); 13 | } catch (ClassNotFoundException e) { 14 | e.printStackTrace(); 15 | } 16 | } 17 | 18 | 19 | @SuppressWarnings("ConstantConditions") 20 | public int setAllowedCapturePolicy(int uid, int flags) { 21 | try { 22 | return (Integer) mAudioSystem.getMethod("setAllowedCapturePolicy", int.class, int.class).invoke(mAudioSystem, uid, flags); 23 | } catch (Exception e) { 24 | e.printStackTrace(); 25 | } 26 | return -1; 27 | } 28 | } -------------------------------------------------------------------------------- /hidden-api-impl/src/main/java/me/timschneeberger/hiddenapi_impl/Singleton.java: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.hiddenapi_impl; 2 | 3 | public abstract class Singleton { 4 | 5 | private T mInstance; 6 | 7 | protected abstract T create(); 8 | 9 | public final T get() { 10 | synchronized (this) { 11 | if (mInstance == null) { 12 | try { 13 | mInstance = create(); 14 | } 15 | catch (Exception ex) { 16 | ex.printStackTrace(); 17 | } 18 | } 19 | return mInstance; 20 | } 21 | } 22 | 23 | public final T getOrThrow() { 24 | T instance = get(); 25 | if(instance == null) 26 | throw new NullPointerException(); 27 | return instance; 28 | } 29 | } -------------------------------------------------------------------------------- /hidden-api-impl/src/main/java/me/timschneeberger/hiddenapi_impl/UserHandle.java: -------------------------------------------------------------------------------- 1 | package me.timschneeberger.hiddenapi_impl; 2 | 3 | import android.annotation.UserIdInt; 4 | 5 | public class UserHandle { 6 | /** A user id constant to indicate the "system" user of the device */ 7 | public static final @UserIdInt int USER_SYSTEM = 0; 8 | } 9 | -------------------------------------------------------------------------------- /hidden-api-refined/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /libs 3 | -------------------------------------------------------------------------------- /hidden-api-refined/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle.kts. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | 23 | -dontobfuscate -------------------------------------------------------------------------------- /hidden-api-refined/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /hidden-api-stubs/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /hidden-api-stubs/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | id("java-library") 3 | } 4 | 5 | java { 6 | sourceCompatibility = JavaVersion.VERSION_1_8 7 | targetCompatibility = JavaVersion.VERSION_1_8 8 | } -------------------------------------------------------------------------------- /hidden-api-stubs/src/main/java/android/os/IInterface.java: -------------------------------------------------------------------------------- 1 | package android.os; 2 | 3 | public interface IInterface { 4 | 5 | IBinder asBinder(); 6 | } 7 | -------------------------------------------------------------------------------- /hidden-api-stubs/src/main/java/android/os/RemoteException.java: -------------------------------------------------------------------------------- 1 | package android.os; 2 | 3 | public class RemoteException extends Exception { 4 | 5 | public RemoteException(String message) { 6 | throw new RuntimeException("STUB"); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /hidden-api-stubs/src/main/java/com/android/internal/app/IAppOpsService.java: -------------------------------------------------------------------------------- 1 | package com.android.internal.app; 2 | 3 | import android.os.Binder; 4 | import android.os.IBinder; 5 | import android.os.IInterface; 6 | import android.os.RemoteException; 7 | 8 | public interface IAppOpsService extends IInterface { 9 | 10 | void setMode(int code, int uid, String packageName, int mode) throws RemoteException; 11 | 12 | abstract class Stub extends Binder implements IAppOpsService { 13 | 14 | public static IAppOpsService asInterface(IBinder obj) { 15 | throw new UnsupportedOperationException(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /img/icons/android/play_store_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/play_store_512.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-hdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-hdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-hdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-hdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-mdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-mdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-mdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-mdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-xhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-xhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-xhdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-xhdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-xxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-xxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-xxhdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-xxhdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-xxxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-xxxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /img/icons/android/res/mipmap-xxxhdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/android/res/mipmap-xxxhdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /img/icons/androidtv/res/drawable-xhdpi/tv_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/androidtv/res/drawable-xhdpi/tv_banner.png -------------------------------------------------------------------------------- /img/icons/play-store/play_store_feature_graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/play-store/play_store_feature_graphic.png -------------------------------------------------------------------------------- /img/icons/web/README.txt: -------------------------------------------------------------------------------- 1 | Add this to your HTML : 2 | 3 | 4 | 5 | 6 | Add this to your app's manifest.json: 7 | 8 | ... 9 | { 10 | "icons": [ 11 | { "src": "/favicon.ico", "type": "image/x-icon", "sizes": "16x16 32x32" }, 12 | { "src": "/icon-192.png", "type": "image/png", "sizes": "192x192" }, 13 | { "src": "/icon-512.png", "type": "image/png", "sizes": "512x512" }, 14 | { "src": "/icon-192-maskable.png", "type": "image/png", "sizes": "192x192", "purpose": "maskable" }, 15 | { "src": "/icon-512-maskable.png", "type": "image/png", "sizes": "512x512", "purpose": "maskable" } 16 | ] 17 | } 18 | ... 19 | -------------------------------------------------------------------------------- /img/icons/web/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/web/apple-touch-icon.png -------------------------------------------------------------------------------- /img/icons/web/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/web/favicon.ico -------------------------------------------------------------------------------- /img/icons/web/icon-192-maskable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/web/icon-192-maskable.png -------------------------------------------------------------------------------- /img/icons/web/icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/web/icon-192.png -------------------------------------------------------------------------------- /img/icons/web/icon-512-maskable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/web/icon-512-maskable.png -------------------------------------------------------------------------------- /img/icons/web/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/icons/web/icon-512.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /img/preview-res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-hdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-hdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-mdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-mdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-xhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-xhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-xxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-xxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-xxxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-xxxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /img/preview-res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/preview-res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /img/screenshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/screenshot1.png -------------------------------------------------------------------------------- /img/screenshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/screenshot2.png -------------------------------------------------------------------------------- /img/screenshot3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/screenshot3.png -------------------------------------------------------------------------------- /img/screenshot4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/screenshot4.png -------------------------------------------------------------------------------- /img/screenshot5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/screenshot5.png -------------------------------------------------------------------------------- /img/screenshot6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/screenshot6.png -------------------------------------------------------------------------------- /img/screenshot7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timschneeb/RootlessJamesDSP/879335702df0dea4f30ed22e6411c5c33f5b2217/img/screenshot7.png -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | gradlePluginPortal() 4 | google() 5 | mavenCentral() 6 | } 7 | } 8 | dependencyResolutionManagement { 9 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 10 | repositories { 11 | google() 12 | mavenCentral() 13 | maven { url "https://jitpack.io" } 14 | } 15 | } 16 | 17 | rootProject.name = "RootlessJamesDSP" 18 | include ':app' 19 | include ':codeview' 20 | include ':hidden-api-stubs' 21 | include ':hidden-api-impl' 22 | include ':hidden-api-refined' 23 | --------------------------------------------------------------------------------