From 007737e5fe39d3cb92f30584c4670ec42d557c77 Mon Sep 17 00:00:00 2001 From: jacquarg Date: Mon, 17 Mar 2025 12:16:05 +0100 Subject: [PATCH 1/2] tech:2995: Move app code to advancedprivacy module, create application holder app module --- advancedprivacy/.gitignore | 1 + advancedprivacy/build.gradle | 147 ++++++++++++++++++ {app => advancedprivacy}/libs/lineage-sdk.jar | Bin advancedprivacy/proguard-rules.pro | 21 +++ advancedprivacy/src/main/AndroidManifest.xml | 108 +++++++++++++ .../src/main/assets/e_trackers.json | 0 .../AdvancedPrivacyApplication.kt | 0 .../e/advancedprivacy/KoinModule.kt | 0 .../e/advancedprivacy/Notifications.kt | 0 .../common/BigNumberFormatter.kt | 0 .../advancedprivacy/common/BindingAdapter.kt | 0 .../common/BootCompletedReceiver.kt | 0 .../e/advancedprivacy/common/BuildFlavor.kt | 0 .../common/NavToolbarFragment.kt | 0 .../common/RightRadioButton.kt | 0 .../advancedprivacy/common/TextViewHelpers.kt | 0 .../e/advancedprivacy/common/ThrottleFlow.kt | 0 .../e/advancedprivacy/common/WarningDialog.kt | 0 .../common/extensions/IntExtensions.kt | 0 .../extensions/NavControllerExtensions.kt | 0 .../common/extensions/ViewPager2Extensions.kt | 0 .../data/repositories/CityDataSource.kt | 0 .../repositories/LocalStateRepositoryImpl.kt | 0 .../data/repositories/ResourcesRepository.kt | 0 .../domain/entities/FeatureMode.kt | 0 .../domain/entities/TrackersAndAppsLists.kt | 0 .../entities/TrackersPeriodicStatistics.kt | 0 .../domain/usecases/AppTrackersUseCase.kt | 0 .../usecases/FakeLocationForAppUseCase.kt | 0 .../usecases/FakeLocationStateUseCase.kt | 0 .../usecases/GetQuickPrivacyStateUseCase.kt | 0 .../usecases/IpScramblingStateUseCase.kt | 0 .../domain/usecases/ListenLocationUseCase.kt | 0 .../usecases/ShowFeaturesWarningUseCase.kt | 0 .../domain/usecases/TrackerDetailsUseCase.kt | 0 .../usecases/TrackersAndAppsListsUseCase.kt | 0 .../domain/usecases/TrackersScreenUseCase.kt | 0 .../domain/usecases/TrackersStateUseCase.kt | 0 .../usecases/TrackersStatisticsUseCase.kt | 0 .../FakeLocationContentProvider.kt | 0 .../features/dashboard/DashboardFragment.kt | 0 .../features/dashboard/DashboardState.kt | 0 .../features/dashboard/DashboardViewModel.kt | 0 .../dashboard/ShameListsTabPagerAdapter.kt | 0 .../InternetPrivacyFragment.kt | 0 .../internetprivacy/InternetPrivacyState.kt | 0 .../InternetPrivacyViewModel.kt | 0 .../internetprivacy/ToggleAppsAdapter.kt | 0 .../features/location/FakeLocationFragment.kt | 0 .../features/location/FakeLocationMapView.kt | 0 .../features/location/FakeLocationState.kt | 0 .../location/FakeLocationViewModel.kt | 0 .../features/trackers/ListsTabPagerAdapter.kt | 0 .../trackers/TrackerControlDisclaimer.kt | 0 .../features/trackers/TrackersFragment.kt | 0 .../trackers/TrackersPeriodAdapter.kt | 0 .../trackers/TrackersPeriodFragment.kt | 0 .../trackers/TrackersPeriodViewModel.kt | 0 .../features/trackers/TrackersState.kt | 0 .../features/trackers/TrackersViewModel.kt | 0 .../apptrackers/AppTrackersFragment.kt | 0 .../trackers/apptrackers/AppTrackersState.kt | 0 .../apptrackers/AppTrackersViewModel.kt | 0 .../apptrackers/ToggleTrackersAdapter.kt | 0 .../features/trackers/graph/GraphHolder.kt | 0 .../trackers/graph/PeriodMarkerView.kt | 0 .../trackerdetails/TrackerAppsAdapter.kt | 0 .../trackerdetails/TrackerDetailsFragment.kt | 0 .../trackerdetails/TrackerDetailsState.kt | 0 .../trackerdetails/TrackerDetailsViewModel.kt | 0 .../e/advancedprivacy/main/MainActivity.kt | 0 .../e/advancedprivacy/widget/Widget.kt | 0 .../widget/WidgetCommandReceiver.kt | 0 .../e/advancedprivacy/widget/WidgetUI.kt | 0 .../src/main/res/color/chip_background.xml | 0 .../src/main/res/color/chip_text.xml | 0 .../src/main/res/drawable/bg_outlined.xml | 0 .../src/main/res/drawable/bg_rounded_19.xml | 0 .../res/drawable/bg_stroke_rounded_12.xml | 0 .../main/res/drawable/bg_stroke_rounded_8.xml | 0 .../src/main/res/drawable/bg_tag.xml | 0 .../src/main/res/drawable/bg_widget.xml | 0 .../src/main/res/drawable/ic_apps_24.xml | 0 .../ic_apps_compatibility_components.xml | 0 .../src/main/res/drawable/ic_block_24.xml | 0 .../res/drawable/ic_chevron_right_24dp.xml | 0 .../src/main/res/drawable/ic_close.xml | 0 .../src/main/res/drawable/ic_e_app_logo.xml | 0 .../src/main/res/drawable/ic_fmd_bad.xml | 0 .../src/main/res/drawable/ic_info_16dp.xml | 0 .../src/main/res/drawable/ic_language.xml | 0 .../src/main/res/drawable/ic_launcher.xml | 0 .../res/drawable/ic_launcher_foreground.xml | 0 .../main/res/drawable/ic_legend_blocked.xml | 0 .../main/res/drawable/ic_legend_leaked.xml | 0 .../res/drawable/ic_notification_logo.xml | 0 .../src/main/res/drawable/ic_settings.xml | 0 .../src/main/res/drawable/ic_shield_alert.xml | 0 .../drawable/ic_switch_disabled_raster.png | Bin .../res/drawable/ic_switch_enabled_raster.png | Bin .../src/main/res/drawable/ic_valid.xml | 0 .../src/main/res/drawable/part_square.xml | 0 .../src/main/res/drawable/part_triangle.xml | 0 .../main/res/drawable/pill_shape_tab_bg.xml | 0 .../res/drawable/pill_shape_tab_indicator.xml | 0 .../res/drawable/pill_shape_tab_selected.xml | 0 .../res/drawable/widget_large_preview.xml | 0 .../src/main/res/layout/activity_main.xml | 0 .../layout/alertdialog_do_not_show_again.xml | 0 .../main/res/layout/apptrackers_fragment.xml | 0 .../apptrackers_item_tracker_toggle.xml | 0 .../src/main/res/layout/chart_tooltip.xml | 0 .../layout/dashboard_item_submenu_button.xml | 0 .../main/res/layout/dashboard_shame_list.xml | 0 .../res/layout/disclaimer_block_trackers.xml | 0 .../main/res/layout/fragment_dashboard.xml | 5 + .../res/layout/fragment_fake_location.xml | 0 .../fragment_internet_activity_policy.xml | 0 .../src/main/res/layout/fragment_trackers.xml | 0 .../main/res/layout/highlight_data_number.xml | 0 .../layout/ipscrambling_item_selectmode.xml | 0 .../src/main/res/layout/item_app_toggle.xml | 0 .../src/main/res/layout/topbar.xml | 0 .../res/layout/trackerdetails_fragment.xml | 0 .../main/res/layout/trackers_apps_list.xml | 0 .../src/main/res/layout/trackers_item_app.xml | 0 .../main/res/layout/trackers_item_graph.xml | 0 .../src/main/res/layout/trackers_list.xml | 0 .../res/layout/trackers_period_fragment.xml | 0 .../src/main/res/layout/widget_large.xml | 0 .../src/main/res/layout/widget_narrow.xml | 0 .../src/main/res/navigation/nav_graph.xml | 0 .../src/main/res/values-de/strings.xml | 0 .../src/main/res/values-en-rUS/strings.xml | 0 .../src/main/res/values-es/strings.xml | 0 .../src/main/res/values-fi/strings.xml | 0 .../src/main/res/values-fr/strings.xml | 0 .../src/main/res/values-in/strings.xml | 0 .../src/main/res/values-is/strings.xml | 0 .../src/main/res/values-it/strings.xml | 0 .../src/main/res/values-ja/strings.xml | 0 .../src/main/res/values-nb-rNO/strings.xml | 0 .../src/main/res/values-night/bools.xml | 0 .../src/main/res/values-nl/strings.xml | 0 .../src/main/res/values-ru/strings.xml | 0 .../src/main/res/values-sv/strings.xml | 0 .../src/main/res/values-uk/strings.xml | 0 .../src/main/res/values/bools.xml | 0 .../src/main/res/values/colors.xml | 0 .../src/main/res/values/dimens.xml | 0 .../src/main/res/values/strings.xml | 0 .../src/main/res/values/themes.xml | 0 .../src/main/res/xml/widget_info.xml | 0 .../standalone/res/values-night/colors.xml | 0 .../src/standalone/res/values/colors.xml | 0 .../src/standalone/res/values/strings.xml | 0 .../e/advancedprivacy/ExampleUnitTest.kt | 0 app/build.gradle | 95 +---------- app/src/main/AndroidManifest.xml | 98 +----------- settings.gradle | 4 +- 160 files changed, 296 insertions(+), 183 deletions(-) create mode 100644 advancedprivacy/.gitignore create mode 100644 advancedprivacy/build.gradle rename {app => advancedprivacy}/libs/lineage-sdk.jar (100%) create mode 100644 advancedprivacy/proguard-rules.pro create mode 100644 advancedprivacy/src/main/AndroidManifest.xml rename {app => advancedprivacy}/src/main/assets/e_trackers.json (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/KoinModule.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/Notifications.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/common/BigNumberFormatter.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/common/BindingAdapter.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/common/BootCompletedReceiver.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/common/BuildFlavor.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/common/NavToolbarFragment.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/common/RightRadioButton.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/common/TextViewHelpers.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/common/ThrottleFlow.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/common/extensions/IntExtensions.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/common/extensions/NavControllerExtensions.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/common/extensions/ViewPager2Extensions.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/data/repositories/CityDataSource.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/data/repositories/LocalStateRepositoryImpl.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/data/repositories/ResourcesRepository.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/entities/FeatureMode.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/entities/TrackersAndAppsLists.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/entities/TrackersPeriodicStatistics.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/usecases/AppTrackersUseCase.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationForAppUseCase.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/usecases/GetQuickPrivacyStateUseCase.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/usecases/IpScramblingStateUseCase.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/usecases/ListenLocationUseCase.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/usecases/ShowFeaturesWarningUseCase.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackerDetailsUseCase.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersAndAppsListsUseCase.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersScreenUseCase.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersStateUseCase.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersStatisticsUseCase.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/externalinterfaces/contentproviders/FakeLocationContentProvider.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardState.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardViewModel.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/dashboard/ShameListsTabPagerAdapter.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyFragment.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyState.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyViewModel.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/ToggleAppsAdapter.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationMapView.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationState.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/ListsTabPagerAdapter.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackerControlDisclaimer.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersFragment.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodAdapter.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodFragment.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodViewModel.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersState.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersViewModel.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersFragment.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersState.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersViewModel.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/ToggleTrackersAdapter.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/graph/GraphHolder.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/graph/PeriodMarkerView.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerAppsAdapter.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsFragment.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsState.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsViewModel.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/main/MainActivity.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/widget/Widget.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/widget/WidgetCommandReceiver.kt (100%) rename {app => advancedprivacy}/src/main/java/foundation/e/advancedprivacy/widget/WidgetUI.kt (100%) rename {app => advancedprivacy}/src/main/res/color/chip_background.xml (100%) rename {app => advancedprivacy}/src/main/res/color/chip_text.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/bg_outlined.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/bg_rounded_19.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/bg_stroke_rounded_12.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/bg_stroke_rounded_8.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/bg_tag.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/bg_widget.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_apps_24.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_apps_compatibility_components.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_block_24.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_chevron_right_24dp.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_close.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_e_app_logo.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_fmd_bad.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_info_16dp.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_language.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_launcher.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_launcher_foreground.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_legend_blocked.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_legend_leaked.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_notification_logo.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_settings.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_shield_alert.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_switch_disabled_raster.png (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_switch_enabled_raster.png (100%) rename {app => advancedprivacy}/src/main/res/drawable/ic_valid.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/part_square.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/part_triangle.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/pill_shape_tab_bg.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/pill_shape_tab_indicator.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/pill_shape_tab_selected.xml (100%) rename {app => advancedprivacy}/src/main/res/drawable/widget_large_preview.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/activity_main.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/alertdialog_do_not_show_again.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/apptrackers_fragment.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/apptrackers_item_tracker_toggle.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/chart_tooltip.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/dashboard_item_submenu_button.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/dashboard_shame_list.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/disclaimer_block_trackers.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/fragment_dashboard.xml (98%) rename {app => advancedprivacy}/src/main/res/layout/fragment_fake_location.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/fragment_internet_activity_policy.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/fragment_trackers.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/highlight_data_number.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/ipscrambling_item_selectmode.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/item_app_toggle.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/topbar.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/trackerdetails_fragment.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/trackers_apps_list.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/trackers_item_app.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/trackers_item_graph.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/trackers_list.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/trackers_period_fragment.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/widget_large.xml (100%) rename {app => advancedprivacy}/src/main/res/layout/widget_narrow.xml (100%) rename {app => advancedprivacy}/src/main/res/navigation/nav_graph.xml (100%) rename {app => advancedprivacy}/src/main/res/values-de/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-en-rUS/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-es/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-fi/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-fr/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-in/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-is/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-it/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-ja/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-nb-rNO/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-night/bools.xml (100%) rename {app => advancedprivacy}/src/main/res/values-nl/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-ru/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-sv/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values-uk/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values/bools.xml (100%) rename {app => advancedprivacy}/src/main/res/values/colors.xml (100%) rename {app => advancedprivacy}/src/main/res/values/dimens.xml (100%) rename {app => advancedprivacy}/src/main/res/values/strings.xml (100%) rename {app => advancedprivacy}/src/main/res/values/themes.xml (100%) rename {app => advancedprivacy}/src/main/res/xml/widget_info.xml (100%) rename {app => advancedprivacy}/src/standalone/res/values-night/colors.xml (100%) rename {app => advancedprivacy}/src/standalone/res/values/colors.xml (100%) rename {app => advancedprivacy}/src/standalone/res/values/strings.xml (100%) rename {app => advancedprivacy}/src/test/java/foundation/e/advancedprivacy/ExampleUnitTest.kt (100%) diff --git a/advancedprivacy/.gitignore b/advancedprivacy/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/advancedprivacy/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/advancedprivacy/build.gradle b/advancedprivacy/build.gradle new file mode 100644 index 00000000..65a9367e --- /dev/null +++ b/advancedprivacy/build.gradle @@ -0,0 +1,147 @@ +/* + * Copyright (C) 2023 MURENA SAS + * Copyright (C) 2022 - 2024 E FOUNDATION + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +plugins { + id 'com.android.library' + id 'kotlin-android' + id 'androidx.navigation.safeargs.kotlin' +} + +def getSentryDsn = { -> + + def sentryDsnEnv = System.getenv("SENTRY_DSN") + if (sentryDsnEnv != null) { + return sentryDsnEnv + } + + Properties properties = new Properties() + def propertiesFile = project.rootProject.file('local.properties') + if (propertiesFile.exists()) { + properties.load(propertiesFile.newDataInputStream()) + } + return properties.getProperty('SENTRY_DSN') +} + +android { + compileSdkVersion buildConfig.compileSdk + + defaultConfig { + minSdkVersion buildConfig.minSdk + targetSdkVersion buildConfig.targetSdk + + manifestPlaceholders = [ + persistent: "false", + mainActivityIntentFilterCategory: "android.intent.category.LAUNCHER" + ] + + resValue("string", "mapbox_key", MAPBOX_KEY) + buildConfigField("String", "SENTRY_DSN", "\"${getSentryDsn()}\"") + } + + + // We define here the OS flavor e, specific for the /e/ OS version, and google, for any + // android device. The e or google prefix is then used in resources, dependencies, ... as + // expected by the android gradle plugin. + flavorDimensions 'os' + productFlavors { + eos { + dimension 'os' + } + standalone { + dimension 'os' + manifestPlaceholders = [ + persistent: "false", + mainActivityIntentFilterCategory: "android.intent.category.LAUNCHER" + ] + } + } + + buildTypes { + debug { + + } + release { + manifestPlaceholders = [ + persistent: "true", + mainActivityIntentFilterCategory: "android.intent.category.INFO" + ] + } + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } + + buildFeatures { + dataBinding true + viewBinding true + } + + lintOptions { + disable 'MissingTranslation' + } + namespace 'foundation.e.advancedprivacy' +} + +dependencies { + implementation project(':core') + standaloneImplementation project(':permissionsstandalone') + eosImplementation project(':permissionseos') + + eosImplementation files('libs/lineage-sdk.jar') + + implementation project(':trackers') + + implementation project(':ipscrambling') + eosImplementation project(':trackersserviceeos') + standaloneImplementation project(':trackersservicestandalone') + + implementation ( + libs.androidx.core.ktx, + libs.androidx.appcompat, + libs.androidx.datastore.preferences, + libs.androidx.fragment.ktx, + libs.androidx.lifecycle.runtime, + libs.androidx.lifecycle.viewmodel, + libs.androidx.navigation.fragment, + libs.androidx.navigation.ui, + libs.androidx.viewpager2, + + libs.bundles.koin, + + libs.eos.elib, + libs.eos.telemetry, + + libs.google.material, + libs.kotlinx.serialization, + + libs.maplibre, + libs.mpandroidcharts, + + libs.timber + ) + + debugImplementation libs.leakcanary + + testImplementation libs.junit +} + +static def log(Object val) { + println("[GradleRepository]: " + val) +} diff --git a/app/libs/lineage-sdk.jar b/advancedprivacy/libs/lineage-sdk.jar similarity index 100% rename from app/libs/lineage-sdk.jar rename to advancedprivacy/libs/lineage-sdk.jar diff --git a/advancedprivacy/proguard-rules.pro b/advancedprivacy/proguard-rules.pro new file mode 100644 index 00000000..481bb434 --- /dev/null +++ b/advancedprivacy/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/advancedprivacy/src/main/AndroidManifest.xml b/advancedprivacy/src/main/AndroidManifest.xml new file mode 100644 index 00000000..aa3e518c --- /dev/null +++ b/advancedprivacy/src/main/AndroidManifest.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/e_trackers.json b/advancedprivacy/src/main/assets/e_trackers.json similarity index 100% rename from app/src/main/assets/e_trackers.json rename to advancedprivacy/src/main/assets/e_trackers.json diff --git a/app/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/KoinModule.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/KoinModule.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/KoinModule.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/KoinModule.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/Notifications.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/Notifications.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/Notifications.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/Notifications.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/BigNumberFormatter.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/BigNumberFormatter.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/common/BigNumberFormatter.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/BigNumberFormatter.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/BindingAdapter.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/BindingAdapter.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/common/BindingAdapter.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/BindingAdapter.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/BootCompletedReceiver.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/BootCompletedReceiver.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/common/BootCompletedReceiver.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/BootCompletedReceiver.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/BuildFlavor.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/BuildFlavor.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/common/BuildFlavor.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/BuildFlavor.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/NavToolbarFragment.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/NavToolbarFragment.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/common/NavToolbarFragment.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/NavToolbarFragment.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/RightRadioButton.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/RightRadioButton.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/common/RightRadioButton.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/RightRadioButton.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/TextViewHelpers.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/TextViewHelpers.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/common/TextViewHelpers.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/TextViewHelpers.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/ThrottleFlow.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/ThrottleFlow.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/common/ThrottleFlow.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/ThrottleFlow.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/WarningDialog.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/extensions/IntExtensions.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/extensions/IntExtensions.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/common/extensions/IntExtensions.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/extensions/IntExtensions.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/extensions/NavControllerExtensions.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/extensions/NavControllerExtensions.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/common/extensions/NavControllerExtensions.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/extensions/NavControllerExtensions.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/common/extensions/ViewPager2Extensions.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/extensions/ViewPager2Extensions.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/common/extensions/ViewPager2Extensions.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/common/extensions/ViewPager2Extensions.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/data/repositories/CityDataSource.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/data/repositories/CityDataSource.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/data/repositories/CityDataSource.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/data/repositories/CityDataSource.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/data/repositories/LocalStateRepositoryImpl.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/data/repositories/LocalStateRepositoryImpl.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/data/repositories/LocalStateRepositoryImpl.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/data/repositories/LocalStateRepositoryImpl.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/data/repositories/ResourcesRepository.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/data/repositories/ResourcesRepository.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/data/repositories/ResourcesRepository.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/data/repositories/ResourcesRepository.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/entities/FeatureMode.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/entities/FeatureMode.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/entities/FeatureMode.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/entities/FeatureMode.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/entities/TrackersAndAppsLists.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/entities/TrackersAndAppsLists.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/entities/TrackersAndAppsLists.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/entities/TrackersAndAppsLists.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/entities/TrackersPeriodicStatistics.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/entities/TrackersPeriodicStatistics.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/entities/TrackersPeriodicStatistics.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/entities/TrackersPeriodicStatistics.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/AppTrackersUseCase.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/AppTrackersUseCase.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/usecases/AppTrackersUseCase.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/AppTrackersUseCase.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationForAppUseCase.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationForAppUseCase.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationForAppUseCase.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationForAppUseCase.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/FakeLocationStateUseCase.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/GetQuickPrivacyStateUseCase.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/GetQuickPrivacyStateUseCase.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/usecases/GetQuickPrivacyStateUseCase.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/GetQuickPrivacyStateUseCase.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/IpScramblingStateUseCase.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/IpScramblingStateUseCase.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/usecases/IpScramblingStateUseCase.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/IpScramblingStateUseCase.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/ListenLocationUseCase.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/ListenLocationUseCase.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/usecases/ListenLocationUseCase.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/ListenLocationUseCase.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/ShowFeaturesWarningUseCase.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/ShowFeaturesWarningUseCase.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/usecases/ShowFeaturesWarningUseCase.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/ShowFeaturesWarningUseCase.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackerDetailsUseCase.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackerDetailsUseCase.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackerDetailsUseCase.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackerDetailsUseCase.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersAndAppsListsUseCase.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersAndAppsListsUseCase.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersAndAppsListsUseCase.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersAndAppsListsUseCase.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersScreenUseCase.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersScreenUseCase.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersScreenUseCase.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersScreenUseCase.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersStateUseCase.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersStateUseCase.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersStateUseCase.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersStateUseCase.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersStatisticsUseCase.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersStatisticsUseCase.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersStatisticsUseCase.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/domain/usecases/TrackersStatisticsUseCase.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/externalinterfaces/contentproviders/FakeLocationContentProvider.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/externalinterfaces/contentproviders/FakeLocationContentProvider.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/externalinterfaces/contentproviders/FakeLocationContentProvider.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/externalinterfaces/contentproviders/FakeLocationContentProvider.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardFragment.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardState.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardState.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardState.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardState.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardViewModel.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardViewModel.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardViewModel.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/dashboard/DashboardViewModel.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/dashboard/ShameListsTabPagerAdapter.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/dashboard/ShameListsTabPagerAdapter.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/dashboard/ShameListsTabPagerAdapter.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/dashboard/ShameListsTabPagerAdapter.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyFragment.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyFragment.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyFragment.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyFragment.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyState.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyState.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyState.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyState.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyViewModel.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyViewModel.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyViewModel.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyViewModel.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/ToggleAppsAdapter.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/ToggleAppsAdapter.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/ToggleAppsAdapter.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/ToggleAppsAdapter.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationFragment.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationMapView.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationMapView.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationMapView.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationMapView.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationState.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationState.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationState.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationState.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/location/FakeLocationViewModel.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/ListsTabPagerAdapter.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/ListsTabPagerAdapter.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/ListsTabPagerAdapter.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/ListsTabPagerAdapter.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackerControlDisclaimer.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackerControlDisclaimer.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackerControlDisclaimer.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackerControlDisclaimer.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersFragment.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersFragment.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersFragment.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersFragment.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodAdapter.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodAdapter.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodAdapter.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodAdapter.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodFragment.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodFragment.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodFragment.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodFragment.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodViewModel.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodViewModel.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodViewModel.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersPeriodViewModel.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersState.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersState.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersState.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersState.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersViewModel.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersViewModel.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersViewModel.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/TrackersViewModel.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersFragment.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersFragment.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersFragment.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersFragment.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersState.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersState.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersState.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersState.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersViewModel.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersViewModel.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersViewModel.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/AppTrackersViewModel.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/ToggleTrackersAdapter.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/ToggleTrackersAdapter.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/ToggleTrackersAdapter.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/ToggleTrackersAdapter.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/graph/GraphHolder.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/graph/GraphHolder.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/graph/GraphHolder.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/graph/GraphHolder.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/graph/PeriodMarkerView.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/graph/PeriodMarkerView.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/graph/PeriodMarkerView.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/graph/PeriodMarkerView.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerAppsAdapter.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerAppsAdapter.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerAppsAdapter.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerAppsAdapter.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsFragment.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsFragment.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsFragment.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsFragment.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsState.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsState.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsState.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsState.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsViewModel.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsViewModel.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsViewModel.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/features/trackers/trackerdetails/TrackerDetailsViewModel.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/main/MainActivity.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/main/MainActivity.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/main/MainActivity.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/main/MainActivity.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/widget/Widget.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/widget/Widget.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/widget/Widget.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/widget/Widget.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/widget/WidgetCommandReceiver.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/widget/WidgetCommandReceiver.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/widget/WidgetCommandReceiver.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/widget/WidgetCommandReceiver.kt diff --git a/app/src/main/java/foundation/e/advancedprivacy/widget/WidgetUI.kt b/advancedprivacy/src/main/java/foundation/e/advancedprivacy/widget/WidgetUI.kt similarity index 100% rename from app/src/main/java/foundation/e/advancedprivacy/widget/WidgetUI.kt rename to advancedprivacy/src/main/java/foundation/e/advancedprivacy/widget/WidgetUI.kt diff --git a/app/src/main/res/color/chip_background.xml b/advancedprivacy/src/main/res/color/chip_background.xml similarity index 100% rename from app/src/main/res/color/chip_background.xml rename to advancedprivacy/src/main/res/color/chip_background.xml diff --git a/app/src/main/res/color/chip_text.xml b/advancedprivacy/src/main/res/color/chip_text.xml similarity index 100% rename from app/src/main/res/color/chip_text.xml rename to advancedprivacy/src/main/res/color/chip_text.xml diff --git a/app/src/main/res/drawable/bg_outlined.xml b/advancedprivacy/src/main/res/drawable/bg_outlined.xml similarity index 100% rename from app/src/main/res/drawable/bg_outlined.xml rename to advancedprivacy/src/main/res/drawable/bg_outlined.xml diff --git a/app/src/main/res/drawable/bg_rounded_19.xml b/advancedprivacy/src/main/res/drawable/bg_rounded_19.xml similarity index 100% rename from app/src/main/res/drawable/bg_rounded_19.xml rename to advancedprivacy/src/main/res/drawable/bg_rounded_19.xml diff --git a/app/src/main/res/drawable/bg_stroke_rounded_12.xml b/advancedprivacy/src/main/res/drawable/bg_stroke_rounded_12.xml similarity index 100% rename from app/src/main/res/drawable/bg_stroke_rounded_12.xml rename to advancedprivacy/src/main/res/drawable/bg_stroke_rounded_12.xml diff --git a/app/src/main/res/drawable/bg_stroke_rounded_8.xml b/advancedprivacy/src/main/res/drawable/bg_stroke_rounded_8.xml similarity index 100% rename from app/src/main/res/drawable/bg_stroke_rounded_8.xml rename to advancedprivacy/src/main/res/drawable/bg_stroke_rounded_8.xml diff --git a/app/src/main/res/drawable/bg_tag.xml b/advancedprivacy/src/main/res/drawable/bg_tag.xml similarity index 100% rename from app/src/main/res/drawable/bg_tag.xml rename to advancedprivacy/src/main/res/drawable/bg_tag.xml diff --git a/app/src/main/res/drawable/bg_widget.xml b/advancedprivacy/src/main/res/drawable/bg_widget.xml similarity index 100% rename from app/src/main/res/drawable/bg_widget.xml rename to advancedprivacy/src/main/res/drawable/bg_widget.xml diff --git a/app/src/main/res/drawable/ic_apps_24.xml b/advancedprivacy/src/main/res/drawable/ic_apps_24.xml similarity index 100% rename from app/src/main/res/drawable/ic_apps_24.xml rename to advancedprivacy/src/main/res/drawable/ic_apps_24.xml diff --git a/app/src/main/res/drawable/ic_apps_compatibility_components.xml b/advancedprivacy/src/main/res/drawable/ic_apps_compatibility_components.xml similarity index 100% rename from app/src/main/res/drawable/ic_apps_compatibility_components.xml rename to advancedprivacy/src/main/res/drawable/ic_apps_compatibility_components.xml diff --git a/app/src/main/res/drawable/ic_block_24.xml b/advancedprivacy/src/main/res/drawable/ic_block_24.xml similarity index 100% rename from app/src/main/res/drawable/ic_block_24.xml rename to advancedprivacy/src/main/res/drawable/ic_block_24.xml diff --git a/app/src/main/res/drawable/ic_chevron_right_24dp.xml b/advancedprivacy/src/main/res/drawable/ic_chevron_right_24dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_chevron_right_24dp.xml rename to advancedprivacy/src/main/res/drawable/ic_chevron_right_24dp.xml diff --git a/app/src/main/res/drawable/ic_close.xml b/advancedprivacy/src/main/res/drawable/ic_close.xml similarity index 100% rename from app/src/main/res/drawable/ic_close.xml rename to advancedprivacy/src/main/res/drawable/ic_close.xml diff --git a/app/src/main/res/drawable/ic_e_app_logo.xml b/advancedprivacy/src/main/res/drawable/ic_e_app_logo.xml similarity index 100% rename from app/src/main/res/drawable/ic_e_app_logo.xml rename to advancedprivacy/src/main/res/drawable/ic_e_app_logo.xml diff --git a/app/src/main/res/drawable/ic_fmd_bad.xml b/advancedprivacy/src/main/res/drawable/ic_fmd_bad.xml similarity index 100% rename from app/src/main/res/drawable/ic_fmd_bad.xml rename to advancedprivacy/src/main/res/drawable/ic_fmd_bad.xml diff --git a/app/src/main/res/drawable/ic_info_16dp.xml b/advancedprivacy/src/main/res/drawable/ic_info_16dp.xml similarity index 100% rename from app/src/main/res/drawable/ic_info_16dp.xml rename to advancedprivacy/src/main/res/drawable/ic_info_16dp.xml diff --git a/app/src/main/res/drawable/ic_language.xml b/advancedprivacy/src/main/res/drawable/ic_language.xml similarity index 100% rename from app/src/main/res/drawable/ic_language.xml rename to advancedprivacy/src/main/res/drawable/ic_language.xml diff --git a/app/src/main/res/drawable/ic_launcher.xml b/advancedprivacy/src/main/res/drawable/ic_launcher.xml similarity index 100% rename from app/src/main/res/drawable/ic_launcher.xml rename to advancedprivacy/src/main/res/drawable/ic_launcher.xml diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/advancedprivacy/src/main/res/drawable/ic_launcher_foreground.xml similarity index 100% rename from app/src/main/res/drawable/ic_launcher_foreground.xml rename to advancedprivacy/src/main/res/drawable/ic_launcher_foreground.xml diff --git a/app/src/main/res/drawable/ic_legend_blocked.xml b/advancedprivacy/src/main/res/drawable/ic_legend_blocked.xml similarity index 100% rename from app/src/main/res/drawable/ic_legend_blocked.xml rename to advancedprivacy/src/main/res/drawable/ic_legend_blocked.xml diff --git a/app/src/main/res/drawable/ic_legend_leaked.xml b/advancedprivacy/src/main/res/drawable/ic_legend_leaked.xml similarity index 100% rename from app/src/main/res/drawable/ic_legend_leaked.xml rename to advancedprivacy/src/main/res/drawable/ic_legend_leaked.xml diff --git a/app/src/main/res/drawable/ic_notification_logo.xml b/advancedprivacy/src/main/res/drawable/ic_notification_logo.xml similarity index 100% rename from app/src/main/res/drawable/ic_notification_logo.xml rename to advancedprivacy/src/main/res/drawable/ic_notification_logo.xml diff --git a/app/src/main/res/drawable/ic_settings.xml b/advancedprivacy/src/main/res/drawable/ic_settings.xml similarity index 100% rename from app/src/main/res/drawable/ic_settings.xml rename to advancedprivacy/src/main/res/drawable/ic_settings.xml diff --git a/app/src/main/res/drawable/ic_shield_alert.xml b/advancedprivacy/src/main/res/drawable/ic_shield_alert.xml similarity index 100% rename from app/src/main/res/drawable/ic_shield_alert.xml rename to advancedprivacy/src/main/res/drawable/ic_shield_alert.xml diff --git a/app/src/main/res/drawable/ic_switch_disabled_raster.png b/advancedprivacy/src/main/res/drawable/ic_switch_disabled_raster.png similarity index 100% rename from app/src/main/res/drawable/ic_switch_disabled_raster.png rename to advancedprivacy/src/main/res/drawable/ic_switch_disabled_raster.png diff --git a/app/src/main/res/drawable/ic_switch_enabled_raster.png b/advancedprivacy/src/main/res/drawable/ic_switch_enabled_raster.png similarity index 100% rename from app/src/main/res/drawable/ic_switch_enabled_raster.png rename to advancedprivacy/src/main/res/drawable/ic_switch_enabled_raster.png diff --git a/app/src/main/res/drawable/ic_valid.xml b/advancedprivacy/src/main/res/drawable/ic_valid.xml similarity index 100% rename from app/src/main/res/drawable/ic_valid.xml rename to advancedprivacy/src/main/res/drawable/ic_valid.xml diff --git a/app/src/main/res/drawable/part_square.xml b/advancedprivacy/src/main/res/drawable/part_square.xml similarity index 100% rename from app/src/main/res/drawable/part_square.xml rename to advancedprivacy/src/main/res/drawable/part_square.xml diff --git a/app/src/main/res/drawable/part_triangle.xml b/advancedprivacy/src/main/res/drawable/part_triangle.xml similarity index 100% rename from app/src/main/res/drawable/part_triangle.xml rename to advancedprivacy/src/main/res/drawable/part_triangle.xml diff --git a/app/src/main/res/drawable/pill_shape_tab_bg.xml b/advancedprivacy/src/main/res/drawable/pill_shape_tab_bg.xml similarity index 100% rename from app/src/main/res/drawable/pill_shape_tab_bg.xml rename to advancedprivacy/src/main/res/drawable/pill_shape_tab_bg.xml diff --git a/app/src/main/res/drawable/pill_shape_tab_indicator.xml b/advancedprivacy/src/main/res/drawable/pill_shape_tab_indicator.xml similarity index 100% rename from app/src/main/res/drawable/pill_shape_tab_indicator.xml rename to advancedprivacy/src/main/res/drawable/pill_shape_tab_indicator.xml diff --git a/app/src/main/res/drawable/pill_shape_tab_selected.xml b/advancedprivacy/src/main/res/drawable/pill_shape_tab_selected.xml similarity index 100% rename from app/src/main/res/drawable/pill_shape_tab_selected.xml rename to advancedprivacy/src/main/res/drawable/pill_shape_tab_selected.xml diff --git a/app/src/main/res/drawable/widget_large_preview.xml b/advancedprivacy/src/main/res/drawable/widget_large_preview.xml similarity index 100% rename from app/src/main/res/drawable/widget_large_preview.xml rename to advancedprivacy/src/main/res/drawable/widget_large_preview.xml diff --git a/app/src/main/res/layout/activity_main.xml b/advancedprivacy/src/main/res/layout/activity_main.xml similarity index 100% rename from app/src/main/res/layout/activity_main.xml rename to advancedprivacy/src/main/res/layout/activity_main.xml diff --git a/app/src/main/res/layout/alertdialog_do_not_show_again.xml b/advancedprivacy/src/main/res/layout/alertdialog_do_not_show_again.xml similarity index 100% rename from app/src/main/res/layout/alertdialog_do_not_show_again.xml rename to advancedprivacy/src/main/res/layout/alertdialog_do_not_show_again.xml diff --git a/app/src/main/res/layout/apptrackers_fragment.xml b/advancedprivacy/src/main/res/layout/apptrackers_fragment.xml similarity index 100% rename from app/src/main/res/layout/apptrackers_fragment.xml rename to advancedprivacy/src/main/res/layout/apptrackers_fragment.xml diff --git a/app/src/main/res/layout/apptrackers_item_tracker_toggle.xml b/advancedprivacy/src/main/res/layout/apptrackers_item_tracker_toggle.xml similarity index 100% rename from app/src/main/res/layout/apptrackers_item_tracker_toggle.xml rename to advancedprivacy/src/main/res/layout/apptrackers_item_tracker_toggle.xml diff --git a/app/src/main/res/layout/chart_tooltip.xml b/advancedprivacy/src/main/res/layout/chart_tooltip.xml similarity index 100% rename from app/src/main/res/layout/chart_tooltip.xml rename to advancedprivacy/src/main/res/layout/chart_tooltip.xml diff --git a/app/src/main/res/layout/dashboard_item_submenu_button.xml b/advancedprivacy/src/main/res/layout/dashboard_item_submenu_button.xml similarity index 100% rename from app/src/main/res/layout/dashboard_item_submenu_button.xml rename to advancedprivacy/src/main/res/layout/dashboard_item_submenu_button.xml diff --git a/app/src/main/res/layout/dashboard_shame_list.xml b/advancedprivacy/src/main/res/layout/dashboard_shame_list.xml similarity index 100% rename from app/src/main/res/layout/dashboard_shame_list.xml rename to advancedprivacy/src/main/res/layout/dashboard_shame_list.xml diff --git a/app/src/main/res/layout/disclaimer_block_trackers.xml b/advancedprivacy/src/main/res/layout/disclaimer_block_trackers.xml similarity index 100% rename from app/src/main/res/layout/disclaimer_block_trackers.xml rename to advancedprivacy/src/main/res/layout/disclaimer_block_trackers.xml diff --git a/app/src/main/res/layout/fragment_dashboard.xml b/advancedprivacy/src/main/res/layout/fragment_dashboard.xml similarity index 98% rename from app/src/main/res/layout/fragment_dashboard.xml rename to advancedprivacy/src/main/res/layout/fragment_dashboard.xml index 9dfc66e4..14e6069c 100644 --- a/app/src/main/res/layout/fragment_dashboard.xml +++ b/advancedprivacy/src/main/res/layout/fragment_dashboard.xml @@ -22,6 +22,11 @@ android:layout_width="match_parent" > + - - def sentryDsnEnv = System.getenv("SENTRY_DSN") - if (sentryDsnEnv != null) { - return sentryDsnEnv - } - - Properties properties = new Properties() - def propertiesFile = project.rootProject.file('local.properties') - if (propertiesFile.exists()) { - properties.load(propertiesFile.newDataInputStream()) - } - return properties.getProperty('SENTRY_DSN') + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) } android { @@ -46,16 +29,6 @@ android { targetSdkVersion buildConfig.targetSdk versionCode buildConfig.version.code versionName buildConfig.version.name - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - - manifestPlaceholders = [ - persistent: "false", - mainActivityIntentFilterCategory: "android.intent.category.LAUNCHER" - ] - - resValue("string", "mapbox_key", MAPBOX_KEY) - buildConfigField("String", "SENTRY_DSN", "\"${getSentryDsn()}\"") } signingConfigs { @@ -87,10 +60,6 @@ android { standalone { dimension 'os' applicationIdSuffix '.standalone' - manifestPlaceholders = [ - persistent: "false", - mainActivityIntentFilterCategory: "android.intent.category.LAUNCHER" - ] signingConfig signingConfigs.debug } @@ -101,20 +70,11 @@ android { signingConfig null // Set signing config to null as we use signingConfig per variant. } release { - manifestPlaceholders = [ - persistent: "true", - mainActivityIntentFilterCategory: "android.intent.category.INFO" - ] - minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } releaseNoLibs { matchingFallbacks = ["release"] - manifestPlaceholders = [ - persistent: "true", - mainActivityIntentFilterCategory: "android.intent.category.INFO" - ] minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' @@ -143,7 +103,7 @@ android { lintOptions { disable 'MissingTranslation' } - namespace 'foundation.e.advancedprivacy' + namespace 'foundation.e.advancedprivacy.app' } // Required to exclude libs from one specific buildType: https://stackoverflow.com/a/78301183 @@ -154,48 +114,5 @@ androidComponents { } dependencies { - implementation project(':core') - standaloneImplementation project(':permissionsstandalone') - eosImplementation project(':permissionseos') - - eosImplementation files('libs/lineage-sdk.jar') - - implementation project(':trackers') - - implementation project(':ipscrambling') - eosImplementation project(':trackersserviceeos') - standaloneImplementation project(':trackersservicestandalone') - - implementation ( - libs.androidx.core.ktx, - libs.androidx.appcompat, - libs.androidx.datastore.preferences, - libs.androidx.fragment.ktx, - libs.androidx.lifecycle.runtime, - libs.androidx.lifecycle.viewmodel, - libs.androidx.navigation.fragment, - libs.androidx.navigation.ui, - libs.androidx.viewpager2, - - libs.bundles.koin, - - libs.eos.elib, - libs.eos.telemetry, - - libs.google.material, - libs.kotlinx.serialization, - - libs.maplibre, - libs.mpandroidcharts, - - libs.timber - ) - - debugImplementation libs.leakcanary - - testImplementation libs.junit -} - -static def log(Object val) { - println("[GradleRepository]: " + val) -} + implementation project(':advancedprivacy') +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index aa3e518c..f6cb0f61 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 0c00702e..9f9bb5b0 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { } } -include ':app' + rootProject.name = "AdvancedPrivacy" include ':core' include ':permissionsstandalone' @@ -18,6 +18,8 @@ include ':ipscrambling' //include ':ipscrambling:orbotservice' include ':trackersservicestandalone' include ':trackersserviceeos' +include ':advancedprivacy' +include ':app' dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) -- GitLab From 4ee554c3cb9d5d038bf0e165b16459540e9261cf Mon Sep 17 00:00:00 2001 From: jacquarg Date: Mon, 17 Mar 2025 12:18:45 +0100 Subject: [PATCH 2/2] tech:2995: Add APDebugTools module on debug build --- APDebugTools/.gitignore | 1 + APDebugTools/build.gradle | 38 +++++++++++++++++++ APDebugTools/consumer-rules.pro | 0 APDebugTools/proguard-rules.pro | 21 ++++++++++ APDebugTools/src/main/AndroidManifest.xml | 16 ++++++++ .../AdvancedPrivacyDebugActivity.kt | 38 +++++++++++++++++++ .../src/main/res/layout/debug_activity.xml | 38 +++++++++++++++++++ APDebugTools/src/main/res/values/strings.xml | 21 ++++++++++ advancedprivacy/build.gradle | 3 ++ .../main/res/layout/fragment_dashboard.xml | 5 --- app/build.gradle | 2 + settings.gradle | 1 + 12 files changed, 179 insertions(+), 5 deletions(-) create mode 100644 APDebugTools/.gitignore create mode 100644 APDebugTools/build.gradle create mode 100644 APDebugTools/consumer-rules.pro create mode 100644 APDebugTools/proguard-rules.pro create mode 100644 APDebugTools/src/main/AndroidManifest.xml create mode 100644 APDebugTools/src/main/java/foundation/e/advancedprivacy/debugtools/AdvancedPrivacyDebugActivity.kt create mode 100644 APDebugTools/src/main/res/layout/debug_activity.xml create mode 100644 APDebugTools/src/main/res/values/strings.xml diff --git a/APDebugTools/.gitignore b/APDebugTools/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/APDebugTools/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/APDebugTools/build.gradle b/APDebugTools/build.gradle new file mode 100644 index 00000000..d25c3824 --- /dev/null +++ b/APDebugTools/build.gradle @@ -0,0 +1,38 @@ +plugins { + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) +} + +android { + namespace 'foundation.e.advancedprivacy.debugtools' + + compileSdkVersion buildConfig.compileSdk + + defaultConfig { + minSdkVersion buildConfig.minSdk + targetSdkVersion buildConfig.targetSdk + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } + + flavorDimensions 'os' + productFlavors { + eos { dimension 'os' } + standalone { dimension 'os' } + } + + buildFeatures { + viewBinding true + } +} + +dependencies { + implementation project(path: ":advancedprivacy") + + implementation libs.androidx.core.ktx + implementation libs.androidx.appcompat + implementation libs.google.material +} \ No newline at end of file diff --git a/APDebugTools/consumer-rules.pro b/APDebugTools/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/APDebugTools/proguard-rules.pro b/APDebugTools/proguard-rules.pro new file mode 100644 index 00000000..481bb434 --- /dev/null +++ b/APDebugTools/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/APDebugTools/src/main/AndroidManifest.xml b/APDebugTools/src/main/AndroidManifest.xml new file mode 100644 index 00000000..c4d44631 --- /dev/null +++ b/APDebugTools/src/main/AndroidManifest.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/APDebugTools/src/main/java/foundation/e/advancedprivacy/debugtools/AdvancedPrivacyDebugActivity.kt b/APDebugTools/src/main/java/foundation/e/advancedprivacy/debugtools/AdvancedPrivacyDebugActivity.kt new file mode 100644 index 00000000..d78d079d --- /dev/null +++ b/APDebugTools/src/main/java/foundation/e/advancedprivacy/debugtools/AdvancedPrivacyDebugActivity.kt @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 E FOUNDATION + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package foundation.e.advancedprivacy.debugtools + +import android.content.Intent +import android.os.Bundle +import androidx.fragment.app.FragmentActivity +import foundation.e.advancedprivacy.debugtools.databinding.DebugActivityBinding +import foundation.e.advancedprivacy.main.MainActivity + +class AdvancedPrivacyDebugActivity : FragmentActivity() { + private lateinit var binding: DebugActivityBinding + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + binding = DebugActivityBinding.inflate(layoutInflater) + setContentView(binding.root) + + binding.gotoAdvancedprivacy.setOnClickListener { + startActivity(Intent(this, MainActivity::class.java)) + } + } +} diff --git a/APDebugTools/src/main/res/layout/debug_activity.xml b/APDebugTools/src/main/res/layout/debug_activity.xml new file mode 100644 index 00000000..a8a2aac9 --- /dev/null +++ b/APDebugTools/src/main/res/layout/debug_activity.xml @@ -0,0 +1,38 @@ + + + + + + \ No newline at end of file diff --git a/APDebugTools/src/main/res/values/strings.xml b/APDebugTools/src/main/res/values/strings.xml new file mode 100644 index 00000000..1b3689b6 --- /dev/null +++ b/APDebugTools/src/main/res/values/strings.xml @@ -0,0 +1,21 @@ + + + + Debug A-P + Open Advanced Privacy + \ No newline at end of file diff --git a/advancedprivacy/build.gradle b/advancedprivacy/build.gradle index 65a9367e..afdfc251 100644 --- a/advancedprivacy/build.gradle +++ b/advancedprivacy/build.gradle @@ -61,6 +61,9 @@ android { productFlavors { eos { dimension 'os' + manifestPlaceholders = [ + mainActivityIntentFilterCategory: "android.intent.category.INFO" + ] } standalone { dimension 'os' diff --git a/advancedprivacy/src/main/res/layout/fragment_dashboard.xml b/advancedprivacy/src/main/res/layout/fragment_dashboard.xml index 14e6069c..9dfc66e4 100644 --- a/advancedprivacy/src/main/res/layout/fragment_dashboard.xml +++ b/advancedprivacy/src/main/res/layout/fragment_dashboard.xml @@ -22,11 +22,6 @@ android:layout_width="match_parent" > -