From b6796fc6c368ae2412b868245b7a23605646bc6d Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Wed, 29 Oct 2025 14:02:09 -0300 Subject: [PATCH 01/26] Version 5.3.2-rc1 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 7519497c4..e1129083b 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ apply from: 'spec.gradle' apply from: 'jacoco.gradle' ext { - splitVersion = '5.4.1' + splitVersion = '5.4.2-rc1' jacocoVersion = '0.8.8' } From 075cb85d1a9ed15c378adbd17ba63e1c35ff07c4 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Fri, 31 Oct 2025 11:05:48 -0300 Subject: [PATCH 02/26] WIP fused --- android-client-logger/.gitignore | 4 + android-client-logger/build.gradle | 44 +++ .../src}/main/AndroidManifest.xml | 4 +- .../client/utils/logger/LogPrinter.java | 0 .../client/utils/logger/LogPrinterImpl.java | 0 .../android/client/utils/logger/Logger.java | 0 .../client/utils/logger/SplitLogLevel.java | 0 .../client/utils/logger/LogPrinterStub.java | 0 .../client/utils/logger/LoggerTest.java | 0 android-client-main/.gitignore | 4 + android-client-main/build.gradle | 82 +++++ android-client-main/build.gradle.tmp | 285 ++++++++++++++++++ android-client-main/consumer-rules.pro | 54 ++++ .../androidTest/AndroidManifest.xml | 0 .../assets/attributes_test_split_change.json | 0 .../androidTest/assets/bucket_split_test.json | 0 .../androidTest/assets/lorem_ipsum.txt | 0 .../assets/push_msg-ably_error_40012.txt | 0 .../assets/push_msg-ably_error_40142.txt | 0 .../androidTest/assets/push_msg-control.txt | 0 .../assets/push_msg-largesegment_update.txt | 0 .../androidTest/assets/push_msg-occupancy.txt | 0 .../assets/push_msg-segment_updV2.txt | 0 .../assets/push_msg-segment_update.txt | 0 .../push_msg-segment_update_empty_payload.txt | 0 .../push_msg-segment_update_payload.txt | 0 ...ush_msg-segment_update_payload_generic.txt | 0 .../assets/push_msg-split_kill.txt | 0 .../assets/push_msg-split_kill_old.txt | 0 .../assets/push_msg-split_update-chgnum.txt | 0 .../assets/push_msg-split_update.txt | 0 .../push_msg-split_update_old_change_nb.txt | 0 .../androidTest/assets/push_token-expired.txt | 0 .../androidTest/assets/simple_split.json | 0 .../androidTest/assets/split.json | 0 .../androidTest/assets/split_changes_1.json | 0 .../assets/split_changes_flag_set-0.json | 0 .../assets/split_changes_flag_set-1.json | 0 .../assets/split_changes_flag_set-2.json | 0 .../assets/split_changes_imp_toggle.json | 0 .../split_changes_large_segments-0.json | 0 .../assets/split_changes_legacy.json | 0 .../androidTest/assets/split_changes_rbs.json | 0 .../assets/split_changes_semver.json | 0 .../androidTest/assets/split_dependency.json | 0 .../assets/splitchanges_int_test.json | 0 .../assets/splitchanges_prerequisites.json | 0 .../splitchanges_unsupported_matcher.json | 0 .../androidTest/assets/splits.yaml | 0 .../androidTest/assets/splits1.properties | 0 .../androidTest/assets/splits_test.properties | 0 .../androidTest/assets/splits_yml.yml | 0 .../androidTest/java/fake/HttpClientMock.java | 0 .../androidTest/java/fake/HttpClientStub.java | 0 .../java/fake/HttpRequestMock.java | 0 .../java/fake/HttpRequestStub.java | 0 .../java/fake/HttpResponseMock.java | 0 .../java/fake/HttpResponseMockDispatcher.java | 0 .../java/fake/HttpResponseStub.java | 0 .../java/fake/HttpStreamRequestMock.java | 0 .../java/fake/HttpStreamResponseMock.java | 0 .../java/fake/LifecycleManagerStub.java | 0 .../java/fake/SplitClientStub.java | 0 .../fake/SplitEventExecutorResourcesMock.java | 0 .../java/fake/SyncManagerStub.java | 0 .../java/fake/SynchronizerSpyImpl.java | 0 .../androidTest/java/helper/DataSample.kt | 0 .../java/helper/DatabaseHelper.java | 0 .../androidTest/java/helper/FileHelper.java | 0 .../java/helper/ImpressionListenerHelper.java | 0 .../java/helper/IntegrationHelper.java | 0 .../java/helper/SplitEventTaskHelper.java | 0 .../helper/TestableSplitConfigBuilder.java | 0 .../ImpressionPropertiesIntegrationTest.java | 0 .../impressions/ImpressionUtilsTest.java | 0 .../observer/DedupeIntegrationTest.java | 0 ...sionsObserverCacheImplIntegrationTest.java | 0 .../observer/ImpressionsObserverTest.java | 0 .../observer/ListenableLruCacheTest.java | 0 .../tests/database/AttributesDaoTest.java | 0 .../database/DatabaseInitializationTest.java | 0 .../tests/database/GeneralInfoDaoTest.java | 0 .../java/tests/database/GenericDaoTest.java | 0 .../tests/database/ImpressionDaoTest.java | 0 .../ImpressionsObserverCacheDaoTest.java | 0 .../tests/database/MyLargeSegmentDaoTest.java | 0 .../java/tests/database/MySegmentDaoTest.java | 0 .../database/RuleBasedSegmentDaoTest.java | 0 .../java/tests/database/SplitDaoTest.java | 0 .../java/tests/database/TrackDaoTest.java | 0 .../tests/database/UniqueKeysDaoTest.java | 0 .../integration/FlagsSpecInRequestTest.java | 0 .../integration/InitialChangeNumberTest.java | 0 .../tests/integration/IntegrationTest.java | 0 .../tests/integration/LifecyleOnBGTest.java | 0 .../integration/MySegmentUpdatedTest.java | 0 .../MySegmentsServerErrorTest.java | 0 .../tests/integration/ProxyFactoryTest.java | 0 .../tests/integration/SingleSyncTest.java | 0 .../SplitChangesCdnBypassTest.java | 0 .../SplitChangesServerErrorTest.java | 0 .../tests/integration/SplitChangesTest.java | 0 .../SplitFactoryFreshInstallTest.java | 0 .../SplitFetchSpecificSplitTest.java | 0 .../SplitsTwoDifferentApiKeyTest.java | 0 .../java/tests/integration/TrackTest.java | 0 .../attributes/AttributesIntegrationTest.java | 0 .../encryption/EncryptionTest.java | 0 .../fallback/FallbackTreatmentsTest.java | 0 .../integration/init/InitializationTest.java | 0 .../largesegments/LargeSegmentTestHelper.java | 0 .../LargeSegmentsStreamingTest.java | 0 .../largesegments/LargeSegmentsTest.java | 0 .../matcher/PrerequisitesTest.java | 0 .../matcher/SemverMatcherTest.java | 0 .../matcher/UnsupportedMatcherTest.java | 0 .../integration/pin/CertPinningTest.java | 0 .../rbs/OutdatedProxyIntegrationTest.java | 0 .../rbs/RuleBasedSegmentsIntegrationTest.java | 0 .../RolloutCacheManagerIntegrationTest.java | 0 .../sets/FlagSetsEvaluationTest.java | 0 .../sets/FlagSetsMultipleFactoryTest.java | 0 .../integration/sets/FlagSetsPollingTest.java | 0 .../sets/FlagSetsStreamingTest.java | 0 .../shared/BaseSharedClientsTest.java | 0 .../shared/InterdependentSplitsTest.java | 0 .../shared/MySegmentsBeforeSplitsTest.java | 0 .../shared/SharedClientsIntegrationTest.java | 0 .../tests/integration/shared/TestingData.java | 0 .../integration/shared/TestingHelper.java | 0 .../streaming/AblyErrorBaseTest.java | 0 .../integration/streaming/AblyErrorTest.java | 0 .../streaming/CleanUpDatabaseTest.java | 0 .../integration/streaming/ControlTest.java | 0 .../streaming/ImpressionsCountTest.java | 0 .../MySegmentsChangeV2MultiClientTest.java | 0 .../streaming/MySegmentsChangeV2Test.java | 0 .../streaming/MySegmentsSyncProcessTest.java | 0 .../streaming/OccupancyBaseTest.java | 0 .../integration/streaming/OccupancyTest.java | 0 .../streaming/SdkUpdateStreamingTest.java | 0 ...plitChangeNotificationIntegrationTest.java | 0 .../streaming/SplitsKillProcessTest.java | 0 .../streaming/SplitsSyncProcessTest.java | 0 .../streaming/SseAuthFail4xxTest.java | 0 .../streaming/SseAuthFail5xxTest.java | 0 .../SseConnectionExpiredTokenTest.java | 0 .../streaming/SseConnectionFail5xxTest.java | 0 .../StreamingDisabledInConfigTest.java | 0 .../streaming/StreamingDisabledTest.java | 0 .../StreamingInitializationTest.java | 0 .../SyncGuardianIntegrationTest.java | 0 .../telemetry/TelemetryIntegrationTest.java | 0 .../telemetry/TelemetryOccupancyTest.java | 0 .../TelemetryStreamingErrorTest.java | 0 .../toggle/ImpressionsToggleTest.java | 0 .../userconsent/UserConsentModeDebugTest.kt | 0 .../userconsent/UserConsentModeNoneTest.kt | 0 .../UserConsentModeOptimizedTest.kt | 0 .../LocalhostPropertiesFileParserTest.java | 0 .../java/tests/localhost/LocalhostTest.java | 0 .../java/tests/service/CompressionTest.java | 0 .../java/tests/service/EventsManagerTest.java | 0 .../java/tests/service/EventsRequestTest.java | 0 .../tests/service/ImpressionsRequestTest.java | 0 .../MySegmentV2PayloadDecoderTest.java | 0 .../tests/service/SdkUpdatePollingTest.java | 0 .../tests/service/SseJwtTokenParserTest.java | 0 .../service/UniqueKeysIntegrationTest.java | 0 .../java/tests/service/UrlSanitizerTest.java | 0 .../tests/storage/GeneralInfoStorageTest.java | 0 .../tests/storage/LoadMySegmentsTaskTest.java | 0 .../java/tests/storage/LoadSplitTaskTest.java | 0 .../tests/storage/MySegmentsStorageTest.java | 0 .../storage/PersistentEventStorageTest.java | 0 .../PersistentImpressionCountStorageTest.java | 0 .../PersistentImpressionStorageTest.java | 0 .../PersistentMyLargeSegmentStorageTest.java | 0 .../PersistentMySegmentStorageTest.java | 0 .../storage/PersistentSplitsStorageTest.java | 0 .../java/tests/storage/SplitsStorageTest.java | 0 .../tests/storage/cipher/CBCCipherTest.kt | 0 .../tests/storage/cipher/KeyManagerTest.java | 0 .../provider/LegacyKeyProviderTest.java | 0 .../SecureKeyStorageProviderTest.java | 0 .../tests/workmanager/WMWorkersSetupTest.java | 0 .../workmanager/WorkManagerWrapperTest.java | 0 .../src/main/AndroidManifest.xml | 3 + .../AlwaysReturnControlSplitClient.java | 0 .../io/split/android/client/Destroyer.java | 0 .../android/client/EvaluationOptions.java | 0 .../android/client/EvaluationResult.java | 0 .../io/split/android/client/Evaluator.java | 0 .../split/android/client/EvaluatorImpl.java | 0 .../split/android/client/EventsTracker.java | 0 .../android/client/EventsTrackerImpl.java | 0 .../android/client/FeatureFlagFilter.java | 0 .../split/android/client/FilterBuilder.java | 0 .../split/android/client/FilterGrouper.java | 0 .../split/android/client/FlagSetsFilter.java | 0 .../android/client/FlagSetsFilterImpl.java | 0 .../client/ProcessedEventProperties.java | 0 .../android/client/PropertyValidatorImpl.java | 0 .../RetryBackoffCounterTimerFactory.java | 0 .../client/RolloutCacheConfiguration.java | 0 .../android/client/ServiceEndpoints.java | 0 .../io/split/android/client/SplitClient.java | 0 .../android/client/SplitClientConfig.java | 0 .../android/client/SplitClientFactory.java | 0 .../client/SplitClientFactoryImpl.java | 0 .../split/android/client/SplitClientImpl.java | 0 .../io/split/android/client/SplitFactory.java | 0 .../android/client/SplitFactoryBuilder.java | 0 .../android/client/SplitFactoryHelper.java | 0 .../android/client/SplitFactoryImpl.java | 0 .../io/split/android/client/SplitFilter.java | 0 .../io/split/android/client/SplitManager.java | 0 .../android/client/SplitManagerImpl.java | 0 .../io/split/android/client/SplitResult.java | 0 .../io/split/android/client/SyncConfig.java | 0 .../split/android/client/TestingConfig.java | 0 .../split/android/client/TreatmentLabels.java | 0 .../android/client/UserConsentManager.java | 0 .../client/UserConsentManagerImpl.java | 0 .../java/io/split/android/client/api/Key.java | 0 .../split/android/client/api/SplitView.java | 0 .../client/attributes/AttributesManager.java | 0 .../attributes/AttributesManagerFactory.java | 0 .../AttributesManagerFactoryImpl.java | 0 .../attributes/AttributesManagerImpl.java | 0 .../client/attributes/AttributesMerger.java | 0 .../attributes/AttributesMergerImpl.java | 0 .../client/common/CompressionType.java | 0 .../common/CompressionUtilProvider.java | 0 .../split/android/client/dtos/Algorithm.java | 0 .../client/dtos/AllSegmentsChange.java | 0 .../client/dtos/BetweenMatcherData.java | 0 .../client/dtos/BetweenStringMatcherData.java | 0 .../android/client/dtos/ChunkHeader.java | 0 .../split/android/client/dtos/Condition.java | 0 .../android/client/dtos/ConditionType.java | 0 .../io/split/android/client/dtos/Counter.java | 0 .../split/android/client/dtos/DataType.java | 0 .../client/dtos/DependencyMatcherData.java | 0 .../client/dtos/DeprecatedKeyImpression.java | 0 .../io/split/android/client/dtos/Event.java | 0 .../split/android/client/dtos/Excluded.java | 0 .../android/client/dtos/ExcludedSegment.java | 0 .../io/split/android/client/dtos/Helper.java | 0 .../android/client/dtos/HttpProxyDto.java | 0 .../android/client/dtos/Identifiable.java | 0 .../android/client/dtos/KeyImpression.java | 0 .../android/client/dtos/KeySelector.java | 0 .../io/split/android/client/dtos/Matcher.java | 0 .../android/client/dtos/MatcherCombiner.java | 0 .../android/client/dtos/MatcherGroup.java | 0 .../android/client/dtos/MatcherType.java | 0 .../split/android/client/dtos/Partition.java | 0 .../android/client/dtos/Prerequisite.java | 0 .../android/client/dtos/RuleBasedSegment.java | 0 .../client/dtos/RuleBasedSegmentChange.java | 0 .../io/split/android/client/dtos/Segment.java | 0 .../android/client/dtos/SegmentResponse.java | 0 .../android/client/dtos/SegmentsChange.java | 0 .../client/dtos/SerializableEvent.java | 0 .../io/split/android/client/dtos/Split.java | 0 .../android/client/dtos/SplitChange.java | 0 .../io/split/android/client/dtos/Status.java | 0 .../client/dtos/TargetingRulesChange.java | 0 .../android/client/dtos/TestImpressions.java | 0 .../io/split/android/client/dtos/URN.java | 0 .../client/dtos/UnaryNumericMatcherData.java | 0 .../UserDefinedLargeSegmentMatcherData.java | 0 .../dtos/UserDefinedSegmentMatcherData.java | 0 .../client/dtos/WhitelistMatcherData.java | 0 .../client/events/BaseEventsManager.java | 0 .../events/EventsManagerCoordinator.java | 0 .../client/events/EventsManagerRegistry.java | 0 .../client/events/ISplitEventsManager.java | 0 .../events/ListenableEventsManager.java | 0 .../android/client/events/SplitEvent.java | 0 .../android/client/events/SplitEventTask.java | 0 ...ventTaskMethodNotImplementedException.java | 0 .../client/events/SplitEventsManager.java | 0 .../client/events/SplitInternalEvent.java | 0 .../executors/ClientEventSplitTask.java | 0 .../events/executors/SplitEventExecutor.java | 0 .../executors/SplitEventExecutorFactory.java | 0 .../SplitEventExecutorResources.java | 0 .../SplitEventExecutorResourcesImpl.java | 0 .../SplitEventExecutorWithClient.java | 0 .../ChangeNumberExceptionWrapper.java | 0 .../MySegmentsParsingException.java | 0 .../exceptions/ParentIsControlException.java | 0 .../SplitInstantiationException.java | 0 .../client/factory/FactoryMonitor.java | 0 .../client/factory/FactoryMonitorImpl.java | 0 .../client/fallback/FallbackTreatment.java | 0 .../FallbackTreatmentsCalculator.java | 0 .../FallbackTreatmentsCalculatorImpl.java | 0 .../FallbackTreatmentsConfiguration.java | 0 .../client/fallback/FallbacksSanitizer.java | 0 .../fallback/FallbacksSanitizerImpl.java | 0 .../impressions/DecoratedImpression.java | 0 .../DecoratedImpressionListener.java | 0 .../client/impressions/Impression.java | 0 .../impressions/ImpressionListener.java | 0 .../impressions/ImpressionLoggingTask.java | 0 .../impressions/SyncImpressionListener.java | 0 .../client/lifecycle/SplitLifecycleAware.java | 0 .../lifecycle/SplitLifecycleManager.java | 0 .../lifecycle/SplitLifecycleManagerImpl.java | 0 .../client/localhost/LocalhostFileParser.java | 0 .../LocalhostImpressionsListener.java | 0 .../LocalhostMySegmentsStorageContainer.java | 0 .../LocalhostPropertiesFileParser.java | 0 .../LocalhostRuleBasedSegmentsStorage.java | 0 ...lhostRuleBasedSegmentsStorageProvider.java | 0 .../localhost/LocalhostSplitClient.java | 0 .../localhost/LocalhostSplitFactory.java | 0 .../localhost/LocalhostSplitsStorage.java | 0 .../localhost/LocalhostSynchronizer.java | 0 .../localhost/LocalhostYamlFileParser.java | 0 .../android/client/localhost/SplitHelper.java | 0 .../LocalhostSplitClientContainerImpl.java | 0 .../android/client/network/Algorithm.java | 0 .../client/network/AuthenticatedRequest.java | 0 .../android/client/network/Authenticator.java | 0 .../android/client/network/Base64Decoder.java | 0 .../android/client/network/Base64Encoder.java | 0 .../client/network/BaseHttpResponse.java | 0 .../client/network/BaseHttpResponseImpl.java | 0 .../network/BasicCredentialsProvider.java | 0 .../network/BearerCredentialsProvider.java | 0 .../client/network/CertificateChecker.java | 0 .../network/CertificateCheckerHelper.java | 0 .../network/CertificateCheckerImpl.java | 0 .../client/network/CertificatePin.java | 0 .../CertificatePinningConfiguration.java | 0 ...rtificatePinningConfigurationProvider.java | 0 .../CertificatePinningFailureListener.java | 0 .../android/client/network/ChainCleaner.java | 0 .../client/network/ChainCleanerImpl.java | 0 .../client/network/DefaultBase64Decoder.java | 0 .../client/network/DefaultBase64Encoder.java | 0 .../client/network/DevelopmentSslConfig.java | 0 .../android/client/network/HttpClient.java | 0 .../client/network/HttpClientImpl.java | 0 .../android/client/network/HttpException.java | 0 .../android/client/network/HttpMethod.java | 0 .../network/HttpOverTunnelExecutor.java | 0 .../android/client/network/HttpProxy.java | 0 .../android/client/network/HttpRequest.java | 0 .../client/network/HttpRequestHelper.java | 0 .../client/network/HttpRequestImpl.java | 0 .../android/client/network/HttpResponse.java | 0 .../HttpResponseConnectionAdapter.java | 0 .../client/network/HttpResponseImpl.java | 0 .../client/network/HttpStreamRequest.java | 0 .../client/network/HttpStreamRequestImpl.java | 0 .../client/network/HttpStreamResponse.java | 0 .../network/HttpStreamResponseImpl.java | 0 .../client/network/LegacyTlsUpdater.java | 0 .../client/network/PercentEscaper.java | 0 .../android/client/network/PinEncoder.java | 0 .../client/network/PinEncoderImpl.java | 0 .../network/ProxyCacertConnectionHandler.java | 0 .../client/network/ProxyConfiguration.java | 0 .../network/ProxyCredentialsProvider.java | 0 .../ProxySslSocketFactoryProvider.java | 0 .../ProxySslSocketFactoryProviderImpl.java | 0 .../client/network/RawHttpResponseParser.java | 0 .../android/client/network/SdkTargetPath.java | 0 .../network/SplitAuthenticatedRequest.java | 0 .../client/network/SplitAuthenticator.java | 0 .../network/SplitBasicAuthenticator.java | 0 .../network/SplitHttpHeadersBuilder.java | 0 .../SplitUrlConnectionAuthenticator.java | 0 .../network/SslProxyTunnelEstablisher.java | 0 .../network/Tls12OnlySocketFactory.java | 0 .../client/network/TrustManagerProvider.java | 0 .../android/client/network/URIBuilder.java | 0 .../client/network/UnicodeEscaper.java | 0 .../android/client/network/UrlEscapers.java | 0 .../android/client/network/UrlSanitizer.java | 0 .../client/network/UrlSanitizerImpl.java | 0 .../client/service/CleanUpDatabaseTask.java | 0 .../client/service/ServiceConstants.java | 0 .../client/service/ServiceFactory.java | 0 .../client/service/SplitApiFacade.java | 0 .../attributes/AttributeTaskFactory.java | 0 .../attributes/AttributeTaskFactoryImpl.java | 0 ...learAttributesInPersistentStorageTask.java | 0 .../attributes/LoadAttributesTask.java | 0 ...dateAttributesInPersistentStorageTask.java | 0 .../service/events/EventsRecorderTask.java | 0 .../events/EventsRecorderTaskConfig.java | 0 .../events/EventsRequestBodySerializer.java | 0 .../executor/SplitBaseTaskExecutor.java | 0 .../SplitClientEventTaskExecutor.java | 0 .../SplitSingleThreadTaskExecutor.java | 0 .../client/service/executor/SplitTask.java | 0 .../service/executor/SplitTaskBatchItem.java | 0 .../executor/SplitTaskBatchWrapper.java | 0 .../executor/SplitTaskExecutionInfo.java | 0 .../executor/SplitTaskExecutionListener.java | 0 .../executor/SplitTaskExecutionStatus.java | 0 .../service/executor/SplitTaskExecutor.java | 0 .../executor/SplitTaskExecutorImpl.java | 0 .../service/executor/SplitTaskFactory.java | 0 .../executor/SplitTaskFactoryImpl.java | 0 .../executor/SplitTaskSerialWrapper.java | 0 .../service/executor/SplitTaskType.java | 0 .../client/service/executor/TaskWrapper.java | 0 .../executor/ThreadFactoryBuilder.java | 0 .../parallel/SplitDeferredTaskItem.java | 0 .../parallel/SplitParallelTaskExecutor.java | 0 .../SplitParallelTaskExecutorFactory.java | 0 .../SplitParallelTaskExecutorFactoryImpl.java | 0 .../SplitParallelTaskExecutorImpl.java | 0 .../client/service/http/HttpFetcher.java | 0 .../service/http/HttpFetcherException.java | 0 .../client/service/http/HttpFetcherImpl.java | 0 .../service/http/HttpGeneralException.java | 0 .../client/service/http/HttpRecorder.java | 0 .../service/http/HttpRecorderException.java | 0 .../client/service/http/HttpRecorderImpl.java | 0 .../http/HttpRequestBodySerializer.java | 0 .../service/http/HttpResponseParser.java | 0 .../http/HttpResponseParserException.java | 0 .../service/http/HttpSseAuthTokenFetcher.java | 0 .../client/service/http/HttpStatus.java | 0 .../mysegments/MySegmentsFetcherFactory.java | 0 .../MySegmentsFetcherFactoryImpl.java | 0 .../service/impressions/ImpressionHasher.java | 0 .../impressions/ImpressionManager.java | 0 .../impressions/ImpressionManagerConfig.java | 0 .../ImpressionManagerRetryTimerProvider.java | 0 ...pressionManagerRetryTimerProviderImpl.java | 0 .../service/impressions/ImpressionUtils.java | 0 .../service/impressions/ImpressionsCount.java | 0 .../ImpressionsCountPerFeature.java | 0 .../ImpressionsCountRecorderTask.java | 0 ...ImpressionsCountRequestBodySerializer.java | 0 .../impressions/ImpressionsCounter.java | 0 .../service/impressions/ImpressionsMode.java | 0 .../impressions/ImpressionsRecorderTask.java | 0 .../ImpressionsRecorderTaskConfig.java | 0 .../ImpressionsRequestBodySerializer.java | 0 .../impressions/ImpressionsTaskFactory.java | 0 .../impressions/KeyImpressionSerializer.java | 0 .../service/impressions/MemoizedSupplier.java | 0 .../impressions/SaveImpressionsCountTask.java | 0 .../StrategyImpressionManager.java | 0 .../observer/ImpressionsObserver.java | 0 .../observer/ImpressionsObserverCache.java | 0 .../ImpressionsObserverCacheImpl.java | 0 .../observer/ImpressionsObserverImpl.java | 0 .../observer/ListenableLruCache.java | 0 .../observer/PeriodicPersistenceTask.java | 0 ...istentImpressionsObserverCacheStorage.java | 0 ...istentImpressionsObserverCacheStorage.java | 0 .../impressions/strategy/DebugStrategy.java | 0 .../impressions/strategy/DebugTracker.java | 0 .../strategy/ImpressionStrategyConfig.java | 0 .../strategy/ImpressionStrategyProvider.java | 0 .../impressions/strategy/NoneStrategy.java | 0 .../impressions/strategy/NoneTracker.java | 0 .../strategy/OptimizedStrategy.java | 0 .../strategy/OptimizedTracker.java | 0 .../impressions/strategy/PeriodicTracker.java | 0 .../impressions/strategy/ProcessStrategy.java | 0 .../service/impressions/strategy/Utils.java | 0 .../service/impressions/unique/MTK.java | 0 .../unique/MTKRequestBodySerializer.java | 0 .../unique/SaveUniqueImpressionsTask.java | 0 .../service/impressions/unique/UniqueKey.java | 0 .../unique/UniqueKeysRecorderTask.java | 0 .../unique/UniqueKeysRecorderTaskConfig.java | 0 .../impressions/unique/UniqueKeysTracker.java | 0 .../unique/UniqueKeysTrackerImpl.java | 0 .../mysegments/AllSegmentsResponseParser.java | 0 .../mysegments/LoadMySegmentsTask.java | 0 .../mysegments/LoadMySegmentsTaskConfig.java | 0 .../mysegments/MySegmentUpdateParams.java | 0 .../mysegments/MySegmentsBulkSyncTask.java | 0 .../mysegments/MySegmentsSyncTask.java | 0 .../mysegments/MySegmentsSyncTaskConfig.java | 0 .../mysegments/MySegmentsTaskFactory.java | 0 .../MySegmentsTaskFactoryConfiguration.java | 0 .../mysegments/MySegmentsTaskFactoryImpl.java | 0 .../MySegmentsTaskFactoryProvider.java | 0 .../MySegmentsTaskFactoryProviderImpl.java | 0 .../mysegments/MySegmentsUpdateTask.java | 0 .../MySegmentsUpdateTaskConfig.java | 0 .../rules/LoadRuleBasedSegmentsTask.java | 0 .../ProcessedRuleBasedSegmentChange.java | 0 .../RuleBasedSegmentChangeProcessor.java | 0 .../RuleBasedSegmentInPlaceUpdateTask.java | 0 .../rules/TargetingRulesResponseParser.java | 0 .../splits/FeatureFlagProcessStrategy.java | 0 .../splits/FilterSplitsInCacheTask.java | 0 .../client/service/splits/LoadSplitsTask.java | 0 .../splits/OutdatedSplitProxyHandler.java | 0 .../RuleBasedSegmentInPlaceUpdateTask.java | 0 .../service/splits/SplitChangeProcessor.java | 0 .../splits/SplitChangeResponseParser.java | 0 .../splits/SplitInPlaceUpdateTask.java | 0 .../client/service/splits/SplitKillTask.java | 0 .../service/splits/SplitsSyncHelper.java | 0 .../client/service/splits/SplitsSyncTask.java | 0 .../service/splits/SplitsUpdateTask.java | 0 .../service/splits/TargetingRulesCache.java | 0 .../SseAuthenticationResponseParser.java | 0 .../service/sseclient/BackoffCounter.java | 0 .../service/sseclient/EventStreamParser.java | 0 .../FixedIntervalBackoffCounter.java | 0 .../sseclient/InvalidJwtTokenException.java | 0 .../sseclient/ReconnectBackoffCounter.java | 0 .../service/sseclient/SseAuthToken.java | 0 .../sseclient/SseAuthenticationResponse.java | 0 .../service/sseclient/SseJwtParser.java | 0 .../client/service/sseclient/SseJwtToken.java | 0 .../BroadcastedEventListener.java | 0 .../feedbackchannel/DelayStatusEvent.java | 0 .../PushManagerEventBroadcaster.java | 0 .../feedbackchannel/PushStatusEvent.java | 0 .../notifications/ControlNotification.java | 0 .../notifications/HashingAlgorithm.java | 0 .../notifications/IncomingNotification.java | 0 .../IncomingNotificationType.java | 0 .../InstantUpdateChangeNotification.java | 0 .../sseclient/notifications/KeyList.java | 0 .../notifications/MembershipNotification.java | 0 .../MySegmentUpdateStrategy.java | 0 .../MySegmentsV2PayloadDecoder.java | 0 .../notifications/NotificationParser.java | 0 .../notifications/NotificationProcessor.java | 0 .../notifications/NotificationType.java | 0 .../notifications/OccupancyNotification.java | 0 .../notifications/RawNotification.java | 0 .../RuleBasedSegmentChangeNotification.java | 0 .../notifications/SplitKillNotification.java | 0 .../SplitsChangeNotification.java | 0 .../notifications/StreamingError.java | 0 .../MembershipsNotificationProcessor.java | 0 .../MembershipsNotificationProcessorImpl.java | 0 ...mbershipsNotificationProcessorFactory.java | 0 ...shipsNotificationProcessorFactoryImpl.java | 0 ...ntsNotificationProcessorConfiguration.java | 0 ...SegmentsNotificationProcessorRegistry.java | 0 .../mysegments/SyncDelayCalculator.java | 0 .../mysegments/SyncDelayCalculatorImpl.java | 0 .../reactor/MySegmentsUpdateWorker.java | 0 .../MySegmentsUpdateWorkerRegistry.java | 0 .../MySegmentsUpdateWorkerRegistryImpl.java | 0 .../sseclient/reactor/SplitUpdatesWorker.java | 0 .../sseclient/reactor/UpdateWorker.java | 0 .../sseclient/BackoffCounterTimer.java | 0 .../sseclient/NotificationManagerKeeper.java | 0 .../sseclient/PushNotificationManager.java | 0 ...hNotificationManagerDeferredStartTask.java | 0 .../sseclient/RetryBackoffCounterTimer.java | 0 .../sseclient/SseAuthenticationResult.java | 0 .../sseclient/sseclient/SseAuthenticator.java | 0 .../sseclient/sseclient/SseClient.java | 0 .../sseclient/sseclient/SseClientImpl.java | 0 .../sseclient/SseDisconnectionTimer.java | 0 .../sseclient/sseclient/SseHandler.java | 0 .../sseclient/SseRefreshTokenTimer.java | 0 .../sseclient/StreamingComponents.java | 0 .../FeatureFlagsSynchronizer.java | 0 .../FeatureFlagsSynchronizerImpl.java | 0 .../synchronizer/LoadLocalDataListener.java | 0 .../synchronizer/MySegmentsChangeChecker.java | 0 .../synchronizer/RecorderSyncHelper.java | 0 .../synchronizer/RecorderSyncHelperImpl.java | 0 .../synchronizer/RolloutCacheManager.java | 0 .../synchronizer/RolloutCacheManagerImpl.java | 0 .../synchronizer/SplitsChangeChecker.java | 0 .../service/synchronizer/SyncGuardian.java | 0 .../synchronizer/SyncGuardianImpl.java | 0 .../service/synchronizer/SyncManager.java | 0 .../service/synchronizer/SyncManagerImpl.java | 0 .../service/synchronizer/Synchronizer.java | 0 .../synchronizer/SynchronizerImpl.java | 0 .../service/synchronizer/SynchronizerSpy.java | 0 .../service/synchronizer/ThreadUtils.java | 0 .../synchronizer/WorkManagerWrapper.java | 0 .../attributes/AttributesSynchronizer.java | 0 .../AttributesSynchronizerFactory.java | 0 .../AttributesSynchronizerFactoryImpl.java | 0 .../AttributesSynchronizerImpl.java | 0 .../AttributesSynchronizerRegistry.java | 0 .../AttributesSynchronizerRegistryImpl.java | 0 .../MySegmentsBackgroundSyncScheduleTask.java | 0 .../mysegments/MySegmentsSynchronizer.java | 0 .../MySegmentsSynchronizerFactory.java | 0 .../MySegmentsSynchronizerFactoryImpl.java | 0 .../MySegmentsSynchronizerImpl.java | 0 .../MySegmentsSynchronizerRegistry.java | 0 .../MySegmentsSynchronizerRegistryImpl.java | 0 .../MySegmentsWorkManagerWrapper.java | 0 .../TelemetryConfigRecorderTask.java | 0 .../telemetry/TelemetryStatsRecorderTask.java | 0 .../telemetry/TelemetryTaskFactory.java | 0 .../telemetry/TelemetryTaskFactoryImpl.java | 0 .../workmanager/BaseSegmentsSyncWorker.java | 0 .../workmanager/EventsRecorderWorker.java | 0 .../workmanager/HttpClientProvider.java | 0 .../ImpressionsRecorderWorker.java | 0 .../workmanager/MySegmentsSyncWorker.java | 0 .../service/workmanager/SplitWorker.java | 0 .../workmanager/UniqueKeysRecorderWorker.java | 0 .../workmanager/splits/FetcherProvider.java | 0 .../splits/SplitChangeProcessorProvider.java | 0 .../workmanager/splits/SplitsSyncWorker.java | 0 .../splits/SplitsSyncWorkerFilterBuilder.java | 0 .../splits/SplitsSyncWorkerParams.java | 0 .../splits/SplitsSyncWorkerTaskBuilder.java | 0 .../workmanager/splits/StorageProvider.java | 0 .../splits/SyncHelperProvider.java | 0 .../shared/BaseSplitClientContainer.java | 0 .../shared/ClientComponentsRegister.java | 0 .../shared/ClientComponentsRegisterImpl.java | 0 .../client/shared/SplitClientContainer.java | 0 .../shared/SplitClientContainerImpl.java | 0 .../android/client/shared/UserConsent.java | 0 .../storage/RolloutDefinitionsCache.java | 0 .../storage/attributes/AttributesStorage.java | 0 .../AttributesStorageContainer.java | 0 .../AttributesStorageContainerImpl.java | 0 .../attributes/AttributesStorageImpl.java | 0 .../PersistentAttributesStorage.java | 0 .../SqLitePersistentAttributesStorage.java | 0 .../storage/cipher/ApplyCipherTask.java | 0 .../client/storage/cipher/CBCCipher.java | 0 .../storage/cipher/CBCCipherProvider.java | 0 .../client/storage/cipher/CipherProvider.java | 0 .../client/storage/cipher/DBCipher.java | 0 .../cipher/EncryptionMigrationTask.java | 0 .../client/storage/cipher/KeyManager.java | 0 .../client/storage/cipher/NoOpCipher.java | 0 .../client/storage/cipher/ObjectPool.java | 0 .../storage/cipher/ObjectPoolFactory.java | 0 .../client/storage/cipher/SplitCipher.java | 0 .../storage/cipher/SplitCipherFactory.java | 0 .../storage/cipher/SplitEncryptionLevel.java | 0 .../storage/cipher/provider/KeyProvider.java | 0 .../cipher/provider/LegacyKeyProvider.java | 0 .../provider/SecureKeyStorageProvider.java | 0 .../client/storage/common/InBytesSizable.java | 0 .../storage/common/PersistentStorage.java | 0 .../RuleBasedSegmentStorageInitializer.java | 0 .../storage/common/SplitStorageContainer.java | 0 .../common/SqLitePersistentStorage.java | 0 .../client/storage/common/Storage.java | 0 .../client/storage/common/StoragePusher.java | 0 .../android/client/storage/db/EventDao.java | 0 .../client/storage/db/EventEntity.java | 0 .../client/storage/db/GeneralInfoDao.java | 0 .../client/storage/db/GeneralInfoEntity.java | 0 .../client/storage/db/ImpressionDao.java | 0 .../client/storage/db/ImpressionEntity.java | 0 .../storage/db/ImpressionsCountDao.java | 0 .../storage/db/ImpressionsCountEntity.java | 0 .../client/storage/db/MyLargeSegmentDao.java | 0 .../storage/db/MyLargeSegmentEntity.java | 0 .../client/storage/db/MySegmentDao.java | 0 .../client/storage/db/MySegmentEntity.java | 0 .../android/client/storage/db/SegmentDao.java | 0 .../client/storage/db/SegmentEntity.java | 0 .../android/client/storage/db/SplitDao.java | 0 .../client/storage/db/SplitEntity.java | 0 .../client/storage/db/SplitQueryDao.java | 0 .../client/storage/db/SplitQueryDaoImpl.java | 0 .../client/storage/db/SplitRoomDatabase.java | 0 .../client/storage/db/StorageFactory.java | 0 .../storage/db/StorageRecordStatus.java | 0 .../storage/db/attributes/AttributesDao.java | 0 .../db/attributes/AttributesEntity.java | 0 .../observer/ImpressionsObserverCacheDao.java | 0 .../ImpressionsObserverCacheEntity.java | 0 .../impressions/unique/UniqueKeyEntity.java | 0 .../db/impressions/unique/UniqueKeysDao.java | 0 .../storage/db/rbs/RuleBasedSegmentDao.java | 0 .../db/rbs/RuleBasedSegmentEntity.java | 0 .../client/storage/events/EventsStorage.java | 0 .../events/PersistentEventsStorage.java | 0 .../events/SqLitePersistentEventsStorage.java | 0 .../storage/general/GeneralInfoStorage.java | 0 .../general/GeneralInfoStorageImpl.java | 0 .../impressions/ImpressionsStorage.java | 0 .../PersistentImpressionsCountStorage.java | 0 .../PersistentImpressionsStorage.java | 0 .../PersistentImpressionsUniqueStorage.java | 0 ...LitePersistentImpressionsCountStorage.java | 0 .../SqLitePersistentImpressionsStorage.java | 0 .../SqlitePersistentUniqueStorage.java | 0 .../client/storage/legacy/FileStorage.java | 0 .../storage/legacy/FileStorageHelper.java | 0 .../client/storage/legacy/IStorage.java | 0 .../mysegments/EmptyMySegmentsStorage.java | 0 .../storage/mysegments/MySegmentsStorage.java | 0 .../MySegmentsStorageContainer.java | 0 .../MySegmentsStorageContainerImpl.java | 0 .../mysegments/MySegmentsStorageImpl.java | 0 .../PersistentMySegmentsStorage.java | 0 .../SqLitePersistentMySegmentsStorage.java | 0 .../android/client/storage/rbs/Clearer.java | 0 .../LazyRuleBasedSegmentStorageProvider.java | 0 .../PersistentRuleBasedSegmentStorage.java | 0 .../storage/rbs/RuleBasedSegmentSnapshot.java | 0 .../storage/rbs/RuleBasedSegmentStorage.java | 0 .../rbs/RuleBasedSegmentStorageConsumer.java | 0 .../rbs/RuleBasedSegmentStorageImpl.java | 0 .../rbs/RuleBasedSegmentStorageProducer.java | 0 .../RuleBasedSegmentStorageProducerImpl.java | 0 .../rbs/RuleBasedSegmentStorageProvider.java | 0 .../client/storage/rbs/SnapshotLoader.java | 0 ...LitePersistentRuleBasedSegmentStorage.java | 0 ...istentRuleBasedSegmentStorageProvider.java | 0 .../android/client/storage/rbs/Updater.java | 0 .../client/storage/splits/MetadataHelper.java | 0 .../splits/PersistentSplitsStorage.java | 0 .../storage/splits/ProcessedSplitChange.java | 0 .../splits/SplitEntityToSplitTransformer.java | 0 .../storage/splits/SplitListTransformer.java | 0 .../splits/SplitToSplitEntityTransformer.java | 0 .../client/storage/splits/SplitsSnapshot.java | 0 .../client/storage/splits/SplitsStorage.java | 0 .../storage/splits/SplitsStorageImpl.java | 0 .../splits/SqLitePersistentSplitsStorage.java | 0 .../TelemetryConfigBodySerializer.java | 0 .../client/telemetry/TelemetryHelper.java | 0 .../client/telemetry/TelemetryHelperImpl.java | 0 .../TelemetryStatsBodySerializer.java | 0 .../telemetry/TelemetrySynchronizer.java | 0 .../telemetry/TelemetrySynchronizerImpl.java | 0 .../telemetry/TelemetrySynchronizerStub.java | 0 .../client/telemetry/model/Config.java | 0 .../client/telemetry/model/EventTypeEnum.java | 0 .../model/EventsDataRecordsEnum.java | 0 .../telemetry/model/FactoryCounter.java | 0 .../client/telemetry/model/HttpErrors.java | 0 .../client/telemetry/model/HttpLatencies.java | 0 .../telemetry/model/ImpressionsDataType.java | 0 .../telemetry/model/ImpressionsMode.java | 0 .../client/telemetry/model/LastSync.java | 0 .../client/telemetry/model/Method.java | 0 .../telemetry/model/MethodExceptions.java | 0 .../telemetry/model/MethodLatencies.java | 0 .../client/telemetry/model/OperationMode.java | 0 .../client/telemetry/model/OperationType.java | 0 .../telemetry/model/PushCounterEvent.java | 0 .../client/telemetry/model/RefreshRates.java | 0 .../android/client/telemetry/model/Stats.java | 0 .../telemetry/model/UpdatesFromSSE.java | 0 .../client/telemetry/model/UrlOverrides.java | 0 .../streaming/AblyErrorStreamingEvent.java | 0 .../ConnectionEstablishedStreamingEvent.java | 0 .../streaming/OccupancyPriStreamingEvent.java | 0 .../streaming/OccupancySecStreamingEvent.java | 0 .../SseConnectionErrorStreamingEvent.java | 0 .../model/streaming/StreamingEvent.java | 0 .../StreamingStatusStreamingEvent.java | 0 .../SyncModeUpdateStreamingEvent.java | 0 .../streaming/TokenRefreshStreamingEvent.java | 0 .../model/streaming/UpdatesFromSSEEnum.java | 0 .../storage/BinarySearchLatencyTracker.java | 0 .../telemetry/storage/ILatencyTracker.java | 0 .../storage/InMemoryTelemetryStorage.java | 0 .../storage/NoOpTelemetryStorage.java | 0 .../storage/TelemetryConfigProvider.java | 0 .../storage/TelemetryConfigProviderImpl.java | 0 .../storage/TelemetryEvaluationConsumer.java | 0 .../storage/TelemetryEvaluationProducer.java | 0 .../storage/TelemetryInitConsumer.java | 0 .../storage/TelemetryInitProducer.java | 0 .../storage/TelemetryRuntimeConsumer.java | 0 .../storage/TelemetryRuntimeProducer.java | 0 .../storage/TelemetryStatsProvider.java | 0 .../storage/TelemetryStatsProviderImpl.java | 0 .../telemetry/storage/TelemetryStorage.java | 0 .../storage/TelemetryStorageConsumer.java | 0 .../storage/TelemetryStorageProducer.java | 0 .../telemetry/util/AtomicLongArray.java | 0 .../io/split/android/client/utils/BCrypt.java | 0 .../android/client/utils/Base64Util.java | 0 .../android/client/utils/CompressionUtil.java | 0 .../split/android/client/utils/FileUtils.java | 0 .../io/split/android/client/utils/Gzip.java | 0 .../client/utils/HttpProxySerializer.java | 0 .../io/split/android/client/utils/Json.java | 0 .../android/client/utils/MemoryUtils.java | 0 .../android/client/utils/MemoryUtilsImpl.java | 0 .../android/client/utils/MurmurHash3.java | 0 .../android/client/utils/StringHelper.java | 0 .../io/split/android/client/utils/Utils.java | 0 .../android/client/utils/YamlParser.java | 0 .../io/split/android/client/utils/Zlib.java | 0 .../utils/deserializer/EventDeserializer.java | 0 .../utils/serializer/DoubleSerializer.java | 0 .../client/validators/ApiKeyValidator.java | 0 .../validators/ApiKeyValidatorImpl.java | 0 .../validators/AttributesValidator.java | 0 .../validators/AttributesValidatorImpl.java | 0 .../client/validators/EventValidator.java | 0 .../client/validators/EventValidatorImpl.java | 0 .../validators/FlagSetsValidatorImpl.java | 0 .../client/validators/KeyValidator.java | 0 .../client/validators/KeyValidatorImpl.java | 0 .../client/validators/PrefixValidator.java | 0 .../validators/PrefixValidatorImpl.java | 0 .../client/validators/PropertyValidator.java | 0 .../validators/SplitFilterValidator.java | 0 .../client/validators/SplitValidator.java | 0 .../client/validators/SplitValidatorImpl.java | 0 .../client/validators/TreatmentManager.java | 0 .../validators/TreatmentManagerFactory.java | 0 .../TreatmentManagerFactoryImpl.java | 0 .../validators/TreatmentManagerHelper.java | 0 .../validators/TreatmentManagerImpl.java | 0 .../client/validators/ValidationConfig.java | 0 .../validators/ValidationErrorInfo.java | 0 .../validators/ValidationMessageLogger.java | 0 .../ValidationMessageLoggerImpl.java | 0 .../DefaultConditionsProvider.java | 0 .../engine/experiments/FetcherPolicy.java | 0 .../engine/experiments/ParsedCondition.java | 0 .../experiments/ParsedRuleBasedSegment.java | 0 .../engine/experiments/ParsedSplit.java | 0 .../android/engine/experiments/Parser.java | 0 .../engine/experiments/ParserCommons.java | 0 .../experiments/RuleBasedSegmentParser.java | 0 .../engine/experiments/SplitFetcher.java | 0 .../engine/experiments/SplitParser.java | 0 .../UnsupportedMatcherException.java | 0 .../engine/matchers/AllKeysMatcher.java | 0 .../engine/matchers/AttributeMatcher.java | 0 .../engine/matchers/BetweenMatcher.java | 0 .../engine/matchers/BooleanMatcher.java | 0 .../engine/matchers/CombiningMatcher.java | 0 .../engine/matchers/DependencyMatcher.java | 0 .../engine/matchers/EqualToMatcher.java | 0 .../matchers/GreaterThanOrEqualToMatcher.java | 0 .../matchers/InRuleBasedSegmentMatcher.java | 0 .../matchers/LessThanOrEqualToMatcher.java | 0 .../android/engine/matchers/Matcher.java | 0 .../engine/matchers/MySegmentsMatcher.java | 0 .../engine/matchers/PrerequisitesMatcher.java | 0 .../android/engine/matchers/Transformers.java | 0 .../collections/ContainsAllOfSetMatcher.java | 0 .../collections/ContainsAnyOfSetMatcher.java | 0 .../collections/EqualToSetMatcher.java | 0 .../collections/PartOfSetMatcher.java | 0 .../matchers/semver/BetweenSemverMatcher.java | 0 .../matchers/semver/EqualToSemverMatcher.java | 0 .../GreaterThanOrEqualToSemverMatcher.java | 0 .../matchers/semver/InListSemverMatcher.java | 0 .../LessThanOrEqualToSemverMatcher.java | 0 .../engine/matchers/semver/Semver.java | 0 .../matchers/semver/SemverParseException.java | 0 .../strings/ContainsAnyOfMatcher.java | 0 .../strings/EndsWithAnyOfMatcher.java | 0 .../strings/RegularExpressionMatcher.java | 0 .../strings/StartsWithAnyOfMatcher.java | 0 .../matchers/strings/WhitelistMatcher.java | 0 .../PausableScheduledThreadPoolExecutor.java | 0 ...usableScheduledThreadPoolExecutorImpl.java | 0 .../scheduler/PausableThreadPoolExecutor.java | 0 .../PausableThreadPoolExecutorImpl.java | 0 .../android/engine/splitter/Splitter.java | 0 .../io/split/android/grammar/Treatments.java | 0 .../java/helper/CompressionHelper.java | 0 .../sharedTest/java/helper/TestingData.java | 0 .../sharedTest/java/helper/TestingHelper.java | 0 .../fake/HttpStreamResponseMock.java | 0 .../test}/test/java/android/util/Base64.java | 0 .../java/io/split/android/BCryptTest.java | 0 .../io/split/android/FolderForApiKeyTest.java | 0 .../SplitConfigurationsParsingTests.java | 0 .../split/android/client/DestroyerTest.java | 0 .../android/client/EvaluationOptionsTest.java | 0 .../android/client/FactoryMonitorTest.java | 0 .../split/android/client/FileStorageTest.java | 0 .../android/client/FilterBuilderTest.java | 0 .../android/client/FilterGrouperTest.java | 0 .../client/FlagSetsFilterImplTest.java | 0 .../android/client/ImpressionsModeTest.java | 0 .../client/MySegmentsUriBuildersTest.java | 0 .../client/RolloutCacheConfigurationTest.java | 0 .../android/client/SplitClientConfigTest.java | 0 .../client/SplitClientImplAttributesTest.java | 0 .../client/SplitClientImplBaseTest.java | 0 .../SplitClientImplEvaluationOptionsTest.java | 0 .../client/SplitClientImplFlagSetsTest.java | 0 .../client/SplitClientImplLegacyTest.java | 0 .../android/client/SplitFactoryHelperTest.kt | 0 .../android/client/SplitManagerImplTest.java | 0 .../split/android/client/SyncConfigTest.java | 0 .../android/client/TreatmentLabelsTest.java | 0 ...TreatmentManagerEvaluationOptionsTest.java | 0 .../TreatmentManagerExceptionsTest.java | 0 .../client/TreatmentManagerTelemetryTest.java | 0 .../android/client/TreatmentManagerTest.java | 0 .../TreatmentManagerWithFlagSetsTest.java | 0 .../client/UserConsentManagerTest.java | 0 .../attributes/AttributesManagerImplTest.java | 0 .../attributes/AttributesMergerImplTest.java | 0 .../client/dtos/SplitDeserializationTest.java | 0 .../events/EventsManagerCoordinatorTest.java | 0 .../client/events/EventsManagerTest.java | 0 .../client/events/PropertyValidatorTest.java | 0 .../executors/ClientEventSplitTaskTest.java | 0 .../SplitEventExecutorFactoryTest.java | 0 .../SplitEventExecutorResourcesImplTest.java | 0 .../SplitEventExecutorWithClientTest.java | 0 .../fallback/FallbackTreatmentTest.java | 0 .../FallbackTreatmentsCalculatorTest.java | 0 .../FallbackTreatmentsConfigurationTest.java | 0 .../fallback/FallbacksSanitizerImplTest.java | 0 .../ImpressionLoggingTaskTest.java | 0 .../SyncImpressionListenerTest.java | 0 .../localhost/LocalhostSplitClientTest.java | 0 .../localhost/LocalhostSplitFactoryTest.java | 0 .../LocalhostSplitFactoryTestBuilder.java | 0 .../localhost/LocalhostYamlParserTest.java | 0 ...LocalhostSplitClientContainerImplTest.java | 0 .../BinarySearchLatencyTrackerTest.java | 0 .../network/CertificateCheckerHelperTest.java | 0 .../network/CertificateCheckerImplTest.java | 0 ...icatePinningConfigurationProviderTest.java | 0 .../CertificatePinningConfigurationTest.java | 0 .../client/network/ChainCleanerImplTest.java | 0 .../network/DefaultBase64EncoderTest.java | 0 .../client/network/HttpClientTest.java | 0 .../HttpClientTunnellingProxyTest.java | 0 .../network/HttpOverTunnelExecutorTest.java | 0 .../client/network/HttpRequestHelperTest.java | 0 .../HttpResponseConnectionAdapterTest.java | 0 .../network/HttpStreamResponseTest.java | 0 .../client/network/PinEncoderImplTest.java | 0 .../network/ProxyConfigurationTest.java | 0 ...ProxySslSocketFactoryProviderImplTest.java | 0 .../network/RawHttpResponseParserTest.java | 0 .../client/network/SdkTargetPathTest.java | 0 .../network/SplitAuthenticatorTest.java | 0 .../network/SplitBasicAuthenticatorTest.java | 0 .../SplitUrlConnectionAuthenticatorTest.java | 0 .../SslProxyTunnelEstablisherTest.java | 0 .../network/TrustManagerProviderTest.java | 0 .../service/EventsRecorderTaskTest.java | 0 .../service/FilterSplitsInCacheTaskTest.java | 0 .../client/service/HttpFetcherTest.java | 0 .../client/service/HttpRecorderTest.java | 0 .../client/service/ImpressionHasherTest.java | 0 .../ImpressionsCountRecorderTaskTest.java | 0 .../service/ImpressionsCounterTest.java | 0 .../service/ImpressionsRecorderTaskTest.java | 0 .../service/ImpressionsRequestParserTest.java | 0 .../client/service/LoadSplitsTaskTest.java | 0 .../service/MySegmentsChangesCheckerTest.java | 0 .../service/MySegmentsSyncTaskTest.java | 0 .../service/MySegmentsUpdateTaskTest.java | 0 .../service/SplitInPlaceUpdateTaskTest.java | 0 .../client/service/SplitKillTaskTest.java | 0 .../client/service/SplitSyncTaskTest.java | 0 .../client/service/SplitTaskExecutorTest.java | 0 .../client/service/SplitUpdateTaskTest.java | 0 .../service/SplitsChangesCheckerTest.java | 0 .../client/service/SplitsSyncHelperTest.java | 0 .../client/service/SynchronizerTest.java | 0 ...AttributesInPersistentStorageTaskTest.java | 0 .../attributes/LoadAttributesTaskTest.java | 0 ...AttributesInPersistentStorageTaskTest.java | 0 .../EventsRequestBodySerializerTest.java | 0 .../service/events/EventsTrackerTest.java | 0 .../executor/SplitTaskSerialWrapperTest.java | 0 .../executor/ThreadFactoryBuilderTest.java | 0 .../SplitParallelTaskExecutorImplTest.java | 0 .../http/HttpSseAuthTokenFetcherTest.java | 0 .../MySegmentsFetcherFactoryImplTest.java | 0 ...essionManagerRetryTimerProviderImplTest.kt | 0 .../ImpressionsRequestBodySerializerTest.java | 0 .../impressions/MemoizedSupplierTest.java | 0 .../StrategyImpressionManagerTest.kt | 0 .../ImpressionsObserverCacheImplTest.java | 0 .../observer/PeriodicPersistenceTaskTest.java | 0 ...ntImpressionsObserverCacheStorageTest.java | 0 .../impressions/strategy/DebugStrategyTest.kt | 0 .../impressions/strategy/DebugTrackerTest.kt | 0 .../impressions/strategy/NoneStrategyTest.kt | 0 .../impressions/strategy/NoneTrackerTest.kt | 0 .../strategy/OptimizedStrategyTest.kt | 0 .../strategy/OptimizedTrackerTest.kt | 0 .../impressions/strategy/UtilsTest.java | 0 .../unique/MTKRequestBodySerializerTest.java | 0 .../unique/SaveUniqueImpressionsTaskTest.java | 0 .../unique/UniqueKeysRecorderTaskTest.java | 0 .../unique/UniqueKeysTrackerImplTest.java | 0 .../AllSegmentsResponseParserTest.java | 0 .../LoadMySegmentsTaskConfigTest.java | 0 .../MySegmentsBulkSyncTaskTest.java | 0 .../MySegmentsSyncTaskConfigTest.java | 0 ...ySegmentsTaskFactoryConfigurationTest.java | 0 .../MySegmentsUpdateTaskConfigTest.java | 0 .../RuleBasedSegmentChangeProcessorTest.java | 0 ...RuleBasedSegmentInPlaceUpdateTaskTest.java | 0 .../TargetingRulesResponseParserTest.java | 0 .../service/splits/LoadSplitsTaskTest.java | 0 .../splits/OutdatedSplitProxyHandlerTest.java | 0 .../splits/SplitChangeProcessorTest.java | 0 .../SplitsSyncHelperFreshInstallTest.java | 0 .../splits/TargetingRulesCacheTest.java | 0 .../BackgroundDisconnectionTaskTest.java | 0 .../sseclient/EventStreamParserTest.java | 0 .../sseclient/MySegmentsUpdateWorkerTest.java | 0 .../NotificationManagerKeeperTest.java | 0 .../sseclient/NotificationParserTest.java | 0 .../sseclient/NotificationProcessorTest.java | 0 .../PushNotificationManagerTest.java | 0 .../ReconnectBackoffCounterTest.java | 0 .../sseclient/SplitUpdateWorkerTest.java | 0 .../sseclient/SseAuthenticatorTest.java | 0 .../service/sseclient/SseClientTest.java | 0 .../service/sseclient/SseHandlerTest.java | 0 .../SyncManagerChannelMessageTest.java | 0 .../service/sseclient/SyncManagerTest.java | 0 ...SegmentsNotificationProcessorImplTest.java | 0 .../mysegments/SyncDelayCalculatorTest.java | 0 ...ySegmentsUpdateWorkerRegistryImplTest.java | 0 ...ificationManagerDeferredStartTaskTest.java | 0 .../RetryBackoffCounterTimerTest.java | 0 .../sseclient/SseDisconnectionTimerTest.java | 0 .../SplitsChangeNotificationTest.java | 0 .../FeatureFlagsSynchronizerImplTest.java | 0 .../RecorderSyncHelperImplTest.java | 0 .../synchronizer/RolloutCacheManagerTest.kt | 0 .../synchronizer/SyncGuardianImplTest.java | 0 .../AttributesSynchronizerImplTest.java | 0 ...ttributesSynchronizerRegistryImplTest.java | 0 .../MySegmentsSynchronizerImplTest.java | 0 ...ySegmentsSynchronizerRegistryImplTest.java | 0 .../SynchronizerImplTelemetryTest.java | 0 .../TelemetryConfigRecorderTaskTest.java | 0 .../TelemetryStatsRecorderTaskTest.java | 0 .../workmanager/HttpClientProviderTest.java | 0 .../splits/FetcherProviderTest.java | 0 .../SplitsSyncWorkerFilterBuilderTest.java | 0 .../splits/SplitsSyncWorkerParamsTest.java | 0 .../SplitsSyncWorkerTaskBuilderTest.java | 0 .../splits/StorageProviderTest.java | 0 .../ClientComponentsRegisterImplTest.java | 0 .../shared/SplitClientContainerImplTest.java | 0 .../attributes/AttributesStorageImplTest.java | 0 ...SqLitePersistentAttributesStorageTest.java | 0 .../storage/cipher/ApplyCipherTaskTest.kt | 0 .../client/storage/cipher/CBCCipherTest.kt | 0 .../client/storage/cipher/DBCipherTest.kt | 0 .../cipher/EncryptionMigrationTaskTest.kt | 0 .../client/storage/cipher/NoOpCipherTest.kt | 0 .../client/storage/cipher/ObjectPoolTest.kt | 0 .../storage/cipher/SplitCipherFactoryTest.kt | 0 .../common/SplitStorageContainerTest.java | 0 .../storage/db/SplitQueryDaoImplTest.java | 0 .../storage/db/SplitRoomDatabaseTest.java | 0 .../storage/events/EventsStorageTest.java | 0 .../SqLitePersistentEventsStorageTest.java | 0 .../general/GeneralInfoStorageImplTest.java | 0 .../impressions/ImpressionsStorageTest.java | 0 ...PersistentImpressionsCountStorageTest.java | 0 ...qlitePersistentImpressionsStorageTest.java | 0 .../SqlitePersistentUniqueStorageTest.java | 0 .../MySegmentsStorageContainerImplTest.java | 0 ...ePersistentMyLargeSegmentsStorageTest.java | 0 ...SqLitePersistentMySegmentsStorageTest.java | 0 ...zyRuleBasedSegmentStorageProviderTest.java | 0 .../rbs/RuleBasedSegmentStorageImplTest.java | 0 ...leBasedSegmentStorageProducerImplTest.java | 0 .../storage/rbs/SnapshotLoaderTest.java | 0 ...PersistentRuleBasedSegmentStorageTest.java | 0 ...SegmentsPersistentStorageProviderTest.java | 0 .../client/storage/rbs/UpdaterTest.java | 0 .../SplitEntityToSplitTransformerTest.java | 0 .../SplitToSplitEntityTransformerTest.java | 0 .../SqLitePersistentSplitsStorageTest.java | 0 .../TelemetryConfigBodySerializerTest.java | 0 .../telemetry/TelemetryHelperImplTest.java | 0 .../TelemetryStatsBodySerializerTest.java | 0 .../TelemetrySynchronizerImplTest.java | 0 .../storage/InMemoryTelemetryStorageTest.java | 0 .../TelemetryConfigProviderImplTest.java | 0 .../TelemetryStatsProviderImplTest.java | 0 .../client/utils/HttpProxySerializerTest.java | 0 .../split/android/client/utils/JsonTest.java | 0 .../android/client/utils/PartitionTest.java | 0 .../android/client/utils/RepeatTest.java | 0 .../client/utils/SplitClientImplFactory.java | 0 .../deserializer/EventDeserializerTest.java | 0 .../validators/ApiKeyValidatorTest.java | 0 .../AttributesValidatorImplTest.java | 0 .../validators/EventTypeNameHelper.java | 0 .../client/validators/EventValidatorTest.java | 0 .../validators/FlagSetsValidatorImplTest.java | 0 .../client/validators/KeyValidatorTest.java | 0 .../validators/PrefixValidatorImplTest.java | 0 .../client/validators/SplitValidatorTest.java | 0 .../TreatmentManagerFactoryImplTest.java | 0 ...reatmentManagerFallbackTreatmentsTest.java | 0 .../TreatmentManagerHelperTest.java | 0 .../android/engine/ConditionsTestUtil.java | 0 .../DefaultConditionsProviderTest.java | 0 .../engine/experiments/EvaluatorTest.java | 0 .../PrerequisitesEvaluatorTest.java | 0 .../RuleBasedSegmentParserTest.java | 0 .../engine/experiments/SplitParserTest.java | 0 .../UnsupportedMatcherSplitParserTest.java | 0 .../engine/matchers/AllKeysMatcherTest.java | 0 .../engine/matchers/AttributeMatcherTest.java | 0 .../engine/matchers/BetweenMatcherTest.java | 0 .../engine/matchers/BooleanMatcherTest.java | 0 .../engine/matchers/CombiningMatcherTest.java | 0 .../engine/matchers/EqualToMatcherTest.java | 0 .../GreaterThanOrEqualToMatcherTest.java | 0 .../InRuleBasedSegmentMatcherTest.java | 0 .../LessThanOrEqualToMatcherTest.java | 0 .../engine/matchers/NegatableMatcherTest.java | 0 .../matchers/PrerequisitesMatcherTest.java | 0 .../engine/matchers/TransformersTest.java | 0 .../ContainsAllOfSetMatcherTest.java | 0 .../ContainsAnyOfSetMatcherTest.java | 0 .../collections/EqualToSetMatcherTest.java | 0 .../collections/PartOfSetMatcherTest.java | 0 .../semver/BetweenSemverMatcherTest.java | 0 .../semver/EqualToSemverMatcherTest.java | 0 ...GreaterThanOrEqualToSemverMatcherTest.java | 0 .../semver/InListSemverMatcherTest.java | 0 .../LessThanOrEqualToSemverMatcherTest.java | 0 .../engine/matchers/semver/SemverTest.java | 0 .../strings/ContainsAnyOfMatcherTest.java | 0 .../strings/EndsWithAnyOfMatcherTest.java | 0 .../strings/RegularExpressionMatcherTest.java | 0 .../strings/StartsWithAnyOfMatcherTest.java | 0 .../strings/WhitelistMatcherTest.java | 0 ...leScheduledThreadPoolExecutorImplTest.java | 0 .../engine/splitter/HashConsistencyTest.java | 0 .../android/engine/splitter/HashingTest.java | 0 .../split/android/engine/splitter/MyHash.java | 0 .../android/engine/splitter/SplitterTest.java | 0 .../android/fake/ExecutorServiceMock.java | 0 .../android/fake/ImpressionListenerMock.java | 0 .../android/fake/MemoryUtilsNoMemoryStub.java | 0 .../android/fake/SplitEventsManagerStub.java | 0 .../android/fake/SplitTaskExecutorStub.java | 0 .../io/split/android/fake/SseClientMock.java | 0 .../io/split/android/helpers/FileHelper.java | 0 .../android/helpers/ResourcesFileStorage.java | 0 .../io/split/android/helpers/SplitHelper.java | 0 .../http/SplitHttpHeadersBuilderTest.java | 0 .../io/split/android/http/URIBuilderTest.java | 0 .../src/test}/test/resources/README.txt | 0 .../test}/test/resources/between_semver.csv | 0 .../test}/test/resources/equal_to_semver.csv | 0 .../test}/test/resources/impressions_1.json | 0 .../resources/invalid_semantic_versions.csv | 0 ...acy-hash-sample-data-non-alpha-numeric.csv | 0 .../resources/legacy-hash-sample-data.csv | 0 ...rmur3-sample-data-non-alpha-numeric-v2.csv | 0 .../murmur3-sample-data-non-alpha-numeric.csv | 0 .../test/resources/murmur3-sample-data-v2.csv | 0 .../test/resources/murmur3-sample-data.csv | 0 .../murmur3-sample-double-treatment-users.csv | 0 .../test}/test/resources/murmur3_64_uuids.csv | 0 .../test}/test/resources/split_changes_1.json | 0 .../resources/split_changes_1_updated.json | 0 .../test/resources/split_changes_legacy.json | 0 .../split_changes_prerequisites.json | 0 .../test/resources/split_changes_small.json | 0 .../split_changes_with_prerequisites.json | 0 .../src/test}/test/resources/splits.yaml | 0 .../resources/splits_incorrect_value.yaml | 0 .../test/resources/splits_missing_name.yaml | 0 .../resources/splits_missing_treatment.yaml | 0 .../test}/test/resources/splits_no_yaml.yaml | 0 .../src/test}/test/resources/tracks_1.json | 0 .../resources/valid_semantic_versions.csv | 0 build.gradle | 246 ++------------- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle | 4 + 1190 files changed, 508 insertions(+), 224 deletions(-) create mode 100644 android-client-logger/.gitignore create mode 100644 android-client-logger/build.gradle rename {src => android-client-logger/src}/main/AndroidManifest.xml (57%) rename {src => android-client-logger/src}/main/java/io/split/android/client/utils/logger/LogPrinter.java (100%) rename {src => android-client-logger/src}/main/java/io/split/android/client/utils/logger/LogPrinterImpl.java (100%) rename {src => android-client-logger/src}/main/java/io/split/android/client/utils/logger/Logger.java (100%) rename {src => android-client-logger/src}/main/java/io/split/android/client/utils/logger/SplitLogLevel.java (100%) rename {src => android-client-logger/src}/test/java/io/split/android/client/utils/logger/LogPrinterStub.java (100%) rename {src => android-client-logger/src}/test/java/io/split/android/client/utils/logger/LoggerTest.java (100%) create mode 100644 android-client-main/.gitignore create mode 100644 android-client-main/build.gradle create mode 100644 android-client-main/build.gradle.tmp create mode 100644 android-client-main/consumer-rules.pro rename {src => android-client-main/src/androidTest}/androidTest/AndroidManifest.xml (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/attributes_test_split_change.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/bucket_split_test.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/lorem_ipsum.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-ably_error_40012.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-ably_error_40142.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-control.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-largesegment_update.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-occupancy.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-segment_updV2.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-segment_update.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-segment_update_empty_payload.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-segment_update_payload.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-segment_update_payload_generic.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-split_kill.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-split_kill_old.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-split_update-chgnum.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-split_update.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_msg-split_update_old_change_nb.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/push_token-expired.txt (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/simple_split.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/split.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/split_changes_1.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/split_changes_flag_set-0.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/split_changes_flag_set-1.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/split_changes_flag_set-2.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/split_changes_imp_toggle.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/split_changes_large_segments-0.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/split_changes_legacy.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/split_changes_rbs.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/split_changes_semver.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/split_dependency.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/splitchanges_int_test.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/splitchanges_prerequisites.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/splitchanges_unsupported_matcher.json (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/splits.yaml (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/splits1.properties (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/splits_test.properties (100%) rename {src => android-client-main/src/androidTest}/androidTest/assets/splits_yml.yml (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/HttpClientMock.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/HttpClientStub.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/HttpRequestMock.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/HttpRequestStub.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/HttpResponseMock.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/HttpResponseMockDispatcher.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/HttpResponseStub.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/HttpStreamRequestMock.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/HttpStreamResponseMock.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/LifecycleManagerStub.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/SplitClientStub.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/SplitEventExecutorResourcesMock.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/SyncManagerStub.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/fake/SynchronizerSpyImpl.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/helper/DataSample.kt (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/helper/DatabaseHelper.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/helper/FileHelper.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/helper/ImpressionListenerHelper.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/helper/IntegrationHelper.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/helper/SplitEventTaskHelper.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/helper/TestableSplitConfigBuilder.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/database/AttributesDaoTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/database/DatabaseInitializationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/database/GeneralInfoDaoTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/database/GenericDaoTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/database/ImpressionDaoTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/database/MyLargeSegmentDaoTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/database/MySegmentDaoTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/database/SplitDaoTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/database/TrackDaoTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/database/UniqueKeysDaoTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/FlagsSpecInRequestTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/InitialChangeNumberTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/IntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/LifecyleOnBGTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/MySegmentUpdatedTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/MySegmentsServerErrorTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/ProxyFactoryTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/SingleSyncTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/SplitChangesServerErrorTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/SplitChangesTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/TrackTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/encryption/EncryptionTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/init/InitializationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/matcher/PrerequisitesTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/matcher/SemverMatcherTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/pin/CertPinningTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/shared/TestingData.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/shared/TestingHelper.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/AblyErrorTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/ControlTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/OccupancyTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/localhost/LocalhostTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/service/CompressionTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/service/EventsManagerTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/service/EventsRequestTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/service/ImpressionsRequestTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/service/SdkUpdatePollingTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/service/SseJwtTokenParserTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/service/UniqueKeysIntegrationTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/service/UrlSanitizerTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/GeneralInfoStorageTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/LoadSplitTaskTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/MySegmentsStorageTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/PersistentEventStorageTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/PersistentImpressionStorageTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/PersistentSplitsStorageTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/SplitsStorageTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/cipher/CBCCipherTest.kt (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/cipher/KeyManagerTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/workmanager/WMWorkersSetupTest.java (100%) rename {src => android-client-main/src/androidTest}/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java (100%) create mode 100644 android-client-main/src/main/AndroidManifest.xml rename {src => android-client-main/src}/main/java/io/split/android/client/AlwaysReturnControlSplitClient.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/Destroyer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/EvaluationOptions.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/EvaluationResult.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/Evaluator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/EvaluatorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/EventsTracker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/EventsTrackerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/FeatureFlagFilter.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/FilterBuilder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/FilterGrouper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/FlagSetsFilter.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/FlagSetsFilterImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/ProcessedEventProperties.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/PropertyValidatorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/RetryBackoffCounterTimerFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/RolloutCacheConfiguration.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/ServiceEndpoints.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitClient.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitClientConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitClientFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitClientFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitClientImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitFactoryBuilder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitFactoryHelper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitFilter.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitManagerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SplitResult.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/SyncConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/TestingConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/TreatmentLabels.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/UserConsentManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/UserConsentManagerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/api/Key.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/api/SplitView.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/attributes/AttributesManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/attributes/AttributesManagerFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/attributes/AttributesManagerFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/attributes/AttributesManagerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/attributes/AttributesMerger.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/attributes/AttributesMergerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/common/CompressionType.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/common/CompressionUtilProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Algorithm.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/AllSegmentsChange.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/BetweenMatcherData.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/BetweenStringMatcherData.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/ChunkHeader.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Condition.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/ConditionType.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Counter.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/DataType.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/DependencyMatcherData.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/DeprecatedKeyImpression.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Event.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Excluded.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/ExcludedSegment.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Helper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/HttpProxyDto.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Identifiable.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/KeyImpression.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/KeySelector.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Matcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/MatcherCombiner.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/MatcherGroup.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/MatcherType.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Partition.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Prerequisite.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/RuleBasedSegment.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/RuleBasedSegmentChange.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Segment.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/SegmentResponse.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/SegmentsChange.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/SerializableEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Split.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/SplitChange.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/Status.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/TargetingRulesChange.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/TestImpressions.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/URN.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/UnaryNumericMatcherData.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/UserDefinedLargeSegmentMatcherData.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/UserDefinedSegmentMatcherData.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/dtos/WhitelistMatcherData.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/BaseEventsManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/EventsManagerCoordinator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/EventsManagerRegistry.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/ISplitEventsManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/ListenableEventsManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/SplitEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/SplitEventTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/SplitEventTaskMethodNotImplementedException.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/SplitEventsManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/SplitInternalEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/executors/ClientEventSplitTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/executors/SplitEventExecutor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/executors/SplitEventExecutorFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/executors/SplitEventExecutorResources.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/events/executors/SplitEventExecutorWithClient.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/exceptions/ChangeNumberExceptionWrapper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/exceptions/MySegmentsParsingException.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/exceptions/ParentIsControlException.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/exceptions/SplitInstantiationException.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/factory/FactoryMonitor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/factory/FactoryMonitorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/fallback/FallbackTreatment.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/fallback/FallbackTreatmentsConfiguration.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/fallback/FallbacksSanitizer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/fallback/FallbacksSanitizerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/impressions/DecoratedImpression.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/impressions/DecoratedImpressionListener.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/impressions/Impression.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/impressions/ImpressionListener.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/impressions/ImpressionLoggingTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/impressions/SyncImpressionListener.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/lifecycle/SplitLifecycleAware.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/lifecycle/SplitLifecycleManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/lifecycle/SplitLifecycleManagerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/LocalhostFileParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/LocalhostImpressionsListener.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/LocalhostMySegmentsStorageContainer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/LocalhostPropertiesFileParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorageProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/LocalhostSplitClient.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/LocalhostSplitFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/LocalhostSplitsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/LocalhostSynchronizer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/LocalhostYamlFileParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/SplitHelper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/Algorithm.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/AuthenticatedRequest.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/Authenticator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/Base64Decoder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/Base64Encoder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/BaseHttpResponse.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/BaseHttpResponseImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/BasicCredentialsProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/BearerCredentialsProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/CertificateChecker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/CertificateCheckerHelper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/CertificateCheckerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/CertificatePin.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/CertificatePinningConfiguration.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/CertificatePinningConfigurationProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/CertificatePinningFailureListener.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/ChainCleaner.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/ChainCleanerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/DefaultBase64Decoder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/DefaultBase64Encoder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/DevelopmentSslConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpClient.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpClientImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpException.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpMethod.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpOverTunnelExecutor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpProxy.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpRequest.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpRequestHelper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpRequestImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpResponse.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpResponseConnectionAdapter.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpResponseImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpStreamRequest.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpStreamRequestImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpStreamResponse.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/HttpStreamResponseImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/LegacyTlsUpdater.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/PercentEscaper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/PinEncoder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/PinEncoderImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/ProxyCacertConnectionHandler.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/ProxyConfiguration.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/ProxyCredentialsProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/ProxySslSocketFactoryProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/ProxySslSocketFactoryProviderImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/RawHttpResponseParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/SdkTargetPath.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/SplitAuthenticatedRequest.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/SplitAuthenticator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/SplitBasicAuthenticator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/SplitHttpHeadersBuilder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/SplitUrlConnectionAuthenticator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/SslProxyTunnelEstablisher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/Tls12OnlySocketFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/TrustManagerProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/URIBuilder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/UnicodeEscaper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/UrlEscapers.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/UrlSanitizer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/network/UrlSanitizerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/CleanUpDatabaseTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/ServiceConstants.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/ServiceFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/SplitApiFacade.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/attributes/AttributeTaskFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/attributes/AttributeTaskFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/attributes/LoadAttributesTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/events/EventsRecorderTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/events/EventsRecorderTaskConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/events/EventsRequestBodySerializer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitBaseTaskExecutor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitClientEventTaskExecutor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitSingleThreadTaskExecutor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitTaskBatchItem.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitTaskBatchWrapper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitTaskExecutionInfo.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitTaskExecutionListener.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitTaskExecutionStatus.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitTaskExecutor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitTaskExecutorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitTaskFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitTaskFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitTaskSerialWrapper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/SplitTaskType.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/TaskWrapper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/ThreadFactoryBuilder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/parallel/SplitDeferredTaskItem.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/HttpFetcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/HttpFetcherException.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/HttpFetcherImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/HttpGeneralException.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/HttpRecorder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/HttpRecorderException.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/HttpRecorderImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/HttpRequestBodySerializer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/HttpResponseParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/HttpResponseParserException.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/HttpSseAuthTokenFetcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/HttpStatus.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionHasher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionManagerConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionUtils.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionsCount.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionsCountPerFeature.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionsCountRecorderTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionsCountRequestBodySerializer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionsCounter.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionsMode.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTaskConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/ImpressionsTaskFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/KeyImpressionSerializer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/MemoizedSupplier.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/SaveImpressionsCountTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/StrategyImpressionManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserver.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCache.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/observer/ListenableLruCache.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/observer/PersistentImpressionsObserverCacheStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/strategy/DebugStrategy.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/strategy/DebugTracker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/strategy/NoneStrategy.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/strategy/NoneTracker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/strategy/OptimizedStrategy.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/strategy/OptimizedTracker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/strategy/PeriodicTracker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/strategy/ProcessStrategy.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/strategy/Utils.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/unique/MTK.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/unique/UniqueKey.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTracker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/AllSegmentsResponseParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/MySegmentUpdateParams.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfiguration.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProviderImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/rules/LoadRuleBasedSegmentsTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/rules/ProcessedRuleBasedSegmentChange.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/rules/TargetingRulesResponseParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/FeatureFlagProcessStrategy.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/FilterSplitsInCacheTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/LoadSplitsTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/OutdatedSplitProxyHandler.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/RuleBasedSegmentInPlaceUpdateTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/SplitChangeProcessor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/SplitChangeResponseParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/SplitInPlaceUpdateTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/SplitKillTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/SplitsSyncHelper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/SplitsSyncTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/SplitsUpdateTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/splits/TargetingRulesCache.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseauthentication/SseAuthenticationResponseParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/BackoffCounter.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/EventStreamParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/FixedIntervalBackoffCounter.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/InvalidJwtTokenException.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/ReconnectBackoffCounter.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/SseAuthToken.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/SseAuthenticationResponse.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/SseJwtParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/SseJwtToken.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/feedbackchannel/BroadcastedEventListener.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/feedbackchannel/DelayStatusEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushManagerEventBroadcaster.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushStatusEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/ControlNotification.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/HashingAlgorithm.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotification.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotificationType.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/InstantUpdateChangeNotification.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/KeyList.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/MembershipNotification.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/MySegmentUpdateStrategy.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/MySegmentsV2PayloadDecoder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/NotificationParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/NotificationProcessor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/NotificationType.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/OccupancyNotification.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/RawNotification.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/RuleBasedSegmentChangeNotification.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/SplitKillNotification.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/SplitsChangeNotification.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/StreamingError.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorConfiguration.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorRegistry.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistry.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/reactor/SplitUpdatesWorker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/reactor/UpdateWorker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/BackoffCounterTimer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/NotificationManagerKeeper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticationResult.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/SseClient.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/SseClientImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/SseHandler.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/SseRefreshTokenTimer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/sseclient/sseclient/StreamingComponents.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/LoadLocalDataListener.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/MySegmentsChangeChecker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/RolloutCacheManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/RolloutCacheManagerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/SplitsChangeChecker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/SyncGuardian.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/SyncGuardianImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/SyncManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/SyncManagerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/Synchronizer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/SynchronizerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/SynchronizerSpy.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/ThreadUtils.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistry.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsBackgroundSyncScheduleTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistry.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsWorkManagerWrapper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/BaseSegmentsSyncWorker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/EventsRecorderWorker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/ImpressionsRecorderWorker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/MySegmentsSyncWorker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/SplitWorker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/UniqueKeysRecorderWorker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/splits/FetcherProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/splits/SplitChangeProcessorProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParams.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilder.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/splits/StorageProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/service/workmanager/splits/SyncHelperProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/shared/BaseSplitClientContainer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/shared/ClientComponentsRegister.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/shared/ClientComponentsRegisterImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/shared/SplitClientContainer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/shared/SplitClientContainerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/shared/UserConsent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/RolloutDefinitionsCache.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/attributes/AttributesStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/attributes/AttributesStorageContainer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/attributes/AttributesStorageContainerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/attributes/AttributesStorageImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/attributes/PersistentAttributesStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/ApplyCipherTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/CBCCipher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/CBCCipherProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/CipherProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/DBCipher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/EncryptionMigrationTask.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/KeyManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/NoOpCipher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/ObjectPool.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/ObjectPoolFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/SplitCipher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/SplitCipherFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/SplitEncryptionLevel.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/provider/KeyProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/provider/LegacyKeyProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/cipher/provider/SecureKeyStorageProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/common/InBytesSizable.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/common/PersistentStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/common/RuleBasedSegmentStorageInitializer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/common/SplitStorageContainer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/common/SqLitePersistentStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/common/Storage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/common/StoragePusher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/EventDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/EventEntity.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/GeneralInfoDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/GeneralInfoEntity.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/ImpressionDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/ImpressionEntity.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/ImpressionsCountDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/ImpressionsCountEntity.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/MyLargeSegmentDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/MyLargeSegmentEntity.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/MySegmentDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/MySegmentEntity.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/SegmentDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/SegmentEntity.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/SplitDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/SplitEntity.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/SplitQueryDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/SplitQueryDaoImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/SplitRoomDatabase.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/StorageFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/StorageRecordStatus.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/attributes/AttributesDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/attributes/AttributesEntity.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheEntity.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeyEntity.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeysDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentDao.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentEntity.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/events/EventsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/events/PersistentEventsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/events/SqLitePersistentEventsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/general/GeneralInfoStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/general/GeneralInfoStorageImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/impressions/ImpressionsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/impressions/PersistentImpressionsCountStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/impressions/PersistentImpressionsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/impressions/PersistentImpressionsUniqueStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsCountStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/legacy/FileStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/legacy/FileStorageHelper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/legacy/IStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/mysegments/EmptyMySegmentsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/mysegments/MySegmentsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/mysegments/PersistentMySegmentsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/Clearer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/PersistentRuleBasedSegmentStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentSnapshot.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageConsumer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/SnapshotLoader.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/rbs/Updater.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/splits/MetadataHelper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/splits/PersistentSplitsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/splits/ProcessedSplitChange.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/splits/SplitListTransformer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/splits/SplitsSnapshot.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/splits/SplitsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/splits/SplitsStorageImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/TelemetryConfigBodySerializer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/TelemetryHelper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/TelemetryHelperImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/TelemetryStatsBodySerializer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/TelemetrySynchronizer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/TelemetrySynchronizerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/TelemetrySynchronizerStub.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/Config.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/EventTypeEnum.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/EventsDataRecordsEnum.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/FactoryCounter.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/HttpErrors.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/HttpLatencies.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/ImpressionsDataType.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/ImpressionsMode.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/LastSync.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/Method.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/MethodExceptions.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/MethodLatencies.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/OperationMode.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/OperationType.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/PushCounterEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/RefreshRates.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/Stats.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/UpdatesFromSSE.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/UrlOverrides.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/streaming/AblyErrorStreamingEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/streaming/ConnectionEstablishedStreamingEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/streaming/OccupancyPriStreamingEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/streaming/OccupancySecStreamingEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/streaming/SseConnectionErrorStreamingEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/streaming/StreamingEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/streaming/StreamingStatusStreamingEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/streaming/SyncModeUpdateStreamingEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/streaming/TokenRefreshStreamingEvent.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/model/streaming/UpdatesFromSSEEnum.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/BinarySearchLatencyTracker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/ILatencyTracker.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/NoOpTelemetryStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationConsumer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationProducer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryInitConsumer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryInitProducer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeConsumer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeProducer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryStorage.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryStorageConsumer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/storage/TelemetryStorageProducer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/telemetry/util/AtomicLongArray.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/BCrypt.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/Base64Util.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/CompressionUtil.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/FileUtils.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/Gzip.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/HttpProxySerializer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/Json.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/MemoryUtils.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/MemoryUtilsImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/MurmurHash3.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/StringHelper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/Utils.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/YamlParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/Zlib.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/deserializer/EventDeserializer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/utils/serializer/DoubleSerializer.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/ApiKeyValidator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/ApiKeyValidatorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/AttributesValidator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/AttributesValidatorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/EventValidator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/EventValidatorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/FlagSetsValidatorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/KeyValidator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/KeyValidatorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/PrefixValidator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/PrefixValidatorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/PropertyValidator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/SplitFilterValidator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/SplitValidator.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/SplitValidatorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/TreatmentManager.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/TreatmentManagerFactory.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/TreatmentManagerFactoryImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/TreatmentManagerHelper.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/TreatmentManagerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/ValidationConfig.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/ValidationErrorInfo.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/ValidationMessageLogger.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/client/validators/ValidationMessageLoggerImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/experiments/DefaultConditionsProvider.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/experiments/FetcherPolicy.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/experiments/ParsedCondition.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/experiments/ParsedRuleBasedSegment.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/experiments/ParsedSplit.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/experiments/Parser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/experiments/ParserCommons.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/experiments/RuleBasedSegmentParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/experiments/SplitFetcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/experiments/SplitParser.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/experiments/UnsupportedMatcherException.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/AllKeysMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/AttributeMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/BetweenMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/BooleanMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/CombiningMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/DependencyMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/EqualToMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/LessThanOrEqualToMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/Matcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/MySegmentsMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/PrerequisitesMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/Transformers.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/collections/EqualToSetMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/collections/PartOfSetMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/semver/BetweenSemverMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/semver/EqualToSemverMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/semver/InListSemverMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/semver/Semver.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/semver/SemverParseException.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/strings/RegularExpressionMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/matchers/strings/WhitelistMatcher.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutor.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutorImpl.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/engine/splitter/Splitter.java (100%) rename {src => android-client-main/src}/main/java/io/split/android/grammar/Treatments.java (100%) rename {src => android-client-main/src}/sharedTest/java/helper/CompressionHelper.java (100%) rename {src => android-client-main/src}/sharedTest/java/helper/TestingData.java (100%) rename {src => android-client-main/src}/sharedTest/java/helper/TestingHelper.java (100%) rename {src => android-client-main/src}/sharedTest/java/io/split/sharedtest/fake/HttpStreamResponseMock.java (100%) rename {src => android-client-main/src/test}/test/java/android/util/Base64.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/BCryptTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/FolderForApiKeyTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/SplitConfigurationsParsingTests.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/DestroyerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/EvaluationOptionsTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/FactoryMonitorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/FileStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/FilterBuilderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/FilterGrouperTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/FlagSetsFilterImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/ImpressionsModeTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/MySegmentsUriBuildersTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/RolloutCacheConfigurationTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/SplitClientConfigTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/SplitClientImplAttributesTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/SplitClientImplBaseTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/SplitClientImplLegacyTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/SplitFactoryHelperTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/SplitManagerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/SyncConfigTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/TreatmentLabelsTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/TreatmentManagerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/UserConsentManagerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/dtos/SplitDeserializationTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/events/EventsManagerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/events/PropertyValidatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/CertificateCheckerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/ChainCleanerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/HttpClientTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/HttpRequestHelperTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/HttpStreamResponseTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/PinEncoderImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/ProxyConfigurationTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/RawHttpResponseParserTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/SdkTargetPathTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/SplitAuthenticatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/network/TrustManagerProviderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/EventsRecorderTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/HttpFetcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/HttpRecorderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/ImpressionHasherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/ImpressionsCounterTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/LoadSplitsTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/SplitKillTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/SplitSyncTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/SplitTaskExecutorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/SplitUpdateTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/SplitsSyncHelperTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/SynchronizerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/events/EventsTrackerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/SseClientTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/events/EventsStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/rbs/UpdaterTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/utils/HttpProxySerializerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/utils/JsonTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/utils/PartitionTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/utils/RepeatTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/utils/SplitClientImplFactory.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/validators/EventTypeNameHelper.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/validators/EventValidatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/validators/KeyValidatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/validators/SplitValidatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/ConditionsTestUtil.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/experiments/EvaluatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/experiments/SplitParserTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/TransformersTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/semver/SemverTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/splitter/HashConsistencyTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/splitter/HashingTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/splitter/MyHash.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/engine/splitter/SplitterTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/fake/ExecutorServiceMock.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/fake/ImpressionListenerMock.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/fake/SplitEventsManagerStub.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/fake/SplitTaskExecutorStub.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/fake/SseClientMock.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/helpers/FileHelper.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/helpers/ResourcesFileStorage.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/helpers/SplitHelper.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java (100%) rename {src => android-client-main/src/test}/test/java/io/split/android/http/URIBuilderTest.java (100%) rename {src => android-client-main/src/test}/test/resources/README.txt (100%) rename {src => android-client-main/src/test}/test/resources/between_semver.csv (100%) rename {src => android-client-main/src/test}/test/resources/equal_to_semver.csv (100%) rename {src => android-client-main/src/test}/test/resources/impressions_1.json (100%) rename {src => android-client-main/src/test}/test/resources/invalid_semantic_versions.csv (100%) rename {src => android-client-main/src/test}/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv (100%) rename {src => android-client-main/src/test}/test/resources/legacy-hash-sample-data.csv (100%) rename {src => android-client-main/src/test}/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv (100%) rename {src => android-client-main/src/test}/test/resources/murmur3-sample-data-non-alpha-numeric.csv (100%) rename {src => android-client-main/src/test}/test/resources/murmur3-sample-data-v2.csv (100%) rename {src => android-client-main/src/test}/test/resources/murmur3-sample-data.csv (100%) rename {src => android-client-main/src/test}/test/resources/murmur3-sample-double-treatment-users.csv (100%) rename {src => android-client-main/src/test}/test/resources/murmur3_64_uuids.csv (100%) rename {src => android-client-main/src/test}/test/resources/split_changes_1.json (100%) rename {src => android-client-main/src/test}/test/resources/split_changes_1_updated.json (100%) rename {src => android-client-main/src/test}/test/resources/split_changes_legacy.json (100%) rename {src => android-client-main/src/test}/test/resources/split_changes_prerequisites.json (100%) rename {src => android-client-main/src/test}/test/resources/split_changes_small.json (100%) rename {src => android-client-main/src/test}/test/resources/split_changes_with_prerequisites.json (100%) rename {src => android-client-main/src/test}/test/resources/splits.yaml (100%) rename {src => android-client-main/src/test}/test/resources/splits_incorrect_value.yaml (100%) rename {src => android-client-main/src/test}/test/resources/splits_missing_name.yaml (100%) rename {src => android-client-main/src/test}/test/resources/splits_missing_treatment.yaml (100%) rename {src => android-client-main/src/test}/test/resources/splits_no_yaml.yaml (100%) rename {src => android-client-main/src/test}/test/resources/tracks_1.json (100%) rename {src => android-client-main/src/test}/test/resources/valid_semantic_versions.csv (100%) create mode 100644 settings.gradle diff --git a/android-client-logger/.gitignore b/android-client-logger/.gitignore new file mode 100644 index 000000000..3a11ced48 --- /dev/null +++ b/android-client-logger/.gitignore @@ -0,0 +1,4 @@ +/build +.gradle +*.iml +.DS_Store diff --git a/android-client-logger/build.gradle b/android-client-logger/build.gradle new file mode 100644 index 000000000..0656d375d --- /dev/null +++ b/android-client-logger/build.gradle @@ -0,0 +1,44 @@ +buildscript { + repositories { + google() + mavenCentral() + } +} + +plugins { + id 'com.android.library' + id 'kotlin-android' +} + +repositories { + google() + mavenCentral() +} + +android { + namespace 'io.split.android.client.logger' + compileSdk 33 + + defaultConfig { + minSdk 19 + targetSdk 31 + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + // Test: Add an external dependency to verify it's included in fused library POM + implementation "androidx.annotation:annotation:1.2.0" + + testImplementation "junit:junit:4.13.2" + testImplementation "org.mockito:mockito-core:4.8.0" +} diff --git a/src/main/AndroidManifest.xml b/android-client-logger/src/main/AndroidManifest.xml similarity index 57% rename from src/main/AndroidManifest.xml rename to android-client-logger/src/main/AndroidManifest.xml index 6b2f52238..9a40236b9 100644 --- a/src/main/AndroidManifest.xml +++ b/android-client-logger/src/main/AndroidManifest.xml @@ -1,3 +1,3 @@ - + + diff --git a/src/main/java/io/split/android/client/utils/logger/LogPrinter.java b/android-client-logger/src/main/java/io/split/android/client/utils/logger/LogPrinter.java similarity index 100% rename from src/main/java/io/split/android/client/utils/logger/LogPrinter.java rename to android-client-logger/src/main/java/io/split/android/client/utils/logger/LogPrinter.java diff --git a/src/main/java/io/split/android/client/utils/logger/LogPrinterImpl.java b/android-client-logger/src/main/java/io/split/android/client/utils/logger/LogPrinterImpl.java similarity index 100% rename from src/main/java/io/split/android/client/utils/logger/LogPrinterImpl.java rename to android-client-logger/src/main/java/io/split/android/client/utils/logger/LogPrinterImpl.java diff --git a/src/main/java/io/split/android/client/utils/logger/Logger.java b/android-client-logger/src/main/java/io/split/android/client/utils/logger/Logger.java similarity index 100% rename from src/main/java/io/split/android/client/utils/logger/Logger.java rename to android-client-logger/src/main/java/io/split/android/client/utils/logger/Logger.java diff --git a/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java b/android-client-logger/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java similarity index 100% rename from src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java rename to android-client-logger/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java diff --git a/src/test/java/io/split/android/client/utils/logger/LogPrinterStub.java b/android-client-logger/src/test/java/io/split/android/client/utils/logger/LogPrinterStub.java similarity index 100% rename from src/test/java/io/split/android/client/utils/logger/LogPrinterStub.java rename to android-client-logger/src/test/java/io/split/android/client/utils/logger/LogPrinterStub.java diff --git a/src/test/java/io/split/android/client/utils/logger/LoggerTest.java b/android-client-logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java similarity index 100% rename from src/test/java/io/split/android/client/utils/logger/LoggerTest.java rename to android-client-logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java diff --git a/android-client-main/.gitignore b/android-client-main/.gitignore new file mode 100644 index 000000000..3a11ced48 --- /dev/null +++ b/android-client-main/.gitignore @@ -0,0 +1,4 @@ +/build +.gradle +*.iml +.DS_Store diff --git a/android-client-main/build.gradle b/android-client-main/build.gradle new file mode 100644 index 000000000..c50587f92 --- /dev/null +++ b/android-client-main/build.gradle @@ -0,0 +1,82 @@ +buildscript { + repositories { + google() + mavenCentral() + } +} + +plugins { + id 'com.android.library' + id 'kotlin-android' +} + +repositories { + google() + mavenCentral() +} + +android { + namespace 'io.split.android.client.main' + compileSdk 33 + + defaultConfig { + minSdk 19 + targetSdk 31 + multiDexEnabled true + consumerProguardFiles 'consumer-rules.pro' + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildFeatures { + buildConfig true + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + buildTypes { + debug { + buildConfigField("String", "SPLIT_VERSION_NAME", "\"5.4.2-rc1\"") + } + release { + buildConfigField("String", "SPLIT_VERSION_NAME", "\"5.4.2-rc1\"") + } + } + + testOptions { + unitTests.returnDefaultValues = true + } +} + +dependencies { + // Internal module dependencies + api project(':android-client-logger') + + // External dependencies + implementation "androidx.room:room-runtime:2.4.3" + annotationProcessor "androidx.room:room-compiler:2.4.3" + implementation "androidx.work:work-runtime:2.7.1" + implementation "androidx.lifecycle:lifecycle-process:2.5.1" + implementation "androidx.annotation:annotation:1.2.0" + implementation "com.google.code.gson:gson:2.10.1" + implementation "org.yaml:snakeyaml:2.2" + implementation "com.google.android.gms:play-services-base:18.2.0" + implementation "androidx.multidex:multidex:2.0.1" + + // Test dependencies + testImplementation "junit:junit:4.13.2" + testImplementation "org.mockito:mockito-core:4.8.0" + testImplementation "org.mockito:mockito-inline:4.8.0" +} + +tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { + kotlinOptions { + jvmTarget = "1.8" + } +} diff --git a/android-client-main/build.gradle.tmp b/android-client-main/build.gradle.tmp new file mode 100644 index 000000000..6a27871ee --- /dev/null +++ b/android-client-main/build.gradle.tmp @@ -0,0 +1,285 @@ +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:8.9.3' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0' + classpath "com.vanniktech:gradle-maven-publish-plugin:0.33.0" + } +} + +apply plugin: 'com.android.library' +apply plugin: 'signing' +apply plugin: 'kotlin-android' +apply plugin: 'com.vanniktech.maven.publish' +apply from: 'spec.gradle' +apply from: 'jacoco.gradle' + +ext { + splitVersion = '5.4.2-rc1' + jacocoVersion = '0.8.8' +} + +// Define exclusions for JaCoCo coverage +def coverageExclusions = [ + '**/R.class', + '**/R$*.class', + '**/BuildConfig.*', + '**/Manifest*.*', + '**/*Test*.*', + 'android/**/*.*' +] + +android { + compileSdk 33 + targetCompatibility = '1.8' + sourceCompatibility = '1.8' + + buildFeatures { + buildConfig true + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + defaultConfig { + + minSdk 19 + targetSdk 31 + multiDexEnabled true + + consumerProguardFiles 'split-proguard-rules.pro' + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + testInstrumentationRunnerArguments clearPackageData: 'true' + + javaCompileOptions { + annotationProcessorOptions { + arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] + } + } + + testOptions { + execution 'ANDROIDX_TEST_ORCHESTRATOR' + } + } + + configurations { + javadocDeps + } + + + testOptions { + unitTests.returnDefaultValues = true + + // Configure JaCoCo for all test tasks + unitTests.all { + jacoco { + includeNoLocationClasses = true + excludes = ['jdk.internal.*'] + } + } + } + + sourceSets { + String sharedTestDir = 'src/sharedTest/java' + test { + java.srcDirs += 'src/test/kotlin' + java.srcDirs += sharedTestDir + } + androidTest { + java.srcDirs += sharedTestDir + } + } + + buildTypes { + debug { + buildConfigField("String", "SPLIT_VERSION_NAME", "\"${splitVersion}\"") + buildConfigField("String", "FLAGS_SPEC", "\"${flagsSpec}\"") + } + release { + buildConfigField("String", "SPLIT_VERSION_NAME", "\"${splitVersion}\"") + buildConfigField("String", "FLAGS_SPEC", "\"${flagsSpec}\"") + } + } + namespace 'io.split.android.android_client' + lint { + abortOnError false + disable 'InvalidPackage' + } +} + +repositories { + google() + mavenCentral() +} + +tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { + kotlinOptions { + jvmTarget = "1.8" + } +} + +dependencies { + + def roomVersion = '2.4.3' + def workVersion = '2.7.1' + def lifecycleVersion = '2.5.1' + def annotationVersion = '1.2.0' + def gsonVersion = '2.10.1' + def guavaVersion = '32.1.3-android' + def snakeYamlVersion = '2.2' + def playServicesVersion = '18.2.0' + def multidexVersion = '2.0.1' + + def jUnitVersion = '4.13.2' + def mockitoVersion = '4.8.0' + def hamcrestVersion = '1.3' + def apacheCommonsVersion = '3.12.0' + def kotlinVer = '1.5.31' + def mockWebServerVersion = '4.12.0' + + def testRulesVersion = '1.4.0' + def jUnitExtVersion = '1.1.3' + def testRunnerVersion = '1.5.1' + def orchestratorVersion = '1.4.2' + + implementation fileTree(include: ['*.jar'], dir: 'libs') + + implementation "androidx.room:room-runtime:$roomVersion" + annotationProcessor "androidx.room:room-compiler:$roomVersion" + + implementation "androidx.work:work-runtime:$workVersion" + + implementation "androidx.lifecycle:lifecycle-process:$lifecycleVersion" + + implementation "androidx.annotation:annotation:$annotationVersion" + + implementation "com.google.code.gson:gson:$gsonVersion" + + implementation "org.yaml:snakeyaml:$snakeYamlVersion" + implementation "com.google.android.gms:play-services-base:$playServicesVersion" + implementation "androidx.multidex:multidex:$multidexVersion" + + // Test + testImplementation "junit:junit:$jUnitVersion" + testImplementation "org.mockito:mockito-core:$mockitoVersion" + testImplementation "org.mockito:mockito-inline:$mockitoVersion" + testImplementation "org.hamcrest:hamcrest-all:$hamcrestVersion" + testImplementation "org.apache.commons:commons-lang3:$apacheCommonsVersion" + testImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" + testImplementation "com.squareup.okhttp3:okhttp-tls:$mockWebServerVersion" + testImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVer" + testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlinVer" + testImplementation "com.google.guava:guava:$guavaVersion" + + androidTestImplementation "androidx.test:rules:$testRulesVersion" + androidTestImplementation "androidx.test.ext:junit:$jUnitExtVersion" + androidTestImplementation "androidx.test:runner:$testRunnerVersion" + androidTestUtil "androidx.test:orchestrator:$orchestratorVersion" + + androidTestImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" + androidTestImplementation "com.squareup.okhttp3:okhttp-tls:$mockWebServerVersion" + androidTestImplementation "androidx.room:room-testing:$roomVersion" + androidTestImplementation "androidx.work:work-testing:$workVersion" + androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVer" + androidTestImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlinVer" + androidTestImplementation "com.google.guava:guava:$guavaVersion" + androidTestImplementation "org.mockito:mockito-android:$mockitoVersion" +} + +def splitPOM = { + name = 'Split Android SDK' + description = 'Official Split Android SDK' + url = 'https://github.com/splitio/android-client' + + licenses { + license { + name = 'The Apache License, Version 2.0' + url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + + developers { + developer { + id = 'sdks' + email = 'sdks@split.io' + } + } + + scm { + connection = 'scm:git:git@github.com:splitio/android-client.git' + developerConnection = 'scm:git@github.com:splitio/android-client.git' + url = 'https://github.com/splitio/android-client' + } +} + +mavenPublishing { + coordinates("io.split.client", "android-client", splitVersion) + pom(splitPOM) + + publishToMavenCentral(false) + signAllPublications() +} + +task sourcesJar(type: Jar) { + archiveClassifier.set("sources") + from android.sourceSets.main.java.srcDirs +} + +task javadoc(type: Javadoc) { + failOnError false + source = android.sourceSets.main.java.srcDirs + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + classpath += configurations.javadocDeps +} + +task javadocJar(type: Jar, dependsOn: javadoc) { +// archiveClassifier = 'javadoc' + archiveClassifier.set("javadoc") + from javadoc.destinationDir +} + +artifacts { + archives sourcesJar + archives javadocJar +} + +task printReleaseDependenciesToFile { + doLast { + def outputFile = new File("$projectDir/deps.txt") + def processBuilder = new ProcessBuilder("./gradlew", ":android-client:dependencies", "--configuration", "releaseRuntimeClasspath", "-q") + + outputFile.parentFile.mkdirs() + outputFile.text = '' // Clear the file before writing + processBuilder.redirectOutput(outputFile) + processBuilder.directory(project.rootDir) + + try { + Process process = processBuilder.start() + process.waitFor() + + def filteredLines = outputFile.readLines().findAll { !it.contains("BUILD SUCCESSFUL") } + + // Write the filtered content back to the file + outputFile.withPrintWriter { writer -> + filteredLines.each(writer.&println) + } + } catch (Exception e) { + e.printStackTrace() + } + } +} + +preBuild.dependsOn printReleaseDependenciesToFile + +tasks.withType(Test) { + maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 + forkEvery = 100 + maxHeapSize = "1024m" +} diff --git a/android-client-main/consumer-rules.pro b/android-client-main/consumer-rules.pro new file mode 100644 index 000000000..8dc624df9 --- /dev/null +++ b/android-client-main/consumer-rules.pro @@ -0,0 +1,54 @@ +# Please include these rules in your project +# in order to make Split code work properly when +# using proguard +-dontwarn android.test.** +-dontwarn org.junit.** +-dontwarn com.google.common.** +-keep class io.split.android.client.utils.deserializer.EventDeserializer { *; } +-keep class io.split.android.client.dtos.** { *; } +-keep class io.split.android.client.storage.db.** { *; } +-keep class io.split.android.client.service.sseclient.EventStreamParser { *; } +-keep class io.split.android.client.service.sseclient.SseAuthToken { *; } +-keep class io.split.android.client.service.sseclient.SseJwtToken { *; } +-keep class io.split.android.client.service.sseclient.SseAuthenticationResponse { *; } +-keep class io.split.android.client.service.sseclient.notifications.** { *; } +-keepattributes Signature +-keep class com.google.gson.reflect.TypeToken { *; } +-keep class * extends com.google.gson.reflect.TypeToken +-dontwarn java.beans.BeanInfo +-dontwarn java.beans.FeatureDescriptor +-dontwarn java.beans.IntrospectionException +-dontwarn java.beans.Introspector +-dontwarn java.beans.PropertyDescriptor + +##---------------Begin: proguard configuration for Gson ---------- +# Gson uses generic type information stored in a class file when working with fields. Proguard +# removes such information by default, so configure it to keep all of it. +-keepattributes Signature + +# For using GSON @Expose annotation +-keepattributes *Annotation* + +# Gson specific classes +-dontwarn sun.misc.** +#-keep class com.google.gson.stream.** { *; } + +# Application classes that will be serialized/deserialized over Gson +-keep class com.google.gson.examples.android.model.** { ; } + +# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory, +# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter) +-keep class * extends com.google.gson.TypeAdapter +-keep class * implements com.google.gson.TypeAdapterFactory +-keep class * implements com.google.gson.JsonSerializer +-keep class * implements com.google.gson.JsonDeserializer + +# Prevent R8 from leaving Data object members always null +-keepclassmembers,allowobfuscation class * { + @com.google.gson.annotations.SerializedName ; +} + +# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher. +-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken +-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken +##---------------End: proguard configuration for Gson ---------- diff --git a/src/androidTest/AndroidManifest.xml b/android-client-main/src/androidTest/androidTest/AndroidManifest.xml similarity index 100% rename from src/androidTest/AndroidManifest.xml rename to android-client-main/src/androidTest/androidTest/AndroidManifest.xml diff --git a/src/androidTest/assets/attributes_test_split_change.json b/android-client-main/src/androidTest/androidTest/assets/attributes_test_split_change.json similarity index 100% rename from src/androidTest/assets/attributes_test_split_change.json rename to android-client-main/src/androidTest/androidTest/assets/attributes_test_split_change.json diff --git a/src/androidTest/assets/bucket_split_test.json b/android-client-main/src/androidTest/androidTest/assets/bucket_split_test.json similarity index 100% rename from src/androidTest/assets/bucket_split_test.json rename to android-client-main/src/androidTest/androidTest/assets/bucket_split_test.json diff --git a/src/androidTest/assets/lorem_ipsum.txt b/android-client-main/src/androidTest/androidTest/assets/lorem_ipsum.txt similarity index 100% rename from src/androidTest/assets/lorem_ipsum.txt rename to android-client-main/src/androidTest/androidTest/assets/lorem_ipsum.txt diff --git a/src/androidTest/assets/push_msg-ably_error_40012.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-ably_error_40012.txt similarity index 100% rename from src/androidTest/assets/push_msg-ably_error_40012.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-ably_error_40012.txt diff --git a/src/androidTest/assets/push_msg-ably_error_40142.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-ably_error_40142.txt similarity index 100% rename from src/androidTest/assets/push_msg-ably_error_40142.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-ably_error_40142.txt diff --git a/src/androidTest/assets/push_msg-control.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-control.txt similarity index 100% rename from src/androidTest/assets/push_msg-control.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-control.txt diff --git a/src/androidTest/assets/push_msg-largesegment_update.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-largesegment_update.txt similarity index 100% rename from src/androidTest/assets/push_msg-largesegment_update.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-largesegment_update.txt diff --git a/src/androidTest/assets/push_msg-occupancy.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-occupancy.txt similarity index 100% rename from src/androidTest/assets/push_msg-occupancy.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-occupancy.txt diff --git a/src/androidTest/assets/push_msg-segment_updV2.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-segment_updV2.txt similarity index 100% rename from src/androidTest/assets/push_msg-segment_updV2.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-segment_updV2.txt diff --git a/src/androidTest/assets/push_msg-segment_update.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update.txt similarity index 100% rename from src/androidTest/assets/push_msg-segment_update.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update.txt diff --git a/src/androidTest/assets/push_msg-segment_update_empty_payload.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update_empty_payload.txt similarity index 100% rename from src/androidTest/assets/push_msg-segment_update_empty_payload.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update_empty_payload.txt diff --git a/src/androidTest/assets/push_msg-segment_update_payload.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update_payload.txt similarity index 100% rename from src/androidTest/assets/push_msg-segment_update_payload.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update_payload.txt diff --git a/src/androidTest/assets/push_msg-segment_update_payload_generic.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update_payload_generic.txt similarity index 100% rename from src/androidTest/assets/push_msg-segment_update_payload_generic.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update_payload_generic.txt diff --git a/src/androidTest/assets/push_msg-split_kill.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-split_kill.txt similarity index 100% rename from src/androidTest/assets/push_msg-split_kill.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-split_kill.txt diff --git a/src/androidTest/assets/push_msg-split_kill_old.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-split_kill_old.txt similarity index 100% rename from src/androidTest/assets/push_msg-split_kill_old.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-split_kill_old.txt diff --git a/src/androidTest/assets/push_msg-split_update-chgnum.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-split_update-chgnum.txt similarity index 100% rename from src/androidTest/assets/push_msg-split_update-chgnum.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-split_update-chgnum.txt diff --git a/src/androidTest/assets/push_msg-split_update.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-split_update.txt similarity index 100% rename from src/androidTest/assets/push_msg-split_update.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-split_update.txt diff --git a/src/androidTest/assets/push_msg-split_update_old_change_nb.txt b/android-client-main/src/androidTest/androidTest/assets/push_msg-split_update_old_change_nb.txt similarity index 100% rename from src/androidTest/assets/push_msg-split_update_old_change_nb.txt rename to android-client-main/src/androidTest/androidTest/assets/push_msg-split_update_old_change_nb.txt diff --git a/src/androidTest/assets/push_token-expired.txt b/android-client-main/src/androidTest/androidTest/assets/push_token-expired.txt similarity index 100% rename from src/androidTest/assets/push_token-expired.txt rename to android-client-main/src/androidTest/androidTest/assets/push_token-expired.txt diff --git a/src/androidTest/assets/simple_split.json b/android-client-main/src/androidTest/androidTest/assets/simple_split.json similarity index 100% rename from src/androidTest/assets/simple_split.json rename to android-client-main/src/androidTest/androidTest/assets/simple_split.json diff --git a/src/androidTest/assets/split.json b/android-client-main/src/androidTest/androidTest/assets/split.json similarity index 100% rename from src/androidTest/assets/split.json rename to android-client-main/src/androidTest/androidTest/assets/split.json diff --git a/src/androidTest/assets/split_changes_1.json b/android-client-main/src/androidTest/androidTest/assets/split_changes_1.json similarity index 100% rename from src/androidTest/assets/split_changes_1.json rename to android-client-main/src/androidTest/androidTest/assets/split_changes_1.json diff --git a/src/androidTest/assets/split_changes_flag_set-0.json b/android-client-main/src/androidTest/androidTest/assets/split_changes_flag_set-0.json similarity index 100% rename from src/androidTest/assets/split_changes_flag_set-0.json rename to android-client-main/src/androidTest/androidTest/assets/split_changes_flag_set-0.json diff --git a/src/androidTest/assets/split_changes_flag_set-1.json b/android-client-main/src/androidTest/androidTest/assets/split_changes_flag_set-1.json similarity index 100% rename from src/androidTest/assets/split_changes_flag_set-1.json rename to android-client-main/src/androidTest/androidTest/assets/split_changes_flag_set-1.json diff --git a/src/androidTest/assets/split_changes_flag_set-2.json b/android-client-main/src/androidTest/androidTest/assets/split_changes_flag_set-2.json similarity index 100% rename from src/androidTest/assets/split_changes_flag_set-2.json rename to android-client-main/src/androidTest/androidTest/assets/split_changes_flag_set-2.json diff --git a/src/androidTest/assets/split_changes_imp_toggle.json b/android-client-main/src/androidTest/androidTest/assets/split_changes_imp_toggle.json similarity index 100% rename from src/androidTest/assets/split_changes_imp_toggle.json rename to android-client-main/src/androidTest/androidTest/assets/split_changes_imp_toggle.json diff --git a/src/androidTest/assets/split_changes_large_segments-0.json b/android-client-main/src/androidTest/androidTest/assets/split_changes_large_segments-0.json similarity index 100% rename from src/androidTest/assets/split_changes_large_segments-0.json rename to android-client-main/src/androidTest/androidTest/assets/split_changes_large_segments-0.json diff --git a/src/androidTest/assets/split_changes_legacy.json b/android-client-main/src/androidTest/androidTest/assets/split_changes_legacy.json similarity index 100% rename from src/androidTest/assets/split_changes_legacy.json rename to android-client-main/src/androidTest/androidTest/assets/split_changes_legacy.json diff --git a/src/androidTest/assets/split_changes_rbs.json b/android-client-main/src/androidTest/androidTest/assets/split_changes_rbs.json similarity index 100% rename from src/androidTest/assets/split_changes_rbs.json rename to android-client-main/src/androidTest/androidTest/assets/split_changes_rbs.json diff --git a/src/androidTest/assets/split_changes_semver.json b/android-client-main/src/androidTest/androidTest/assets/split_changes_semver.json similarity index 100% rename from src/androidTest/assets/split_changes_semver.json rename to android-client-main/src/androidTest/androidTest/assets/split_changes_semver.json diff --git a/src/androidTest/assets/split_dependency.json b/android-client-main/src/androidTest/androidTest/assets/split_dependency.json similarity index 100% rename from src/androidTest/assets/split_dependency.json rename to android-client-main/src/androidTest/androidTest/assets/split_dependency.json diff --git a/src/androidTest/assets/splitchanges_int_test.json b/android-client-main/src/androidTest/androidTest/assets/splitchanges_int_test.json similarity index 100% rename from src/androidTest/assets/splitchanges_int_test.json rename to android-client-main/src/androidTest/androidTest/assets/splitchanges_int_test.json diff --git a/src/androidTest/assets/splitchanges_prerequisites.json b/android-client-main/src/androidTest/androidTest/assets/splitchanges_prerequisites.json similarity index 100% rename from src/androidTest/assets/splitchanges_prerequisites.json rename to android-client-main/src/androidTest/androidTest/assets/splitchanges_prerequisites.json diff --git a/src/androidTest/assets/splitchanges_unsupported_matcher.json b/android-client-main/src/androidTest/androidTest/assets/splitchanges_unsupported_matcher.json similarity index 100% rename from src/androidTest/assets/splitchanges_unsupported_matcher.json rename to android-client-main/src/androidTest/androidTest/assets/splitchanges_unsupported_matcher.json diff --git a/src/androidTest/assets/splits.yaml b/android-client-main/src/androidTest/androidTest/assets/splits.yaml similarity index 100% rename from src/androidTest/assets/splits.yaml rename to android-client-main/src/androidTest/androidTest/assets/splits.yaml diff --git a/src/androidTest/assets/splits1.properties b/android-client-main/src/androidTest/androidTest/assets/splits1.properties similarity index 100% rename from src/androidTest/assets/splits1.properties rename to android-client-main/src/androidTest/androidTest/assets/splits1.properties diff --git a/src/androidTest/assets/splits_test.properties b/android-client-main/src/androidTest/androidTest/assets/splits_test.properties similarity index 100% rename from src/androidTest/assets/splits_test.properties rename to android-client-main/src/androidTest/androidTest/assets/splits_test.properties diff --git a/src/androidTest/assets/splits_yml.yml b/android-client-main/src/androidTest/androidTest/assets/splits_yml.yml similarity index 100% rename from src/androidTest/assets/splits_yml.yml rename to android-client-main/src/androidTest/androidTest/assets/splits_yml.yml diff --git a/src/androidTest/java/fake/HttpClientMock.java b/android-client-main/src/androidTest/androidTest/java/fake/HttpClientMock.java similarity index 100% rename from src/androidTest/java/fake/HttpClientMock.java rename to android-client-main/src/androidTest/androidTest/java/fake/HttpClientMock.java diff --git a/src/androidTest/java/fake/HttpClientStub.java b/android-client-main/src/androidTest/androidTest/java/fake/HttpClientStub.java similarity index 100% rename from src/androidTest/java/fake/HttpClientStub.java rename to android-client-main/src/androidTest/androidTest/java/fake/HttpClientStub.java diff --git a/src/androidTest/java/fake/HttpRequestMock.java b/android-client-main/src/androidTest/androidTest/java/fake/HttpRequestMock.java similarity index 100% rename from src/androidTest/java/fake/HttpRequestMock.java rename to android-client-main/src/androidTest/androidTest/java/fake/HttpRequestMock.java diff --git a/src/androidTest/java/fake/HttpRequestStub.java b/android-client-main/src/androidTest/androidTest/java/fake/HttpRequestStub.java similarity index 100% rename from src/androidTest/java/fake/HttpRequestStub.java rename to android-client-main/src/androidTest/androidTest/java/fake/HttpRequestStub.java diff --git a/src/androidTest/java/fake/HttpResponseMock.java b/android-client-main/src/androidTest/androidTest/java/fake/HttpResponseMock.java similarity index 100% rename from src/androidTest/java/fake/HttpResponseMock.java rename to android-client-main/src/androidTest/androidTest/java/fake/HttpResponseMock.java diff --git a/src/androidTest/java/fake/HttpResponseMockDispatcher.java b/android-client-main/src/androidTest/androidTest/java/fake/HttpResponseMockDispatcher.java similarity index 100% rename from src/androidTest/java/fake/HttpResponseMockDispatcher.java rename to android-client-main/src/androidTest/androidTest/java/fake/HttpResponseMockDispatcher.java diff --git a/src/androidTest/java/fake/HttpResponseStub.java b/android-client-main/src/androidTest/androidTest/java/fake/HttpResponseStub.java similarity index 100% rename from src/androidTest/java/fake/HttpResponseStub.java rename to android-client-main/src/androidTest/androidTest/java/fake/HttpResponseStub.java diff --git a/src/androidTest/java/fake/HttpStreamRequestMock.java b/android-client-main/src/androidTest/androidTest/java/fake/HttpStreamRequestMock.java similarity index 100% rename from src/androidTest/java/fake/HttpStreamRequestMock.java rename to android-client-main/src/androidTest/androidTest/java/fake/HttpStreamRequestMock.java diff --git a/src/androidTest/java/fake/HttpStreamResponseMock.java b/android-client-main/src/androidTest/androidTest/java/fake/HttpStreamResponseMock.java similarity index 100% rename from src/androidTest/java/fake/HttpStreamResponseMock.java rename to android-client-main/src/androidTest/androidTest/java/fake/HttpStreamResponseMock.java diff --git a/src/androidTest/java/fake/LifecycleManagerStub.java b/android-client-main/src/androidTest/androidTest/java/fake/LifecycleManagerStub.java similarity index 100% rename from src/androidTest/java/fake/LifecycleManagerStub.java rename to android-client-main/src/androidTest/androidTest/java/fake/LifecycleManagerStub.java diff --git a/src/androidTest/java/fake/SplitClientStub.java b/android-client-main/src/androidTest/androidTest/java/fake/SplitClientStub.java similarity index 100% rename from src/androidTest/java/fake/SplitClientStub.java rename to android-client-main/src/androidTest/androidTest/java/fake/SplitClientStub.java diff --git a/src/androidTest/java/fake/SplitEventExecutorResourcesMock.java b/android-client-main/src/androidTest/androidTest/java/fake/SplitEventExecutorResourcesMock.java similarity index 100% rename from src/androidTest/java/fake/SplitEventExecutorResourcesMock.java rename to android-client-main/src/androidTest/androidTest/java/fake/SplitEventExecutorResourcesMock.java diff --git a/src/androidTest/java/fake/SyncManagerStub.java b/android-client-main/src/androidTest/androidTest/java/fake/SyncManagerStub.java similarity index 100% rename from src/androidTest/java/fake/SyncManagerStub.java rename to android-client-main/src/androidTest/androidTest/java/fake/SyncManagerStub.java diff --git a/src/androidTest/java/fake/SynchronizerSpyImpl.java b/android-client-main/src/androidTest/androidTest/java/fake/SynchronizerSpyImpl.java similarity index 100% rename from src/androidTest/java/fake/SynchronizerSpyImpl.java rename to android-client-main/src/androidTest/androidTest/java/fake/SynchronizerSpyImpl.java diff --git a/src/androidTest/java/helper/DataSample.kt b/android-client-main/src/androidTest/androidTest/java/helper/DataSample.kt similarity index 100% rename from src/androidTest/java/helper/DataSample.kt rename to android-client-main/src/androidTest/androidTest/java/helper/DataSample.kt diff --git a/src/androidTest/java/helper/DatabaseHelper.java b/android-client-main/src/androidTest/androidTest/java/helper/DatabaseHelper.java similarity index 100% rename from src/androidTest/java/helper/DatabaseHelper.java rename to android-client-main/src/androidTest/androidTest/java/helper/DatabaseHelper.java diff --git a/src/androidTest/java/helper/FileHelper.java b/android-client-main/src/androidTest/androidTest/java/helper/FileHelper.java similarity index 100% rename from src/androidTest/java/helper/FileHelper.java rename to android-client-main/src/androidTest/androidTest/java/helper/FileHelper.java diff --git a/src/androidTest/java/helper/ImpressionListenerHelper.java b/android-client-main/src/androidTest/androidTest/java/helper/ImpressionListenerHelper.java similarity index 100% rename from src/androidTest/java/helper/ImpressionListenerHelper.java rename to android-client-main/src/androidTest/androidTest/java/helper/ImpressionListenerHelper.java diff --git a/src/androidTest/java/helper/IntegrationHelper.java b/android-client-main/src/androidTest/androidTest/java/helper/IntegrationHelper.java similarity index 100% rename from src/androidTest/java/helper/IntegrationHelper.java rename to android-client-main/src/androidTest/androidTest/java/helper/IntegrationHelper.java diff --git a/src/androidTest/java/helper/SplitEventTaskHelper.java b/android-client-main/src/androidTest/androidTest/java/helper/SplitEventTaskHelper.java similarity index 100% rename from src/androidTest/java/helper/SplitEventTaskHelper.java rename to android-client-main/src/androidTest/androidTest/java/helper/SplitEventTaskHelper.java diff --git a/src/androidTest/java/helper/TestableSplitConfigBuilder.java b/android-client-main/src/androidTest/androidTest/java/helper/TestableSplitConfigBuilder.java similarity index 100% rename from src/androidTest/java/helper/TestableSplitConfigBuilder.java rename to android-client-main/src/androidTest/androidTest/java/helper/TestableSplitConfigBuilder.java diff --git a/src/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java similarity index 100% rename from src/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java diff --git a/src/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java b/android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java similarity index 100% rename from src/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java rename to android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java diff --git a/src/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java similarity index 100% rename from src/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java diff --git a/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java similarity index 100% rename from src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java diff --git a/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java b/android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java similarity index 100% rename from src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java rename to android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java diff --git a/src/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java b/android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java similarity index 100% rename from src/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java rename to android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java diff --git a/src/androidTest/java/tests/database/AttributesDaoTest.java b/android-client-main/src/androidTest/androidTest/java/tests/database/AttributesDaoTest.java similarity index 100% rename from src/androidTest/java/tests/database/AttributesDaoTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/database/AttributesDaoTest.java diff --git a/src/androidTest/java/tests/database/DatabaseInitializationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/database/DatabaseInitializationTest.java similarity index 100% rename from src/androidTest/java/tests/database/DatabaseInitializationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/database/DatabaseInitializationTest.java diff --git a/src/androidTest/java/tests/database/GeneralInfoDaoTest.java b/android-client-main/src/androidTest/androidTest/java/tests/database/GeneralInfoDaoTest.java similarity index 100% rename from src/androidTest/java/tests/database/GeneralInfoDaoTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/database/GeneralInfoDaoTest.java diff --git a/src/androidTest/java/tests/database/GenericDaoTest.java b/android-client-main/src/androidTest/androidTest/java/tests/database/GenericDaoTest.java similarity index 100% rename from src/androidTest/java/tests/database/GenericDaoTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/database/GenericDaoTest.java diff --git a/src/androidTest/java/tests/database/ImpressionDaoTest.java b/android-client-main/src/androidTest/androidTest/java/tests/database/ImpressionDaoTest.java similarity index 100% rename from src/androidTest/java/tests/database/ImpressionDaoTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/database/ImpressionDaoTest.java diff --git a/src/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java b/android-client-main/src/androidTest/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java similarity index 100% rename from src/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java diff --git a/src/androidTest/java/tests/database/MyLargeSegmentDaoTest.java b/android-client-main/src/androidTest/androidTest/java/tests/database/MyLargeSegmentDaoTest.java similarity index 100% rename from src/androidTest/java/tests/database/MyLargeSegmentDaoTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/database/MyLargeSegmentDaoTest.java diff --git a/src/androidTest/java/tests/database/MySegmentDaoTest.java b/android-client-main/src/androidTest/androidTest/java/tests/database/MySegmentDaoTest.java similarity index 100% rename from src/androidTest/java/tests/database/MySegmentDaoTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/database/MySegmentDaoTest.java diff --git a/src/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java b/android-client-main/src/androidTest/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java similarity index 100% rename from src/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java diff --git a/src/androidTest/java/tests/database/SplitDaoTest.java b/android-client-main/src/androidTest/androidTest/java/tests/database/SplitDaoTest.java similarity index 100% rename from src/androidTest/java/tests/database/SplitDaoTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/database/SplitDaoTest.java diff --git a/src/androidTest/java/tests/database/TrackDaoTest.java b/android-client-main/src/androidTest/androidTest/java/tests/database/TrackDaoTest.java similarity index 100% rename from src/androidTest/java/tests/database/TrackDaoTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/database/TrackDaoTest.java diff --git a/src/androidTest/java/tests/database/UniqueKeysDaoTest.java b/android-client-main/src/androidTest/androidTest/java/tests/database/UniqueKeysDaoTest.java similarity index 100% rename from src/androidTest/java/tests/database/UniqueKeysDaoTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/database/UniqueKeysDaoTest.java diff --git a/src/androidTest/java/tests/integration/FlagsSpecInRequestTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/FlagsSpecInRequestTest.java similarity index 100% rename from src/androidTest/java/tests/integration/FlagsSpecInRequestTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/FlagsSpecInRequestTest.java diff --git a/src/androidTest/java/tests/integration/InitialChangeNumberTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/InitialChangeNumberTest.java similarity index 100% rename from src/androidTest/java/tests/integration/InitialChangeNumberTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/InitialChangeNumberTest.java diff --git a/src/androidTest/java/tests/integration/IntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/IntegrationTest.java similarity index 100% rename from src/androidTest/java/tests/integration/IntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/IntegrationTest.java diff --git a/src/androidTest/java/tests/integration/LifecyleOnBGTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/LifecyleOnBGTest.java similarity index 100% rename from src/androidTest/java/tests/integration/LifecyleOnBGTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/LifecyleOnBGTest.java diff --git a/src/androidTest/java/tests/integration/MySegmentUpdatedTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/MySegmentUpdatedTest.java similarity index 100% rename from src/androidTest/java/tests/integration/MySegmentUpdatedTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/MySegmentUpdatedTest.java diff --git a/src/androidTest/java/tests/integration/MySegmentsServerErrorTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/MySegmentsServerErrorTest.java similarity index 100% rename from src/androidTest/java/tests/integration/MySegmentsServerErrorTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/MySegmentsServerErrorTest.java diff --git a/src/androidTest/java/tests/integration/ProxyFactoryTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/ProxyFactoryTest.java similarity index 100% rename from src/androidTest/java/tests/integration/ProxyFactoryTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/ProxyFactoryTest.java diff --git a/src/androidTest/java/tests/integration/SingleSyncTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/SingleSyncTest.java similarity index 100% rename from src/androidTest/java/tests/integration/SingleSyncTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/SingleSyncTest.java diff --git a/src/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java similarity index 100% rename from src/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java diff --git a/src/androidTest/java/tests/integration/SplitChangesServerErrorTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/SplitChangesServerErrorTest.java similarity index 100% rename from src/androidTest/java/tests/integration/SplitChangesServerErrorTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/SplitChangesServerErrorTest.java diff --git a/src/androidTest/java/tests/integration/SplitChangesTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/SplitChangesTest.java similarity index 100% rename from src/androidTest/java/tests/integration/SplitChangesTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/SplitChangesTest.java diff --git a/src/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java similarity index 100% rename from src/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java diff --git a/src/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java similarity index 100% rename from src/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java diff --git a/src/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java similarity index 100% rename from src/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java diff --git a/src/androidTest/java/tests/integration/TrackTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/TrackTest.java similarity index 100% rename from src/androidTest/java/tests/integration/TrackTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/TrackTest.java diff --git a/src/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java similarity index 100% rename from src/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java diff --git a/src/androidTest/java/tests/integration/encryption/EncryptionTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/encryption/EncryptionTest.java similarity index 100% rename from src/androidTest/java/tests/integration/encryption/EncryptionTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/encryption/EncryptionTest.java diff --git a/src/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java similarity index 100% rename from src/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java diff --git a/src/androidTest/java/tests/integration/init/InitializationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/init/InitializationTest.java similarity index 100% rename from src/androidTest/java/tests/integration/init/InitializationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/init/InitializationTest.java diff --git a/src/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java similarity index 100% rename from src/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java diff --git a/src/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java similarity index 100% rename from src/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java diff --git a/src/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java similarity index 100% rename from src/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java diff --git a/src/androidTest/java/tests/integration/matcher/PrerequisitesTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/PrerequisitesTest.java similarity index 100% rename from src/androidTest/java/tests/integration/matcher/PrerequisitesTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/PrerequisitesTest.java diff --git a/src/androidTest/java/tests/integration/matcher/SemverMatcherTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/SemverMatcherTest.java similarity index 100% rename from src/androidTest/java/tests/integration/matcher/SemverMatcherTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/SemverMatcherTest.java diff --git a/src/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java similarity index 100% rename from src/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java diff --git a/src/androidTest/java/tests/integration/pin/CertPinningTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/pin/CertPinningTest.java similarity index 100% rename from src/androidTest/java/tests/integration/pin/CertPinningTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/pin/CertPinningTest.java diff --git a/src/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java similarity index 100% rename from src/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java diff --git a/src/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java similarity index 100% rename from src/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java diff --git a/src/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java similarity index 100% rename from src/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java diff --git a/src/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java similarity index 100% rename from src/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java diff --git a/src/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java similarity index 100% rename from src/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java diff --git a/src/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java similarity index 100% rename from src/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java diff --git a/src/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java similarity index 100% rename from src/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java diff --git a/src/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java similarity index 100% rename from src/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java diff --git a/src/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java similarity index 100% rename from src/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java diff --git a/src/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java similarity index 100% rename from src/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java diff --git a/src/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java similarity index 100% rename from src/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java diff --git a/src/androidTest/java/tests/integration/shared/TestingData.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/shared/TestingData.java similarity index 100% rename from src/androidTest/java/tests/integration/shared/TestingData.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/shared/TestingData.java diff --git a/src/androidTest/java/tests/integration/shared/TestingHelper.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/shared/TestingHelper.java similarity index 100% rename from src/androidTest/java/tests/integration/shared/TestingHelper.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/shared/TestingHelper.java diff --git a/src/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java diff --git a/src/androidTest/java/tests/integration/streaming/AblyErrorTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/AblyErrorTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/AblyErrorTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/AblyErrorTest.java diff --git a/src/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java diff --git a/src/androidTest/java/tests/integration/streaming/ControlTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/ControlTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/ControlTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/ControlTest.java diff --git a/src/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java diff --git a/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java diff --git a/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java diff --git a/src/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java diff --git a/src/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java diff --git a/src/androidTest/java/tests/integration/streaming/OccupancyTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/OccupancyTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/OccupancyTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/OccupancyTest.java diff --git a/src/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java diff --git a/src/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java diff --git a/src/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java diff --git a/src/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java diff --git a/src/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java diff --git a/src/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java diff --git a/src/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java diff --git a/src/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java diff --git a/src/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java diff --git a/src/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java diff --git a/src/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java diff --git a/src/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java similarity index 100% rename from src/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java diff --git a/src/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java similarity index 100% rename from src/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java diff --git a/src/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java similarity index 100% rename from src/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java diff --git a/src/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java similarity index 100% rename from src/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java diff --git a/src/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java b/android-client-main/src/androidTest/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java similarity index 100% rename from src/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java diff --git a/src/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt b/android-client-main/src/androidTest/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt similarity index 100% rename from src/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt rename to android-client-main/src/androidTest/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt diff --git a/src/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt b/android-client-main/src/androidTest/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt similarity index 100% rename from src/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt rename to android-client-main/src/androidTest/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt diff --git a/src/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt b/android-client-main/src/androidTest/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt similarity index 100% rename from src/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt rename to android-client-main/src/androidTest/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt diff --git a/src/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java b/android-client-main/src/androidTest/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java similarity index 100% rename from src/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java diff --git a/src/androidTest/java/tests/localhost/LocalhostTest.java b/android-client-main/src/androidTest/androidTest/java/tests/localhost/LocalhostTest.java similarity index 100% rename from src/androidTest/java/tests/localhost/LocalhostTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/localhost/LocalhostTest.java diff --git a/src/androidTest/java/tests/service/CompressionTest.java b/android-client-main/src/androidTest/androidTest/java/tests/service/CompressionTest.java similarity index 100% rename from src/androidTest/java/tests/service/CompressionTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/service/CompressionTest.java diff --git a/src/androidTest/java/tests/service/EventsManagerTest.java b/android-client-main/src/androidTest/androidTest/java/tests/service/EventsManagerTest.java similarity index 100% rename from src/androidTest/java/tests/service/EventsManagerTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/service/EventsManagerTest.java diff --git a/src/androidTest/java/tests/service/EventsRequestTest.java b/android-client-main/src/androidTest/androidTest/java/tests/service/EventsRequestTest.java similarity index 100% rename from src/androidTest/java/tests/service/EventsRequestTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/service/EventsRequestTest.java diff --git a/src/androidTest/java/tests/service/ImpressionsRequestTest.java b/android-client-main/src/androidTest/androidTest/java/tests/service/ImpressionsRequestTest.java similarity index 100% rename from src/androidTest/java/tests/service/ImpressionsRequestTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/service/ImpressionsRequestTest.java diff --git a/src/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java b/android-client-main/src/androidTest/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java similarity index 100% rename from src/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java diff --git a/src/androidTest/java/tests/service/SdkUpdatePollingTest.java b/android-client-main/src/androidTest/androidTest/java/tests/service/SdkUpdatePollingTest.java similarity index 100% rename from src/androidTest/java/tests/service/SdkUpdatePollingTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/service/SdkUpdatePollingTest.java diff --git a/src/androidTest/java/tests/service/SseJwtTokenParserTest.java b/android-client-main/src/androidTest/androidTest/java/tests/service/SseJwtTokenParserTest.java similarity index 100% rename from src/androidTest/java/tests/service/SseJwtTokenParserTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/service/SseJwtTokenParserTest.java diff --git a/src/androidTest/java/tests/service/UniqueKeysIntegrationTest.java b/android-client-main/src/androidTest/androidTest/java/tests/service/UniqueKeysIntegrationTest.java similarity index 100% rename from src/androidTest/java/tests/service/UniqueKeysIntegrationTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/service/UniqueKeysIntegrationTest.java diff --git a/src/androidTest/java/tests/service/UrlSanitizerTest.java b/android-client-main/src/androidTest/androidTest/java/tests/service/UrlSanitizerTest.java similarity index 100% rename from src/androidTest/java/tests/service/UrlSanitizerTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/service/UrlSanitizerTest.java diff --git a/src/androidTest/java/tests/storage/GeneralInfoStorageTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/GeneralInfoStorageTest.java similarity index 100% rename from src/androidTest/java/tests/storage/GeneralInfoStorageTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/GeneralInfoStorageTest.java diff --git a/src/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java similarity index 100% rename from src/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java diff --git a/src/androidTest/java/tests/storage/LoadSplitTaskTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/LoadSplitTaskTest.java similarity index 100% rename from src/androidTest/java/tests/storage/LoadSplitTaskTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/LoadSplitTaskTest.java diff --git a/src/androidTest/java/tests/storage/MySegmentsStorageTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/MySegmentsStorageTest.java similarity index 100% rename from src/androidTest/java/tests/storage/MySegmentsStorageTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/MySegmentsStorageTest.java diff --git a/src/androidTest/java/tests/storage/PersistentEventStorageTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentEventStorageTest.java similarity index 100% rename from src/androidTest/java/tests/storage/PersistentEventStorageTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentEventStorageTest.java diff --git a/src/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java similarity index 100% rename from src/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java diff --git a/src/androidTest/java/tests/storage/PersistentImpressionStorageTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentImpressionStorageTest.java similarity index 100% rename from src/androidTest/java/tests/storage/PersistentImpressionStorageTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentImpressionStorageTest.java diff --git a/src/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java similarity index 100% rename from src/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java diff --git a/src/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java similarity index 100% rename from src/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java diff --git a/src/androidTest/java/tests/storage/PersistentSplitsStorageTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentSplitsStorageTest.java similarity index 100% rename from src/androidTest/java/tests/storage/PersistentSplitsStorageTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentSplitsStorageTest.java diff --git a/src/androidTest/java/tests/storage/SplitsStorageTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/SplitsStorageTest.java similarity index 100% rename from src/androidTest/java/tests/storage/SplitsStorageTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/SplitsStorageTest.java diff --git a/src/androidTest/java/tests/storage/cipher/CBCCipherTest.kt b/android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/CBCCipherTest.kt similarity index 100% rename from src/androidTest/java/tests/storage/cipher/CBCCipherTest.kt rename to android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/CBCCipherTest.kt diff --git a/src/androidTest/java/tests/storage/cipher/KeyManagerTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/KeyManagerTest.java similarity index 100% rename from src/androidTest/java/tests/storage/cipher/KeyManagerTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/KeyManagerTest.java diff --git a/src/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java similarity index 100% rename from src/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java diff --git a/src/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java b/android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java similarity index 100% rename from src/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java diff --git a/src/androidTest/java/tests/workmanager/WMWorkersSetupTest.java b/android-client-main/src/androidTest/androidTest/java/tests/workmanager/WMWorkersSetupTest.java similarity index 100% rename from src/androidTest/java/tests/workmanager/WMWorkersSetupTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/workmanager/WMWorkersSetupTest.java diff --git a/src/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java b/android-client-main/src/androidTest/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java similarity index 100% rename from src/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java rename to android-client-main/src/androidTest/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java diff --git a/android-client-main/src/main/AndroidManifest.xml b/android-client-main/src/main/AndroidManifest.xml new file mode 100644 index 000000000..9a40236b9 --- /dev/null +++ b/android-client-main/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + + diff --git a/src/main/java/io/split/android/client/AlwaysReturnControlSplitClient.java b/android-client-main/src/main/java/io/split/android/client/AlwaysReturnControlSplitClient.java similarity index 100% rename from src/main/java/io/split/android/client/AlwaysReturnControlSplitClient.java rename to android-client-main/src/main/java/io/split/android/client/AlwaysReturnControlSplitClient.java diff --git a/src/main/java/io/split/android/client/Destroyer.java b/android-client-main/src/main/java/io/split/android/client/Destroyer.java similarity index 100% rename from src/main/java/io/split/android/client/Destroyer.java rename to android-client-main/src/main/java/io/split/android/client/Destroyer.java diff --git a/src/main/java/io/split/android/client/EvaluationOptions.java b/android-client-main/src/main/java/io/split/android/client/EvaluationOptions.java similarity index 100% rename from src/main/java/io/split/android/client/EvaluationOptions.java rename to android-client-main/src/main/java/io/split/android/client/EvaluationOptions.java diff --git a/src/main/java/io/split/android/client/EvaluationResult.java b/android-client-main/src/main/java/io/split/android/client/EvaluationResult.java similarity index 100% rename from src/main/java/io/split/android/client/EvaluationResult.java rename to android-client-main/src/main/java/io/split/android/client/EvaluationResult.java diff --git a/src/main/java/io/split/android/client/Evaluator.java b/android-client-main/src/main/java/io/split/android/client/Evaluator.java similarity index 100% rename from src/main/java/io/split/android/client/Evaluator.java rename to android-client-main/src/main/java/io/split/android/client/Evaluator.java diff --git a/src/main/java/io/split/android/client/EvaluatorImpl.java b/android-client-main/src/main/java/io/split/android/client/EvaluatorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/EvaluatorImpl.java rename to android-client-main/src/main/java/io/split/android/client/EvaluatorImpl.java diff --git a/src/main/java/io/split/android/client/EventsTracker.java b/android-client-main/src/main/java/io/split/android/client/EventsTracker.java similarity index 100% rename from src/main/java/io/split/android/client/EventsTracker.java rename to android-client-main/src/main/java/io/split/android/client/EventsTracker.java diff --git a/src/main/java/io/split/android/client/EventsTrackerImpl.java b/android-client-main/src/main/java/io/split/android/client/EventsTrackerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/EventsTrackerImpl.java rename to android-client-main/src/main/java/io/split/android/client/EventsTrackerImpl.java diff --git a/src/main/java/io/split/android/client/FeatureFlagFilter.java b/android-client-main/src/main/java/io/split/android/client/FeatureFlagFilter.java similarity index 100% rename from src/main/java/io/split/android/client/FeatureFlagFilter.java rename to android-client-main/src/main/java/io/split/android/client/FeatureFlagFilter.java diff --git a/src/main/java/io/split/android/client/FilterBuilder.java b/android-client-main/src/main/java/io/split/android/client/FilterBuilder.java similarity index 100% rename from src/main/java/io/split/android/client/FilterBuilder.java rename to android-client-main/src/main/java/io/split/android/client/FilterBuilder.java diff --git a/src/main/java/io/split/android/client/FilterGrouper.java b/android-client-main/src/main/java/io/split/android/client/FilterGrouper.java similarity index 100% rename from src/main/java/io/split/android/client/FilterGrouper.java rename to android-client-main/src/main/java/io/split/android/client/FilterGrouper.java diff --git a/src/main/java/io/split/android/client/FlagSetsFilter.java b/android-client-main/src/main/java/io/split/android/client/FlagSetsFilter.java similarity index 100% rename from src/main/java/io/split/android/client/FlagSetsFilter.java rename to android-client-main/src/main/java/io/split/android/client/FlagSetsFilter.java diff --git a/src/main/java/io/split/android/client/FlagSetsFilterImpl.java b/android-client-main/src/main/java/io/split/android/client/FlagSetsFilterImpl.java similarity index 100% rename from src/main/java/io/split/android/client/FlagSetsFilterImpl.java rename to android-client-main/src/main/java/io/split/android/client/FlagSetsFilterImpl.java diff --git a/src/main/java/io/split/android/client/ProcessedEventProperties.java b/android-client-main/src/main/java/io/split/android/client/ProcessedEventProperties.java similarity index 100% rename from src/main/java/io/split/android/client/ProcessedEventProperties.java rename to android-client-main/src/main/java/io/split/android/client/ProcessedEventProperties.java diff --git a/src/main/java/io/split/android/client/PropertyValidatorImpl.java b/android-client-main/src/main/java/io/split/android/client/PropertyValidatorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/PropertyValidatorImpl.java rename to android-client-main/src/main/java/io/split/android/client/PropertyValidatorImpl.java diff --git a/src/main/java/io/split/android/client/RetryBackoffCounterTimerFactory.java b/android-client-main/src/main/java/io/split/android/client/RetryBackoffCounterTimerFactory.java similarity index 100% rename from src/main/java/io/split/android/client/RetryBackoffCounterTimerFactory.java rename to android-client-main/src/main/java/io/split/android/client/RetryBackoffCounterTimerFactory.java diff --git a/src/main/java/io/split/android/client/RolloutCacheConfiguration.java b/android-client-main/src/main/java/io/split/android/client/RolloutCacheConfiguration.java similarity index 100% rename from src/main/java/io/split/android/client/RolloutCacheConfiguration.java rename to android-client-main/src/main/java/io/split/android/client/RolloutCacheConfiguration.java diff --git a/src/main/java/io/split/android/client/ServiceEndpoints.java b/android-client-main/src/main/java/io/split/android/client/ServiceEndpoints.java similarity index 100% rename from src/main/java/io/split/android/client/ServiceEndpoints.java rename to android-client-main/src/main/java/io/split/android/client/ServiceEndpoints.java diff --git a/src/main/java/io/split/android/client/SplitClient.java b/android-client-main/src/main/java/io/split/android/client/SplitClient.java similarity index 100% rename from src/main/java/io/split/android/client/SplitClient.java rename to android-client-main/src/main/java/io/split/android/client/SplitClient.java diff --git a/src/main/java/io/split/android/client/SplitClientConfig.java b/android-client-main/src/main/java/io/split/android/client/SplitClientConfig.java similarity index 100% rename from src/main/java/io/split/android/client/SplitClientConfig.java rename to android-client-main/src/main/java/io/split/android/client/SplitClientConfig.java diff --git a/src/main/java/io/split/android/client/SplitClientFactory.java b/android-client-main/src/main/java/io/split/android/client/SplitClientFactory.java similarity index 100% rename from src/main/java/io/split/android/client/SplitClientFactory.java rename to android-client-main/src/main/java/io/split/android/client/SplitClientFactory.java diff --git a/src/main/java/io/split/android/client/SplitClientFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/SplitClientFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/SplitClientFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/SplitClientFactoryImpl.java diff --git a/src/main/java/io/split/android/client/SplitClientImpl.java b/android-client-main/src/main/java/io/split/android/client/SplitClientImpl.java similarity index 100% rename from src/main/java/io/split/android/client/SplitClientImpl.java rename to android-client-main/src/main/java/io/split/android/client/SplitClientImpl.java diff --git a/src/main/java/io/split/android/client/SplitFactory.java b/android-client-main/src/main/java/io/split/android/client/SplitFactory.java similarity index 100% rename from src/main/java/io/split/android/client/SplitFactory.java rename to android-client-main/src/main/java/io/split/android/client/SplitFactory.java diff --git a/src/main/java/io/split/android/client/SplitFactoryBuilder.java b/android-client-main/src/main/java/io/split/android/client/SplitFactoryBuilder.java similarity index 100% rename from src/main/java/io/split/android/client/SplitFactoryBuilder.java rename to android-client-main/src/main/java/io/split/android/client/SplitFactoryBuilder.java diff --git a/src/main/java/io/split/android/client/SplitFactoryHelper.java b/android-client-main/src/main/java/io/split/android/client/SplitFactoryHelper.java similarity index 100% rename from src/main/java/io/split/android/client/SplitFactoryHelper.java rename to android-client-main/src/main/java/io/split/android/client/SplitFactoryHelper.java diff --git a/src/main/java/io/split/android/client/SplitFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/SplitFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/SplitFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/SplitFactoryImpl.java diff --git a/src/main/java/io/split/android/client/SplitFilter.java b/android-client-main/src/main/java/io/split/android/client/SplitFilter.java similarity index 100% rename from src/main/java/io/split/android/client/SplitFilter.java rename to android-client-main/src/main/java/io/split/android/client/SplitFilter.java diff --git a/src/main/java/io/split/android/client/SplitManager.java b/android-client-main/src/main/java/io/split/android/client/SplitManager.java similarity index 100% rename from src/main/java/io/split/android/client/SplitManager.java rename to android-client-main/src/main/java/io/split/android/client/SplitManager.java diff --git a/src/main/java/io/split/android/client/SplitManagerImpl.java b/android-client-main/src/main/java/io/split/android/client/SplitManagerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/SplitManagerImpl.java rename to android-client-main/src/main/java/io/split/android/client/SplitManagerImpl.java diff --git a/src/main/java/io/split/android/client/SplitResult.java b/android-client-main/src/main/java/io/split/android/client/SplitResult.java similarity index 100% rename from src/main/java/io/split/android/client/SplitResult.java rename to android-client-main/src/main/java/io/split/android/client/SplitResult.java diff --git a/src/main/java/io/split/android/client/SyncConfig.java b/android-client-main/src/main/java/io/split/android/client/SyncConfig.java similarity index 100% rename from src/main/java/io/split/android/client/SyncConfig.java rename to android-client-main/src/main/java/io/split/android/client/SyncConfig.java diff --git a/src/main/java/io/split/android/client/TestingConfig.java b/android-client-main/src/main/java/io/split/android/client/TestingConfig.java similarity index 100% rename from src/main/java/io/split/android/client/TestingConfig.java rename to android-client-main/src/main/java/io/split/android/client/TestingConfig.java diff --git a/src/main/java/io/split/android/client/TreatmentLabels.java b/android-client-main/src/main/java/io/split/android/client/TreatmentLabels.java similarity index 100% rename from src/main/java/io/split/android/client/TreatmentLabels.java rename to android-client-main/src/main/java/io/split/android/client/TreatmentLabels.java diff --git a/src/main/java/io/split/android/client/UserConsentManager.java b/android-client-main/src/main/java/io/split/android/client/UserConsentManager.java similarity index 100% rename from src/main/java/io/split/android/client/UserConsentManager.java rename to android-client-main/src/main/java/io/split/android/client/UserConsentManager.java diff --git a/src/main/java/io/split/android/client/UserConsentManagerImpl.java b/android-client-main/src/main/java/io/split/android/client/UserConsentManagerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/UserConsentManagerImpl.java rename to android-client-main/src/main/java/io/split/android/client/UserConsentManagerImpl.java diff --git a/src/main/java/io/split/android/client/api/Key.java b/android-client-main/src/main/java/io/split/android/client/api/Key.java similarity index 100% rename from src/main/java/io/split/android/client/api/Key.java rename to android-client-main/src/main/java/io/split/android/client/api/Key.java diff --git a/src/main/java/io/split/android/client/api/SplitView.java b/android-client-main/src/main/java/io/split/android/client/api/SplitView.java similarity index 100% rename from src/main/java/io/split/android/client/api/SplitView.java rename to android-client-main/src/main/java/io/split/android/client/api/SplitView.java diff --git a/src/main/java/io/split/android/client/attributes/AttributesManager.java b/android-client-main/src/main/java/io/split/android/client/attributes/AttributesManager.java similarity index 100% rename from src/main/java/io/split/android/client/attributes/AttributesManager.java rename to android-client-main/src/main/java/io/split/android/client/attributes/AttributesManager.java diff --git a/src/main/java/io/split/android/client/attributes/AttributesManagerFactory.java b/android-client-main/src/main/java/io/split/android/client/attributes/AttributesManagerFactory.java similarity index 100% rename from src/main/java/io/split/android/client/attributes/AttributesManagerFactory.java rename to android-client-main/src/main/java/io/split/android/client/attributes/AttributesManagerFactory.java diff --git a/src/main/java/io/split/android/client/attributes/AttributesManagerFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/attributes/AttributesManagerFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/attributes/AttributesManagerFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/attributes/AttributesManagerFactoryImpl.java diff --git a/src/main/java/io/split/android/client/attributes/AttributesManagerImpl.java b/android-client-main/src/main/java/io/split/android/client/attributes/AttributesManagerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/attributes/AttributesManagerImpl.java rename to android-client-main/src/main/java/io/split/android/client/attributes/AttributesManagerImpl.java diff --git a/src/main/java/io/split/android/client/attributes/AttributesMerger.java b/android-client-main/src/main/java/io/split/android/client/attributes/AttributesMerger.java similarity index 100% rename from src/main/java/io/split/android/client/attributes/AttributesMerger.java rename to android-client-main/src/main/java/io/split/android/client/attributes/AttributesMerger.java diff --git a/src/main/java/io/split/android/client/attributes/AttributesMergerImpl.java b/android-client-main/src/main/java/io/split/android/client/attributes/AttributesMergerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/attributes/AttributesMergerImpl.java rename to android-client-main/src/main/java/io/split/android/client/attributes/AttributesMergerImpl.java diff --git a/src/main/java/io/split/android/client/common/CompressionType.java b/android-client-main/src/main/java/io/split/android/client/common/CompressionType.java similarity index 100% rename from src/main/java/io/split/android/client/common/CompressionType.java rename to android-client-main/src/main/java/io/split/android/client/common/CompressionType.java diff --git a/src/main/java/io/split/android/client/common/CompressionUtilProvider.java b/android-client-main/src/main/java/io/split/android/client/common/CompressionUtilProvider.java similarity index 100% rename from src/main/java/io/split/android/client/common/CompressionUtilProvider.java rename to android-client-main/src/main/java/io/split/android/client/common/CompressionUtilProvider.java diff --git a/src/main/java/io/split/android/client/dtos/Algorithm.java b/android-client-main/src/main/java/io/split/android/client/dtos/Algorithm.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Algorithm.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Algorithm.java diff --git a/src/main/java/io/split/android/client/dtos/AllSegmentsChange.java b/android-client-main/src/main/java/io/split/android/client/dtos/AllSegmentsChange.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/AllSegmentsChange.java rename to android-client-main/src/main/java/io/split/android/client/dtos/AllSegmentsChange.java diff --git a/src/main/java/io/split/android/client/dtos/BetweenMatcherData.java b/android-client-main/src/main/java/io/split/android/client/dtos/BetweenMatcherData.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/BetweenMatcherData.java rename to android-client-main/src/main/java/io/split/android/client/dtos/BetweenMatcherData.java diff --git a/src/main/java/io/split/android/client/dtos/BetweenStringMatcherData.java b/android-client-main/src/main/java/io/split/android/client/dtos/BetweenStringMatcherData.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/BetweenStringMatcherData.java rename to android-client-main/src/main/java/io/split/android/client/dtos/BetweenStringMatcherData.java diff --git a/src/main/java/io/split/android/client/dtos/ChunkHeader.java b/android-client-main/src/main/java/io/split/android/client/dtos/ChunkHeader.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/ChunkHeader.java rename to android-client-main/src/main/java/io/split/android/client/dtos/ChunkHeader.java diff --git a/src/main/java/io/split/android/client/dtos/Condition.java b/android-client-main/src/main/java/io/split/android/client/dtos/Condition.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Condition.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Condition.java diff --git a/src/main/java/io/split/android/client/dtos/ConditionType.java b/android-client-main/src/main/java/io/split/android/client/dtos/ConditionType.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/ConditionType.java rename to android-client-main/src/main/java/io/split/android/client/dtos/ConditionType.java diff --git a/src/main/java/io/split/android/client/dtos/Counter.java b/android-client-main/src/main/java/io/split/android/client/dtos/Counter.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Counter.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Counter.java diff --git a/src/main/java/io/split/android/client/dtos/DataType.java b/android-client-main/src/main/java/io/split/android/client/dtos/DataType.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/DataType.java rename to android-client-main/src/main/java/io/split/android/client/dtos/DataType.java diff --git a/src/main/java/io/split/android/client/dtos/DependencyMatcherData.java b/android-client-main/src/main/java/io/split/android/client/dtos/DependencyMatcherData.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/DependencyMatcherData.java rename to android-client-main/src/main/java/io/split/android/client/dtos/DependencyMatcherData.java diff --git a/src/main/java/io/split/android/client/dtos/DeprecatedKeyImpression.java b/android-client-main/src/main/java/io/split/android/client/dtos/DeprecatedKeyImpression.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/DeprecatedKeyImpression.java rename to android-client-main/src/main/java/io/split/android/client/dtos/DeprecatedKeyImpression.java diff --git a/src/main/java/io/split/android/client/dtos/Event.java b/android-client-main/src/main/java/io/split/android/client/dtos/Event.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Event.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Event.java diff --git a/src/main/java/io/split/android/client/dtos/Excluded.java b/android-client-main/src/main/java/io/split/android/client/dtos/Excluded.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Excluded.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Excluded.java diff --git a/src/main/java/io/split/android/client/dtos/ExcludedSegment.java b/android-client-main/src/main/java/io/split/android/client/dtos/ExcludedSegment.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/ExcludedSegment.java rename to android-client-main/src/main/java/io/split/android/client/dtos/ExcludedSegment.java diff --git a/src/main/java/io/split/android/client/dtos/Helper.java b/android-client-main/src/main/java/io/split/android/client/dtos/Helper.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Helper.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Helper.java diff --git a/src/main/java/io/split/android/client/dtos/HttpProxyDto.java b/android-client-main/src/main/java/io/split/android/client/dtos/HttpProxyDto.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/HttpProxyDto.java rename to android-client-main/src/main/java/io/split/android/client/dtos/HttpProxyDto.java diff --git a/src/main/java/io/split/android/client/dtos/Identifiable.java b/android-client-main/src/main/java/io/split/android/client/dtos/Identifiable.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Identifiable.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Identifiable.java diff --git a/src/main/java/io/split/android/client/dtos/KeyImpression.java b/android-client-main/src/main/java/io/split/android/client/dtos/KeyImpression.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/KeyImpression.java rename to android-client-main/src/main/java/io/split/android/client/dtos/KeyImpression.java diff --git a/src/main/java/io/split/android/client/dtos/KeySelector.java b/android-client-main/src/main/java/io/split/android/client/dtos/KeySelector.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/KeySelector.java rename to android-client-main/src/main/java/io/split/android/client/dtos/KeySelector.java diff --git a/src/main/java/io/split/android/client/dtos/Matcher.java b/android-client-main/src/main/java/io/split/android/client/dtos/Matcher.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Matcher.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Matcher.java diff --git a/src/main/java/io/split/android/client/dtos/MatcherCombiner.java b/android-client-main/src/main/java/io/split/android/client/dtos/MatcherCombiner.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/MatcherCombiner.java rename to android-client-main/src/main/java/io/split/android/client/dtos/MatcherCombiner.java diff --git a/src/main/java/io/split/android/client/dtos/MatcherGroup.java b/android-client-main/src/main/java/io/split/android/client/dtos/MatcherGroup.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/MatcherGroup.java rename to android-client-main/src/main/java/io/split/android/client/dtos/MatcherGroup.java diff --git a/src/main/java/io/split/android/client/dtos/MatcherType.java b/android-client-main/src/main/java/io/split/android/client/dtos/MatcherType.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/MatcherType.java rename to android-client-main/src/main/java/io/split/android/client/dtos/MatcherType.java diff --git a/src/main/java/io/split/android/client/dtos/Partition.java b/android-client-main/src/main/java/io/split/android/client/dtos/Partition.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Partition.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Partition.java diff --git a/src/main/java/io/split/android/client/dtos/Prerequisite.java b/android-client-main/src/main/java/io/split/android/client/dtos/Prerequisite.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Prerequisite.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Prerequisite.java diff --git a/src/main/java/io/split/android/client/dtos/RuleBasedSegment.java b/android-client-main/src/main/java/io/split/android/client/dtos/RuleBasedSegment.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/RuleBasedSegment.java rename to android-client-main/src/main/java/io/split/android/client/dtos/RuleBasedSegment.java diff --git a/src/main/java/io/split/android/client/dtos/RuleBasedSegmentChange.java b/android-client-main/src/main/java/io/split/android/client/dtos/RuleBasedSegmentChange.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/RuleBasedSegmentChange.java rename to android-client-main/src/main/java/io/split/android/client/dtos/RuleBasedSegmentChange.java diff --git a/src/main/java/io/split/android/client/dtos/Segment.java b/android-client-main/src/main/java/io/split/android/client/dtos/Segment.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Segment.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Segment.java diff --git a/src/main/java/io/split/android/client/dtos/SegmentResponse.java b/android-client-main/src/main/java/io/split/android/client/dtos/SegmentResponse.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/SegmentResponse.java rename to android-client-main/src/main/java/io/split/android/client/dtos/SegmentResponse.java diff --git a/src/main/java/io/split/android/client/dtos/SegmentsChange.java b/android-client-main/src/main/java/io/split/android/client/dtos/SegmentsChange.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/SegmentsChange.java rename to android-client-main/src/main/java/io/split/android/client/dtos/SegmentsChange.java diff --git a/src/main/java/io/split/android/client/dtos/SerializableEvent.java b/android-client-main/src/main/java/io/split/android/client/dtos/SerializableEvent.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/SerializableEvent.java rename to android-client-main/src/main/java/io/split/android/client/dtos/SerializableEvent.java diff --git a/src/main/java/io/split/android/client/dtos/Split.java b/android-client-main/src/main/java/io/split/android/client/dtos/Split.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Split.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Split.java diff --git a/src/main/java/io/split/android/client/dtos/SplitChange.java b/android-client-main/src/main/java/io/split/android/client/dtos/SplitChange.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/SplitChange.java rename to android-client-main/src/main/java/io/split/android/client/dtos/SplitChange.java diff --git a/src/main/java/io/split/android/client/dtos/Status.java b/android-client-main/src/main/java/io/split/android/client/dtos/Status.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/Status.java rename to android-client-main/src/main/java/io/split/android/client/dtos/Status.java diff --git a/src/main/java/io/split/android/client/dtos/TargetingRulesChange.java b/android-client-main/src/main/java/io/split/android/client/dtos/TargetingRulesChange.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/TargetingRulesChange.java rename to android-client-main/src/main/java/io/split/android/client/dtos/TargetingRulesChange.java diff --git a/src/main/java/io/split/android/client/dtos/TestImpressions.java b/android-client-main/src/main/java/io/split/android/client/dtos/TestImpressions.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/TestImpressions.java rename to android-client-main/src/main/java/io/split/android/client/dtos/TestImpressions.java diff --git a/src/main/java/io/split/android/client/dtos/URN.java b/android-client-main/src/main/java/io/split/android/client/dtos/URN.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/URN.java rename to android-client-main/src/main/java/io/split/android/client/dtos/URN.java diff --git a/src/main/java/io/split/android/client/dtos/UnaryNumericMatcherData.java b/android-client-main/src/main/java/io/split/android/client/dtos/UnaryNumericMatcherData.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/UnaryNumericMatcherData.java rename to android-client-main/src/main/java/io/split/android/client/dtos/UnaryNumericMatcherData.java diff --git a/src/main/java/io/split/android/client/dtos/UserDefinedLargeSegmentMatcherData.java b/android-client-main/src/main/java/io/split/android/client/dtos/UserDefinedLargeSegmentMatcherData.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/UserDefinedLargeSegmentMatcherData.java rename to android-client-main/src/main/java/io/split/android/client/dtos/UserDefinedLargeSegmentMatcherData.java diff --git a/src/main/java/io/split/android/client/dtos/UserDefinedSegmentMatcherData.java b/android-client-main/src/main/java/io/split/android/client/dtos/UserDefinedSegmentMatcherData.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/UserDefinedSegmentMatcherData.java rename to android-client-main/src/main/java/io/split/android/client/dtos/UserDefinedSegmentMatcherData.java diff --git a/src/main/java/io/split/android/client/dtos/WhitelistMatcherData.java b/android-client-main/src/main/java/io/split/android/client/dtos/WhitelistMatcherData.java similarity index 100% rename from src/main/java/io/split/android/client/dtos/WhitelistMatcherData.java rename to android-client-main/src/main/java/io/split/android/client/dtos/WhitelistMatcherData.java diff --git a/src/main/java/io/split/android/client/events/BaseEventsManager.java b/android-client-main/src/main/java/io/split/android/client/events/BaseEventsManager.java similarity index 100% rename from src/main/java/io/split/android/client/events/BaseEventsManager.java rename to android-client-main/src/main/java/io/split/android/client/events/BaseEventsManager.java diff --git a/src/main/java/io/split/android/client/events/EventsManagerCoordinator.java b/android-client-main/src/main/java/io/split/android/client/events/EventsManagerCoordinator.java similarity index 100% rename from src/main/java/io/split/android/client/events/EventsManagerCoordinator.java rename to android-client-main/src/main/java/io/split/android/client/events/EventsManagerCoordinator.java diff --git a/src/main/java/io/split/android/client/events/EventsManagerRegistry.java b/android-client-main/src/main/java/io/split/android/client/events/EventsManagerRegistry.java similarity index 100% rename from src/main/java/io/split/android/client/events/EventsManagerRegistry.java rename to android-client-main/src/main/java/io/split/android/client/events/EventsManagerRegistry.java diff --git a/src/main/java/io/split/android/client/events/ISplitEventsManager.java b/android-client-main/src/main/java/io/split/android/client/events/ISplitEventsManager.java similarity index 100% rename from src/main/java/io/split/android/client/events/ISplitEventsManager.java rename to android-client-main/src/main/java/io/split/android/client/events/ISplitEventsManager.java diff --git a/src/main/java/io/split/android/client/events/ListenableEventsManager.java b/android-client-main/src/main/java/io/split/android/client/events/ListenableEventsManager.java similarity index 100% rename from src/main/java/io/split/android/client/events/ListenableEventsManager.java rename to android-client-main/src/main/java/io/split/android/client/events/ListenableEventsManager.java diff --git a/src/main/java/io/split/android/client/events/SplitEvent.java b/android-client-main/src/main/java/io/split/android/client/events/SplitEvent.java similarity index 100% rename from src/main/java/io/split/android/client/events/SplitEvent.java rename to android-client-main/src/main/java/io/split/android/client/events/SplitEvent.java diff --git a/src/main/java/io/split/android/client/events/SplitEventTask.java b/android-client-main/src/main/java/io/split/android/client/events/SplitEventTask.java similarity index 100% rename from src/main/java/io/split/android/client/events/SplitEventTask.java rename to android-client-main/src/main/java/io/split/android/client/events/SplitEventTask.java diff --git a/src/main/java/io/split/android/client/events/SplitEventTaskMethodNotImplementedException.java b/android-client-main/src/main/java/io/split/android/client/events/SplitEventTaskMethodNotImplementedException.java similarity index 100% rename from src/main/java/io/split/android/client/events/SplitEventTaskMethodNotImplementedException.java rename to android-client-main/src/main/java/io/split/android/client/events/SplitEventTaskMethodNotImplementedException.java diff --git a/src/main/java/io/split/android/client/events/SplitEventsManager.java b/android-client-main/src/main/java/io/split/android/client/events/SplitEventsManager.java similarity index 100% rename from src/main/java/io/split/android/client/events/SplitEventsManager.java rename to android-client-main/src/main/java/io/split/android/client/events/SplitEventsManager.java diff --git a/src/main/java/io/split/android/client/events/SplitInternalEvent.java b/android-client-main/src/main/java/io/split/android/client/events/SplitInternalEvent.java similarity index 100% rename from src/main/java/io/split/android/client/events/SplitInternalEvent.java rename to android-client-main/src/main/java/io/split/android/client/events/SplitInternalEvent.java diff --git a/src/main/java/io/split/android/client/events/executors/ClientEventSplitTask.java b/android-client-main/src/main/java/io/split/android/client/events/executors/ClientEventSplitTask.java similarity index 100% rename from src/main/java/io/split/android/client/events/executors/ClientEventSplitTask.java rename to android-client-main/src/main/java/io/split/android/client/events/executors/ClientEventSplitTask.java diff --git a/src/main/java/io/split/android/client/events/executors/SplitEventExecutor.java b/android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutor.java similarity index 100% rename from src/main/java/io/split/android/client/events/executors/SplitEventExecutor.java rename to android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutor.java diff --git a/src/main/java/io/split/android/client/events/executors/SplitEventExecutorFactory.java b/android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorFactory.java similarity index 100% rename from src/main/java/io/split/android/client/events/executors/SplitEventExecutorFactory.java rename to android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorFactory.java diff --git a/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResources.java b/android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResources.java similarity index 100% rename from src/main/java/io/split/android/client/events/executors/SplitEventExecutorResources.java rename to android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResources.java diff --git a/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImpl.java b/android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImpl.java similarity index 100% rename from src/main/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImpl.java rename to android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImpl.java diff --git a/src/main/java/io/split/android/client/events/executors/SplitEventExecutorWithClient.java b/android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorWithClient.java similarity index 100% rename from src/main/java/io/split/android/client/events/executors/SplitEventExecutorWithClient.java rename to android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorWithClient.java diff --git a/src/main/java/io/split/android/client/exceptions/ChangeNumberExceptionWrapper.java b/android-client-main/src/main/java/io/split/android/client/exceptions/ChangeNumberExceptionWrapper.java similarity index 100% rename from src/main/java/io/split/android/client/exceptions/ChangeNumberExceptionWrapper.java rename to android-client-main/src/main/java/io/split/android/client/exceptions/ChangeNumberExceptionWrapper.java diff --git a/src/main/java/io/split/android/client/exceptions/MySegmentsParsingException.java b/android-client-main/src/main/java/io/split/android/client/exceptions/MySegmentsParsingException.java similarity index 100% rename from src/main/java/io/split/android/client/exceptions/MySegmentsParsingException.java rename to android-client-main/src/main/java/io/split/android/client/exceptions/MySegmentsParsingException.java diff --git a/src/main/java/io/split/android/client/exceptions/ParentIsControlException.java b/android-client-main/src/main/java/io/split/android/client/exceptions/ParentIsControlException.java similarity index 100% rename from src/main/java/io/split/android/client/exceptions/ParentIsControlException.java rename to android-client-main/src/main/java/io/split/android/client/exceptions/ParentIsControlException.java diff --git a/src/main/java/io/split/android/client/exceptions/SplitInstantiationException.java b/android-client-main/src/main/java/io/split/android/client/exceptions/SplitInstantiationException.java similarity index 100% rename from src/main/java/io/split/android/client/exceptions/SplitInstantiationException.java rename to android-client-main/src/main/java/io/split/android/client/exceptions/SplitInstantiationException.java diff --git a/src/main/java/io/split/android/client/factory/FactoryMonitor.java b/android-client-main/src/main/java/io/split/android/client/factory/FactoryMonitor.java similarity index 100% rename from src/main/java/io/split/android/client/factory/FactoryMonitor.java rename to android-client-main/src/main/java/io/split/android/client/factory/FactoryMonitor.java diff --git a/src/main/java/io/split/android/client/factory/FactoryMonitorImpl.java b/android-client-main/src/main/java/io/split/android/client/factory/FactoryMonitorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/factory/FactoryMonitorImpl.java rename to android-client-main/src/main/java/io/split/android/client/factory/FactoryMonitorImpl.java diff --git a/src/main/java/io/split/android/client/fallback/FallbackTreatment.java b/android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatment.java similarity index 100% rename from src/main/java/io/split/android/client/fallback/FallbackTreatment.java rename to android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatment.java diff --git a/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculator.java b/android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculator.java similarity index 100% rename from src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculator.java rename to android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculator.java diff --git a/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorImpl.java b/android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorImpl.java rename to android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorImpl.java diff --git a/src/main/java/io/split/android/client/fallback/FallbackTreatmentsConfiguration.java b/android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsConfiguration.java similarity index 100% rename from src/main/java/io/split/android/client/fallback/FallbackTreatmentsConfiguration.java rename to android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsConfiguration.java diff --git a/src/main/java/io/split/android/client/fallback/FallbacksSanitizer.java b/android-client-main/src/main/java/io/split/android/client/fallback/FallbacksSanitizer.java similarity index 100% rename from src/main/java/io/split/android/client/fallback/FallbacksSanitizer.java rename to android-client-main/src/main/java/io/split/android/client/fallback/FallbacksSanitizer.java diff --git a/src/main/java/io/split/android/client/fallback/FallbacksSanitizerImpl.java b/android-client-main/src/main/java/io/split/android/client/fallback/FallbacksSanitizerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/fallback/FallbacksSanitizerImpl.java rename to android-client-main/src/main/java/io/split/android/client/fallback/FallbacksSanitizerImpl.java diff --git a/src/main/java/io/split/android/client/impressions/DecoratedImpression.java b/android-client-main/src/main/java/io/split/android/client/impressions/DecoratedImpression.java similarity index 100% rename from src/main/java/io/split/android/client/impressions/DecoratedImpression.java rename to android-client-main/src/main/java/io/split/android/client/impressions/DecoratedImpression.java diff --git a/src/main/java/io/split/android/client/impressions/DecoratedImpressionListener.java b/android-client-main/src/main/java/io/split/android/client/impressions/DecoratedImpressionListener.java similarity index 100% rename from src/main/java/io/split/android/client/impressions/DecoratedImpressionListener.java rename to android-client-main/src/main/java/io/split/android/client/impressions/DecoratedImpressionListener.java diff --git a/src/main/java/io/split/android/client/impressions/Impression.java b/android-client-main/src/main/java/io/split/android/client/impressions/Impression.java similarity index 100% rename from src/main/java/io/split/android/client/impressions/Impression.java rename to android-client-main/src/main/java/io/split/android/client/impressions/Impression.java diff --git a/src/main/java/io/split/android/client/impressions/ImpressionListener.java b/android-client-main/src/main/java/io/split/android/client/impressions/ImpressionListener.java similarity index 100% rename from src/main/java/io/split/android/client/impressions/ImpressionListener.java rename to android-client-main/src/main/java/io/split/android/client/impressions/ImpressionListener.java diff --git a/src/main/java/io/split/android/client/impressions/ImpressionLoggingTask.java b/android-client-main/src/main/java/io/split/android/client/impressions/ImpressionLoggingTask.java similarity index 100% rename from src/main/java/io/split/android/client/impressions/ImpressionLoggingTask.java rename to android-client-main/src/main/java/io/split/android/client/impressions/ImpressionLoggingTask.java diff --git a/src/main/java/io/split/android/client/impressions/SyncImpressionListener.java b/android-client-main/src/main/java/io/split/android/client/impressions/SyncImpressionListener.java similarity index 100% rename from src/main/java/io/split/android/client/impressions/SyncImpressionListener.java rename to android-client-main/src/main/java/io/split/android/client/impressions/SyncImpressionListener.java diff --git a/src/main/java/io/split/android/client/lifecycle/SplitLifecycleAware.java b/android-client-main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleAware.java similarity index 100% rename from src/main/java/io/split/android/client/lifecycle/SplitLifecycleAware.java rename to android-client-main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleAware.java diff --git a/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManager.java b/android-client-main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManager.java similarity index 100% rename from src/main/java/io/split/android/client/lifecycle/SplitLifecycleManager.java rename to android-client-main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManager.java diff --git a/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManagerImpl.java b/android-client-main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManagerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/lifecycle/SplitLifecycleManagerImpl.java rename to android-client-main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManagerImpl.java diff --git a/src/main/java/io/split/android/client/localhost/LocalhostFileParser.java b/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostFileParser.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/LocalhostFileParser.java rename to android-client-main/src/main/java/io/split/android/client/localhost/LocalhostFileParser.java diff --git a/src/main/java/io/split/android/client/localhost/LocalhostImpressionsListener.java b/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostImpressionsListener.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/LocalhostImpressionsListener.java rename to android-client-main/src/main/java/io/split/android/client/localhost/LocalhostImpressionsListener.java diff --git a/src/main/java/io/split/android/client/localhost/LocalhostMySegmentsStorageContainer.java b/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostMySegmentsStorageContainer.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/LocalhostMySegmentsStorageContainer.java rename to android-client-main/src/main/java/io/split/android/client/localhost/LocalhostMySegmentsStorageContainer.java diff --git a/src/main/java/io/split/android/client/localhost/LocalhostPropertiesFileParser.java b/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostPropertiesFileParser.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/LocalhostPropertiesFileParser.java rename to android-client-main/src/main/java/io/split/android/client/localhost/LocalhostPropertiesFileParser.java diff --git a/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorage.java b/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorage.java rename to android-client-main/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorage.java diff --git a/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorageProvider.java b/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorageProvider.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorageProvider.java rename to android-client-main/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorageProvider.java diff --git a/src/main/java/io/split/android/client/localhost/LocalhostSplitClient.java b/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSplitClient.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/LocalhostSplitClient.java rename to android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSplitClient.java diff --git a/src/main/java/io/split/android/client/localhost/LocalhostSplitFactory.java b/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSplitFactory.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/LocalhostSplitFactory.java rename to android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSplitFactory.java diff --git a/src/main/java/io/split/android/client/localhost/LocalhostSplitsStorage.java b/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSplitsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/LocalhostSplitsStorage.java rename to android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSplitsStorage.java diff --git a/src/main/java/io/split/android/client/localhost/LocalhostSynchronizer.java b/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSynchronizer.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/LocalhostSynchronizer.java rename to android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSynchronizer.java diff --git a/src/main/java/io/split/android/client/localhost/LocalhostYamlFileParser.java b/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostYamlFileParser.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/LocalhostYamlFileParser.java rename to android-client-main/src/main/java/io/split/android/client/localhost/LocalhostYamlFileParser.java diff --git a/src/main/java/io/split/android/client/localhost/SplitHelper.java b/android-client-main/src/main/java/io/split/android/client/localhost/SplitHelper.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/SplitHelper.java rename to android-client-main/src/main/java/io/split/android/client/localhost/SplitHelper.java diff --git a/src/main/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImpl.java b/android-client-main/src/main/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImpl.java rename to android-client-main/src/main/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImpl.java diff --git a/src/main/java/io/split/android/client/network/Algorithm.java b/android-client-main/src/main/java/io/split/android/client/network/Algorithm.java similarity index 100% rename from src/main/java/io/split/android/client/network/Algorithm.java rename to android-client-main/src/main/java/io/split/android/client/network/Algorithm.java diff --git a/src/main/java/io/split/android/client/network/AuthenticatedRequest.java b/android-client-main/src/main/java/io/split/android/client/network/AuthenticatedRequest.java similarity index 100% rename from src/main/java/io/split/android/client/network/AuthenticatedRequest.java rename to android-client-main/src/main/java/io/split/android/client/network/AuthenticatedRequest.java diff --git a/src/main/java/io/split/android/client/network/Authenticator.java b/android-client-main/src/main/java/io/split/android/client/network/Authenticator.java similarity index 100% rename from src/main/java/io/split/android/client/network/Authenticator.java rename to android-client-main/src/main/java/io/split/android/client/network/Authenticator.java diff --git a/src/main/java/io/split/android/client/network/Base64Decoder.java b/android-client-main/src/main/java/io/split/android/client/network/Base64Decoder.java similarity index 100% rename from src/main/java/io/split/android/client/network/Base64Decoder.java rename to android-client-main/src/main/java/io/split/android/client/network/Base64Decoder.java diff --git a/src/main/java/io/split/android/client/network/Base64Encoder.java b/android-client-main/src/main/java/io/split/android/client/network/Base64Encoder.java similarity index 100% rename from src/main/java/io/split/android/client/network/Base64Encoder.java rename to android-client-main/src/main/java/io/split/android/client/network/Base64Encoder.java diff --git a/src/main/java/io/split/android/client/network/BaseHttpResponse.java b/android-client-main/src/main/java/io/split/android/client/network/BaseHttpResponse.java similarity index 100% rename from src/main/java/io/split/android/client/network/BaseHttpResponse.java rename to android-client-main/src/main/java/io/split/android/client/network/BaseHttpResponse.java diff --git a/src/main/java/io/split/android/client/network/BaseHttpResponseImpl.java b/android-client-main/src/main/java/io/split/android/client/network/BaseHttpResponseImpl.java similarity index 100% rename from src/main/java/io/split/android/client/network/BaseHttpResponseImpl.java rename to android-client-main/src/main/java/io/split/android/client/network/BaseHttpResponseImpl.java diff --git a/src/main/java/io/split/android/client/network/BasicCredentialsProvider.java b/android-client-main/src/main/java/io/split/android/client/network/BasicCredentialsProvider.java similarity index 100% rename from src/main/java/io/split/android/client/network/BasicCredentialsProvider.java rename to android-client-main/src/main/java/io/split/android/client/network/BasicCredentialsProvider.java diff --git a/src/main/java/io/split/android/client/network/BearerCredentialsProvider.java b/android-client-main/src/main/java/io/split/android/client/network/BearerCredentialsProvider.java similarity index 100% rename from src/main/java/io/split/android/client/network/BearerCredentialsProvider.java rename to android-client-main/src/main/java/io/split/android/client/network/BearerCredentialsProvider.java diff --git a/src/main/java/io/split/android/client/network/CertificateChecker.java b/android-client-main/src/main/java/io/split/android/client/network/CertificateChecker.java similarity index 100% rename from src/main/java/io/split/android/client/network/CertificateChecker.java rename to android-client-main/src/main/java/io/split/android/client/network/CertificateChecker.java diff --git a/src/main/java/io/split/android/client/network/CertificateCheckerHelper.java b/android-client-main/src/main/java/io/split/android/client/network/CertificateCheckerHelper.java similarity index 100% rename from src/main/java/io/split/android/client/network/CertificateCheckerHelper.java rename to android-client-main/src/main/java/io/split/android/client/network/CertificateCheckerHelper.java diff --git a/src/main/java/io/split/android/client/network/CertificateCheckerImpl.java b/android-client-main/src/main/java/io/split/android/client/network/CertificateCheckerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/network/CertificateCheckerImpl.java rename to android-client-main/src/main/java/io/split/android/client/network/CertificateCheckerImpl.java diff --git a/src/main/java/io/split/android/client/network/CertificatePin.java b/android-client-main/src/main/java/io/split/android/client/network/CertificatePin.java similarity index 100% rename from src/main/java/io/split/android/client/network/CertificatePin.java rename to android-client-main/src/main/java/io/split/android/client/network/CertificatePin.java diff --git a/src/main/java/io/split/android/client/network/CertificatePinningConfiguration.java b/android-client-main/src/main/java/io/split/android/client/network/CertificatePinningConfiguration.java similarity index 100% rename from src/main/java/io/split/android/client/network/CertificatePinningConfiguration.java rename to android-client-main/src/main/java/io/split/android/client/network/CertificatePinningConfiguration.java diff --git a/src/main/java/io/split/android/client/network/CertificatePinningConfigurationProvider.java b/android-client-main/src/main/java/io/split/android/client/network/CertificatePinningConfigurationProvider.java similarity index 100% rename from src/main/java/io/split/android/client/network/CertificatePinningConfigurationProvider.java rename to android-client-main/src/main/java/io/split/android/client/network/CertificatePinningConfigurationProvider.java diff --git a/src/main/java/io/split/android/client/network/CertificatePinningFailureListener.java b/android-client-main/src/main/java/io/split/android/client/network/CertificatePinningFailureListener.java similarity index 100% rename from src/main/java/io/split/android/client/network/CertificatePinningFailureListener.java rename to android-client-main/src/main/java/io/split/android/client/network/CertificatePinningFailureListener.java diff --git a/src/main/java/io/split/android/client/network/ChainCleaner.java b/android-client-main/src/main/java/io/split/android/client/network/ChainCleaner.java similarity index 100% rename from src/main/java/io/split/android/client/network/ChainCleaner.java rename to android-client-main/src/main/java/io/split/android/client/network/ChainCleaner.java diff --git a/src/main/java/io/split/android/client/network/ChainCleanerImpl.java b/android-client-main/src/main/java/io/split/android/client/network/ChainCleanerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/network/ChainCleanerImpl.java rename to android-client-main/src/main/java/io/split/android/client/network/ChainCleanerImpl.java diff --git a/src/main/java/io/split/android/client/network/DefaultBase64Decoder.java b/android-client-main/src/main/java/io/split/android/client/network/DefaultBase64Decoder.java similarity index 100% rename from src/main/java/io/split/android/client/network/DefaultBase64Decoder.java rename to android-client-main/src/main/java/io/split/android/client/network/DefaultBase64Decoder.java diff --git a/src/main/java/io/split/android/client/network/DefaultBase64Encoder.java b/android-client-main/src/main/java/io/split/android/client/network/DefaultBase64Encoder.java similarity index 100% rename from src/main/java/io/split/android/client/network/DefaultBase64Encoder.java rename to android-client-main/src/main/java/io/split/android/client/network/DefaultBase64Encoder.java diff --git a/src/main/java/io/split/android/client/network/DevelopmentSslConfig.java b/android-client-main/src/main/java/io/split/android/client/network/DevelopmentSslConfig.java similarity index 100% rename from src/main/java/io/split/android/client/network/DevelopmentSslConfig.java rename to android-client-main/src/main/java/io/split/android/client/network/DevelopmentSslConfig.java diff --git a/src/main/java/io/split/android/client/network/HttpClient.java b/android-client-main/src/main/java/io/split/android/client/network/HttpClient.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpClient.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpClient.java diff --git a/src/main/java/io/split/android/client/network/HttpClientImpl.java b/android-client-main/src/main/java/io/split/android/client/network/HttpClientImpl.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpClientImpl.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpClientImpl.java diff --git a/src/main/java/io/split/android/client/network/HttpException.java b/android-client-main/src/main/java/io/split/android/client/network/HttpException.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpException.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpException.java diff --git a/src/main/java/io/split/android/client/network/HttpMethod.java b/android-client-main/src/main/java/io/split/android/client/network/HttpMethod.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpMethod.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpMethod.java diff --git a/src/main/java/io/split/android/client/network/HttpOverTunnelExecutor.java b/android-client-main/src/main/java/io/split/android/client/network/HttpOverTunnelExecutor.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpOverTunnelExecutor.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpOverTunnelExecutor.java diff --git a/src/main/java/io/split/android/client/network/HttpProxy.java b/android-client-main/src/main/java/io/split/android/client/network/HttpProxy.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpProxy.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpProxy.java diff --git a/src/main/java/io/split/android/client/network/HttpRequest.java b/android-client-main/src/main/java/io/split/android/client/network/HttpRequest.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpRequest.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpRequest.java diff --git a/src/main/java/io/split/android/client/network/HttpRequestHelper.java b/android-client-main/src/main/java/io/split/android/client/network/HttpRequestHelper.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpRequestHelper.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpRequestHelper.java diff --git a/src/main/java/io/split/android/client/network/HttpRequestImpl.java b/android-client-main/src/main/java/io/split/android/client/network/HttpRequestImpl.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpRequestImpl.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpRequestImpl.java diff --git a/src/main/java/io/split/android/client/network/HttpResponse.java b/android-client-main/src/main/java/io/split/android/client/network/HttpResponse.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpResponse.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpResponse.java diff --git a/src/main/java/io/split/android/client/network/HttpResponseConnectionAdapter.java b/android-client-main/src/main/java/io/split/android/client/network/HttpResponseConnectionAdapter.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpResponseConnectionAdapter.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpResponseConnectionAdapter.java diff --git a/src/main/java/io/split/android/client/network/HttpResponseImpl.java b/android-client-main/src/main/java/io/split/android/client/network/HttpResponseImpl.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpResponseImpl.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpResponseImpl.java diff --git a/src/main/java/io/split/android/client/network/HttpStreamRequest.java b/android-client-main/src/main/java/io/split/android/client/network/HttpStreamRequest.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpStreamRequest.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpStreamRequest.java diff --git a/src/main/java/io/split/android/client/network/HttpStreamRequestImpl.java b/android-client-main/src/main/java/io/split/android/client/network/HttpStreamRequestImpl.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpStreamRequestImpl.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpStreamRequestImpl.java diff --git a/src/main/java/io/split/android/client/network/HttpStreamResponse.java b/android-client-main/src/main/java/io/split/android/client/network/HttpStreamResponse.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpStreamResponse.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpStreamResponse.java diff --git a/src/main/java/io/split/android/client/network/HttpStreamResponseImpl.java b/android-client-main/src/main/java/io/split/android/client/network/HttpStreamResponseImpl.java similarity index 100% rename from src/main/java/io/split/android/client/network/HttpStreamResponseImpl.java rename to android-client-main/src/main/java/io/split/android/client/network/HttpStreamResponseImpl.java diff --git a/src/main/java/io/split/android/client/network/LegacyTlsUpdater.java b/android-client-main/src/main/java/io/split/android/client/network/LegacyTlsUpdater.java similarity index 100% rename from src/main/java/io/split/android/client/network/LegacyTlsUpdater.java rename to android-client-main/src/main/java/io/split/android/client/network/LegacyTlsUpdater.java diff --git a/src/main/java/io/split/android/client/network/PercentEscaper.java b/android-client-main/src/main/java/io/split/android/client/network/PercentEscaper.java similarity index 100% rename from src/main/java/io/split/android/client/network/PercentEscaper.java rename to android-client-main/src/main/java/io/split/android/client/network/PercentEscaper.java diff --git a/src/main/java/io/split/android/client/network/PinEncoder.java b/android-client-main/src/main/java/io/split/android/client/network/PinEncoder.java similarity index 100% rename from src/main/java/io/split/android/client/network/PinEncoder.java rename to android-client-main/src/main/java/io/split/android/client/network/PinEncoder.java diff --git a/src/main/java/io/split/android/client/network/PinEncoderImpl.java b/android-client-main/src/main/java/io/split/android/client/network/PinEncoderImpl.java similarity index 100% rename from src/main/java/io/split/android/client/network/PinEncoderImpl.java rename to android-client-main/src/main/java/io/split/android/client/network/PinEncoderImpl.java diff --git a/src/main/java/io/split/android/client/network/ProxyCacertConnectionHandler.java b/android-client-main/src/main/java/io/split/android/client/network/ProxyCacertConnectionHandler.java similarity index 100% rename from src/main/java/io/split/android/client/network/ProxyCacertConnectionHandler.java rename to android-client-main/src/main/java/io/split/android/client/network/ProxyCacertConnectionHandler.java diff --git a/src/main/java/io/split/android/client/network/ProxyConfiguration.java b/android-client-main/src/main/java/io/split/android/client/network/ProxyConfiguration.java similarity index 100% rename from src/main/java/io/split/android/client/network/ProxyConfiguration.java rename to android-client-main/src/main/java/io/split/android/client/network/ProxyConfiguration.java diff --git a/src/main/java/io/split/android/client/network/ProxyCredentialsProvider.java b/android-client-main/src/main/java/io/split/android/client/network/ProxyCredentialsProvider.java similarity index 100% rename from src/main/java/io/split/android/client/network/ProxyCredentialsProvider.java rename to android-client-main/src/main/java/io/split/android/client/network/ProxyCredentialsProvider.java diff --git a/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProvider.java b/android-client-main/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProvider.java similarity index 100% rename from src/main/java/io/split/android/client/network/ProxySslSocketFactoryProvider.java rename to android-client-main/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProvider.java diff --git a/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProviderImpl.java b/android-client-main/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProviderImpl.java similarity index 100% rename from src/main/java/io/split/android/client/network/ProxySslSocketFactoryProviderImpl.java rename to android-client-main/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProviderImpl.java diff --git a/src/main/java/io/split/android/client/network/RawHttpResponseParser.java b/android-client-main/src/main/java/io/split/android/client/network/RawHttpResponseParser.java similarity index 100% rename from src/main/java/io/split/android/client/network/RawHttpResponseParser.java rename to android-client-main/src/main/java/io/split/android/client/network/RawHttpResponseParser.java diff --git a/src/main/java/io/split/android/client/network/SdkTargetPath.java b/android-client-main/src/main/java/io/split/android/client/network/SdkTargetPath.java similarity index 100% rename from src/main/java/io/split/android/client/network/SdkTargetPath.java rename to android-client-main/src/main/java/io/split/android/client/network/SdkTargetPath.java diff --git a/src/main/java/io/split/android/client/network/SplitAuthenticatedRequest.java b/android-client-main/src/main/java/io/split/android/client/network/SplitAuthenticatedRequest.java similarity index 100% rename from src/main/java/io/split/android/client/network/SplitAuthenticatedRequest.java rename to android-client-main/src/main/java/io/split/android/client/network/SplitAuthenticatedRequest.java diff --git a/src/main/java/io/split/android/client/network/SplitAuthenticator.java b/android-client-main/src/main/java/io/split/android/client/network/SplitAuthenticator.java similarity index 100% rename from src/main/java/io/split/android/client/network/SplitAuthenticator.java rename to android-client-main/src/main/java/io/split/android/client/network/SplitAuthenticator.java diff --git a/src/main/java/io/split/android/client/network/SplitBasicAuthenticator.java b/android-client-main/src/main/java/io/split/android/client/network/SplitBasicAuthenticator.java similarity index 100% rename from src/main/java/io/split/android/client/network/SplitBasicAuthenticator.java rename to android-client-main/src/main/java/io/split/android/client/network/SplitBasicAuthenticator.java diff --git a/src/main/java/io/split/android/client/network/SplitHttpHeadersBuilder.java b/android-client-main/src/main/java/io/split/android/client/network/SplitHttpHeadersBuilder.java similarity index 100% rename from src/main/java/io/split/android/client/network/SplitHttpHeadersBuilder.java rename to android-client-main/src/main/java/io/split/android/client/network/SplitHttpHeadersBuilder.java diff --git a/src/main/java/io/split/android/client/network/SplitUrlConnectionAuthenticator.java b/android-client-main/src/main/java/io/split/android/client/network/SplitUrlConnectionAuthenticator.java similarity index 100% rename from src/main/java/io/split/android/client/network/SplitUrlConnectionAuthenticator.java rename to android-client-main/src/main/java/io/split/android/client/network/SplitUrlConnectionAuthenticator.java diff --git a/src/main/java/io/split/android/client/network/SslProxyTunnelEstablisher.java b/android-client-main/src/main/java/io/split/android/client/network/SslProxyTunnelEstablisher.java similarity index 100% rename from src/main/java/io/split/android/client/network/SslProxyTunnelEstablisher.java rename to android-client-main/src/main/java/io/split/android/client/network/SslProxyTunnelEstablisher.java diff --git a/src/main/java/io/split/android/client/network/Tls12OnlySocketFactory.java b/android-client-main/src/main/java/io/split/android/client/network/Tls12OnlySocketFactory.java similarity index 100% rename from src/main/java/io/split/android/client/network/Tls12OnlySocketFactory.java rename to android-client-main/src/main/java/io/split/android/client/network/Tls12OnlySocketFactory.java diff --git a/src/main/java/io/split/android/client/network/TrustManagerProvider.java b/android-client-main/src/main/java/io/split/android/client/network/TrustManagerProvider.java similarity index 100% rename from src/main/java/io/split/android/client/network/TrustManagerProvider.java rename to android-client-main/src/main/java/io/split/android/client/network/TrustManagerProvider.java diff --git a/src/main/java/io/split/android/client/network/URIBuilder.java b/android-client-main/src/main/java/io/split/android/client/network/URIBuilder.java similarity index 100% rename from src/main/java/io/split/android/client/network/URIBuilder.java rename to android-client-main/src/main/java/io/split/android/client/network/URIBuilder.java diff --git a/src/main/java/io/split/android/client/network/UnicodeEscaper.java b/android-client-main/src/main/java/io/split/android/client/network/UnicodeEscaper.java similarity index 100% rename from src/main/java/io/split/android/client/network/UnicodeEscaper.java rename to android-client-main/src/main/java/io/split/android/client/network/UnicodeEscaper.java diff --git a/src/main/java/io/split/android/client/network/UrlEscapers.java b/android-client-main/src/main/java/io/split/android/client/network/UrlEscapers.java similarity index 100% rename from src/main/java/io/split/android/client/network/UrlEscapers.java rename to android-client-main/src/main/java/io/split/android/client/network/UrlEscapers.java diff --git a/src/main/java/io/split/android/client/network/UrlSanitizer.java b/android-client-main/src/main/java/io/split/android/client/network/UrlSanitizer.java similarity index 100% rename from src/main/java/io/split/android/client/network/UrlSanitizer.java rename to android-client-main/src/main/java/io/split/android/client/network/UrlSanitizer.java diff --git a/src/main/java/io/split/android/client/network/UrlSanitizerImpl.java b/android-client-main/src/main/java/io/split/android/client/network/UrlSanitizerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/network/UrlSanitizerImpl.java rename to android-client-main/src/main/java/io/split/android/client/network/UrlSanitizerImpl.java diff --git a/src/main/java/io/split/android/client/service/CleanUpDatabaseTask.java b/android-client-main/src/main/java/io/split/android/client/service/CleanUpDatabaseTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/CleanUpDatabaseTask.java rename to android-client-main/src/main/java/io/split/android/client/service/CleanUpDatabaseTask.java diff --git a/src/main/java/io/split/android/client/service/ServiceConstants.java b/android-client-main/src/main/java/io/split/android/client/service/ServiceConstants.java similarity index 100% rename from src/main/java/io/split/android/client/service/ServiceConstants.java rename to android-client-main/src/main/java/io/split/android/client/service/ServiceConstants.java diff --git a/src/main/java/io/split/android/client/service/ServiceFactory.java b/android-client-main/src/main/java/io/split/android/client/service/ServiceFactory.java similarity index 100% rename from src/main/java/io/split/android/client/service/ServiceFactory.java rename to android-client-main/src/main/java/io/split/android/client/service/ServiceFactory.java diff --git a/src/main/java/io/split/android/client/service/SplitApiFacade.java b/android-client-main/src/main/java/io/split/android/client/service/SplitApiFacade.java similarity index 100% rename from src/main/java/io/split/android/client/service/SplitApiFacade.java rename to android-client-main/src/main/java/io/split/android/client/service/SplitApiFacade.java diff --git a/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactory.java b/android-client-main/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactory.java similarity index 100% rename from src/main/java/io/split/android/client/service/attributes/AttributeTaskFactory.java rename to android-client-main/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactory.java diff --git a/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/attributes/AttributeTaskFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactoryImpl.java diff --git a/src/main/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTask.java b/android-client-main/src/main/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTask.java rename to android-client-main/src/main/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTask.java diff --git a/src/main/java/io/split/android/client/service/attributes/LoadAttributesTask.java b/android-client-main/src/main/java/io/split/android/client/service/attributes/LoadAttributesTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/attributes/LoadAttributesTask.java rename to android-client-main/src/main/java/io/split/android/client/service/attributes/LoadAttributesTask.java diff --git a/src/main/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTask.java b/android-client-main/src/main/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTask.java rename to android-client-main/src/main/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTask.java diff --git a/src/main/java/io/split/android/client/service/events/EventsRecorderTask.java b/android-client-main/src/main/java/io/split/android/client/service/events/EventsRecorderTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/events/EventsRecorderTask.java rename to android-client-main/src/main/java/io/split/android/client/service/events/EventsRecorderTask.java diff --git a/src/main/java/io/split/android/client/service/events/EventsRecorderTaskConfig.java b/android-client-main/src/main/java/io/split/android/client/service/events/EventsRecorderTaskConfig.java similarity index 100% rename from src/main/java/io/split/android/client/service/events/EventsRecorderTaskConfig.java rename to android-client-main/src/main/java/io/split/android/client/service/events/EventsRecorderTaskConfig.java diff --git a/src/main/java/io/split/android/client/service/events/EventsRequestBodySerializer.java b/android-client-main/src/main/java/io/split/android/client/service/events/EventsRequestBodySerializer.java similarity index 100% rename from src/main/java/io/split/android/client/service/events/EventsRequestBodySerializer.java rename to android-client-main/src/main/java/io/split/android/client/service/events/EventsRequestBodySerializer.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitBaseTaskExecutor.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitBaseTaskExecutor.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitBaseTaskExecutor.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitBaseTaskExecutor.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitClientEventTaskExecutor.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitClientEventTaskExecutor.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitClientEventTaskExecutor.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitClientEventTaskExecutor.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitSingleThreadTaskExecutor.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitSingleThreadTaskExecutor.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitSingleThreadTaskExecutor.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitSingleThreadTaskExecutor.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitTask.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitTask.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitTask.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitTaskBatchItem.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskBatchItem.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitTaskBatchItem.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskBatchItem.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitTaskBatchWrapper.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskBatchWrapper.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitTaskBatchWrapper.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskBatchWrapper.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionInfo.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionInfo.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitTaskExecutionInfo.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionInfo.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionListener.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionListener.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitTaskExecutionListener.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionListener.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionStatus.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionStatus.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitTaskExecutionStatus.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionStatus.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitTaskExecutor.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutor.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitTaskExecutor.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutor.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitTaskExecutorImpl.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitTaskExecutorImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutorImpl.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitTaskFactory.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskFactory.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitTaskFactory.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskFactory.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitTaskFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitTaskFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskFactoryImpl.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitTaskSerialWrapper.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskSerialWrapper.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitTaskSerialWrapper.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskSerialWrapper.java diff --git a/src/main/java/io/split/android/client/service/executor/SplitTaskType.java b/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskType.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/SplitTaskType.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskType.java diff --git a/src/main/java/io/split/android/client/service/executor/TaskWrapper.java b/android-client-main/src/main/java/io/split/android/client/service/executor/TaskWrapper.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/TaskWrapper.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/TaskWrapper.java diff --git a/src/main/java/io/split/android/client/service/executor/ThreadFactoryBuilder.java b/android-client-main/src/main/java/io/split/android/client/service/executor/ThreadFactoryBuilder.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/ThreadFactoryBuilder.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/ThreadFactoryBuilder.java diff --git a/src/main/java/io/split/android/client/service/executor/parallel/SplitDeferredTaskItem.java b/android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitDeferredTaskItem.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/parallel/SplitDeferredTaskItem.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitDeferredTaskItem.java diff --git a/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutor.java b/android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutor.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutor.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutor.java diff --git a/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactory.java b/android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactory.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactory.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactory.java diff --git a/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactoryImpl.java diff --git a/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImpl.java b/android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImpl.java diff --git a/src/main/java/io/split/android/client/service/http/HttpFetcher.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcher.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/HttpFetcher.java rename to android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcher.java diff --git a/src/main/java/io/split/android/client/service/http/HttpFetcherException.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcherException.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/HttpFetcherException.java rename to android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcherException.java diff --git a/src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java diff --git a/src/main/java/io/split/android/client/service/http/HttpGeneralException.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpGeneralException.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/HttpGeneralException.java rename to android-client-main/src/main/java/io/split/android/client/service/http/HttpGeneralException.java diff --git a/src/main/java/io/split/android/client/service/http/HttpRecorder.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpRecorder.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/HttpRecorder.java rename to android-client-main/src/main/java/io/split/android/client/service/http/HttpRecorder.java diff --git a/src/main/java/io/split/android/client/service/http/HttpRecorderException.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpRecorderException.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/HttpRecorderException.java rename to android-client-main/src/main/java/io/split/android/client/service/http/HttpRecorderException.java diff --git a/src/main/java/io/split/android/client/service/http/HttpRecorderImpl.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpRecorderImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/HttpRecorderImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/http/HttpRecorderImpl.java diff --git a/src/main/java/io/split/android/client/service/http/HttpRequestBodySerializer.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpRequestBodySerializer.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/HttpRequestBodySerializer.java rename to android-client-main/src/main/java/io/split/android/client/service/http/HttpRequestBodySerializer.java diff --git a/src/main/java/io/split/android/client/service/http/HttpResponseParser.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpResponseParser.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/HttpResponseParser.java rename to android-client-main/src/main/java/io/split/android/client/service/http/HttpResponseParser.java diff --git a/src/main/java/io/split/android/client/service/http/HttpResponseParserException.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpResponseParserException.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/HttpResponseParserException.java rename to android-client-main/src/main/java/io/split/android/client/service/http/HttpResponseParserException.java diff --git a/src/main/java/io/split/android/client/service/http/HttpSseAuthTokenFetcher.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpSseAuthTokenFetcher.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/HttpSseAuthTokenFetcher.java rename to android-client-main/src/main/java/io/split/android/client/service/http/HttpSseAuthTokenFetcher.java diff --git a/src/main/java/io/split/android/client/service/http/HttpStatus.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpStatus.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/HttpStatus.java rename to android-client-main/src/main/java/io/split/android/client/service/http/HttpStatus.java diff --git a/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactory.java b/android-client-main/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactory.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactory.java rename to android-client-main/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactory.java diff --git a/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImpl.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionHasher.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionHasher.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionHasher.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionHasher.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionManager.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManager.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionManager.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManager.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionManagerConfig.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerConfig.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionManagerConfig.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerConfig.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProvider.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProvider.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProvider.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProvider.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImpl.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImpl.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionUtils.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionUtils.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionUtils.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionUtils.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionsCount.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCount.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionsCount.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCount.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionsCountPerFeature.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountPerFeature.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionsCountPerFeature.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountPerFeature.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRecorderTask.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRecorderTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionsCountRecorderTask.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRecorderTask.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRequestBodySerializer.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRequestBodySerializer.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionsCountRequestBodySerializer.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRequestBodySerializer.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionsCounter.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCounter.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionsCounter.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCounter.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionsMode.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsMode.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionsMode.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsMode.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTask.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTask.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTask.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTaskConfig.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTaskConfig.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTaskConfig.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTaskConfig.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializer.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializer.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializer.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializer.java diff --git a/src/main/java/io/split/android/client/service/impressions/ImpressionsTaskFactory.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsTaskFactory.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/ImpressionsTaskFactory.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsTaskFactory.java diff --git a/src/main/java/io/split/android/client/service/impressions/KeyImpressionSerializer.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/KeyImpressionSerializer.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/KeyImpressionSerializer.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/KeyImpressionSerializer.java diff --git a/src/main/java/io/split/android/client/service/impressions/MemoizedSupplier.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/MemoizedSupplier.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/MemoizedSupplier.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/MemoizedSupplier.java diff --git a/src/main/java/io/split/android/client/service/impressions/SaveImpressionsCountTask.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/SaveImpressionsCountTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/SaveImpressionsCountTask.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/SaveImpressionsCountTask.java diff --git a/src/main/java/io/split/android/client/service/impressions/StrategyImpressionManager.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/StrategyImpressionManager.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/StrategyImpressionManager.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/StrategyImpressionManager.java diff --git a/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserver.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserver.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserver.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserver.java diff --git a/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCache.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCache.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCache.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCache.java diff --git a/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImpl.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImpl.java diff --git a/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverImpl.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverImpl.java diff --git a/src/main/java/io/split/android/client/service/impressions/observer/ListenableLruCache.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ListenableLruCache.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/observer/ListenableLruCache.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ListenableLruCache.java diff --git a/src/main/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTask.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTask.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTask.java diff --git a/src/main/java/io/split/android/client/service/impressions/observer/PersistentImpressionsObserverCacheStorage.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/PersistentImpressionsObserverCacheStorage.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/observer/PersistentImpressionsObserverCacheStorage.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/observer/PersistentImpressionsObserverCacheStorage.java diff --git a/src/main/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorage.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorage.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorage.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorage.java diff --git a/src/main/java/io/split/android/client/service/impressions/strategy/DebugStrategy.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/DebugStrategy.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/strategy/DebugStrategy.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/DebugStrategy.java diff --git a/src/main/java/io/split/android/client/service/impressions/strategy/DebugTracker.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/DebugTracker.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/strategy/DebugTracker.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/DebugTracker.java diff --git a/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyConfig.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyConfig.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyConfig.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyConfig.java diff --git a/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyProvider.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyProvider.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyProvider.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyProvider.java diff --git a/src/main/java/io/split/android/client/service/impressions/strategy/NoneStrategy.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/NoneStrategy.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/strategy/NoneStrategy.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/NoneStrategy.java diff --git a/src/main/java/io/split/android/client/service/impressions/strategy/NoneTracker.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/NoneTracker.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/strategy/NoneTracker.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/NoneTracker.java diff --git a/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedStrategy.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedStrategy.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/strategy/OptimizedStrategy.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedStrategy.java diff --git a/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedTracker.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedTracker.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/strategy/OptimizedTracker.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedTracker.java diff --git a/src/main/java/io/split/android/client/service/impressions/strategy/PeriodicTracker.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/PeriodicTracker.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/strategy/PeriodicTracker.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/PeriodicTracker.java diff --git a/src/main/java/io/split/android/client/service/impressions/strategy/ProcessStrategy.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/ProcessStrategy.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/strategy/ProcessStrategy.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/ProcessStrategy.java diff --git a/src/main/java/io/split/android/client/service/impressions/strategy/Utils.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/Utils.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/strategy/Utils.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/Utils.java diff --git a/src/main/java/io/split/android/client/service/impressions/unique/MTK.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/MTK.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/unique/MTK.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/unique/MTK.java diff --git a/src/main/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializer.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializer.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializer.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializer.java diff --git a/src/main/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTask.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTask.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTask.java diff --git a/src/main/java/io/split/android/client/service/impressions/unique/UniqueKey.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKey.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/unique/UniqueKey.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKey.java diff --git a/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTask.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTask.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTask.java diff --git a/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskConfig.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskConfig.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskConfig.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskConfig.java diff --git a/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTracker.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTracker.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTracker.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTracker.java diff --git a/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImpl.java b/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImpl.java diff --git a/src/main/java/io/split/android/client/service/mysegments/AllSegmentsResponseParser.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/AllSegmentsResponseParser.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/AllSegmentsResponseParser.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/AllSegmentsResponseParser.java diff --git a/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTask.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTask.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTask.java diff --git a/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfig.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfig.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfig.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfig.java diff --git a/src/main/java/io/split/android/client/service/mysegments/MySegmentUpdateParams.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentUpdateParams.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/MySegmentUpdateParams.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentUpdateParams.java diff --git a/src/main/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTask.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTask.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTask.java diff --git a/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTask.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTask.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTask.java diff --git a/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfig.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfig.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfig.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfig.java diff --git a/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactory.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactory.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactory.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactory.java diff --git a/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfiguration.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfiguration.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfiguration.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfiguration.java diff --git a/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryImpl.java diff --git a/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProvider.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProvider.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProvider.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProvider.java diff --git a/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProviderImpl.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProviderImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProviderImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProviderImpl.java diff --git a/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTask.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTask.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTask.java diff --git a/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfig.java b/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfig.java similarity index 100% rename from src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfig.java rename to android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfig.java diff --git a/src/main/java/io/split/android/client/service/rules/LoadRuleBasedSegmentsTask.java b/android-client-main/src/main/java/io/split/android/client/service/rules/LoadRuleBasedSegmentsTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/rules/LoadRuleBasedSegmentsTask.java rename to android-client-main/src/main/java/io/split/android/client/service/rules/LoadRuleBasedSegmentsTask.java diff --git a/src/main/java/io/split/android/client/service/rules/ProcessedRuleBasedSegmentChange.java b/android-client-main/src/main/java/io/split/android/client/service/rules/ProcessedRuleBasedSegmentChange.java similarity index 100% rename from src/main/java/io/split/android/client/service/rules/ProcessedRuleBasedSegmentChange.java rename to android-client-main/src/main/java/io/split/android/client/service/rules/ProcessedRuleBasedSegmentChange.java diff --git a/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessor.java b/android-client-main/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessor.java similarity index 100% rename from src/main/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessor.java rename to android-client-main/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessor.java diff --git a/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTask.java b/android-client-main/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTask.java rename to android-client-main/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTask.java diff --git a/src/main/java/io/split/android/client/service/rules/TargetingRulesResponseParser.java b/android-client-main/src/main/java/io/split/android/client/service/rules/TargetingRulesResponseParser.java similarity index 100% rename from src/main/java/io/split/android/client/service/rules/TargetingRulesResponseParser.java rename to android-client-main/src/main/java/io/split/android/client/service/rules/TargetingRulesResponseParser.java diff --git a/src/main/java/io/split/android/client/service/splits/FeatureFlagProcessStrategy.java b/android-client-main/src/main/java/io/split/android/client/service/splits/FeatureFlagProcessStrategy.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/FeatureFlagProcessStrategy.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/FeatureFlagProcessStrategy.java diff --git a/src/main/java/io/split/android/client/service/splits/FilterSplitsInCacheTask.java b/android-client-main/src/main/java/io/split/android/client/service/splits/FilterSplitsInCacheTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/FilterSplitsInCacheTask.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/FilterSplitsInCacheTask.java diff --git a/src/main/java/io/split/android/client/service/splits/LoadSplitsTask.java b/android-client-main/src/main/java/io/split/android/client/service/splits/LoadSplitsTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/LoadSplitsTask.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/LoadSplitsTask.java diff --git a/src/main/java/io/split/android/client/service/splits/OutdatedSplitProxyHandler.java b/android-client-main/src/main/java/io/split/android/client/service/splits/OutdatedSplitProxyHandler.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/OutdatedSplitProxyHandler.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/OutdatedSplitProxyHandler.java diff --git a/src/main/java/io/split/android/client/service/splits/RuleBasedSegmentInPlaceUpdateTask.java b/android-client-main/src/main/java/io/split/android/client/service/splits/RuleBasedSegmentInPlaceUpdateTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/RuleBasedSegmentInPlaceUpdateTask.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/RuleBasedSegmentInPlaceUpdateTask.java diff --git a/src/main/java/io/split/android/client/service/splits/SplitChangeProcessor.java b/android-client-main/src/main/java/io/split/android/client/service/splits/SplitChangeProcessor.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/SplitChangeProcessor.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/SplitChangeProcessor.java diff --git a/src/main/java/io/split/android/client/service/splits/SplitChangeResponseParser.java b/android-client-main/src/main/java/io/split/android/client/service/splits/SplitChangeResponseParser.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/SplitChangeResponseParser.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/SplitChangeResponseParser.java diff --git a/src/main/java/io/split/android/client/service/splits/SplitInPlaceUpdateTask.java b/android-client-main/src/main/java/io/split/android/client/service/splits/SplitInPlaceUpdateTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/SplitInPlaceUpdateTask.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/SplitInPlaceUpdateTask.java diff --git a/src/main/java/io/split/android/client/service/splits/SplitKillTask.java b/android-client-main/src/main/java/io/split/android/client/service/splits/SplitKillTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/SplitKillTask.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/SplitKillTask.java diff --git a/src/main/java/io/split/android/client/service/splits/SplitsSyncHelper.java b/android-client-main/src/main/java/io/split/android/client/service/splits/SplitsSyncHelper.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/SplitsSyncHelper.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/SplitsSyncHelper.java diff --git a/src/main/java/io/split/android/client/service/splits/SplitsSyncTask.java b/android-client-main/src/main/java/io/split/android/client/service/splits/SplitsSyncTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/SplitsSyncTask.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/SplitsSyncTask.java diff --git a/src/main/java/io/split/android/client/service/splits/SplitsUpdateTask.java b/android-client-main/src/main/java/io/split/android/client/service/splits/SplitsUpdateTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/SplitsUpdateTask.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/SplitsUpdateTask.java diff --git a/src/main/java/io/split/android/client/service/splits/TargetingRulesCache.java b/android-client-main/src/main/java/io/split/android/client/service/splits/TargetingRulesCache.java similarity index 100% rename from src/main/java/io/split/android/client/service/splits/TargetingRulesCache.java rename to android-client-main/src/main/java/io/split/android/client/service/splits/TargetingRulesCache.java diff --git a/src/main/java/io/split/android/client/service/sseauthentication/SseAuthenticationResponseParser.java b/android-client-main/src/main/java/io/split/android/client/service/sseauthentication/SseAuthenticationResponseParser.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseauthentication/SseAuthenticationResponseParser.java rename to android-client-main/src/main/java/io/split/android/client/service/sseauthentication/SseAuthenticationResponseParser.java diff --git a/src/main/java/io/split/android/client/service/sseclient/BackoffCounter.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/BackoffCounter.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/BackoffCounter.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/BackoffCounter.java diff --git a/src/main/java/io/split/android/client/service/sseclient/EventStreamParser.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/EventStreamParser.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/EventStreamParser.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/EventStreamParser.java diff --git a/src/main/java/io/split/android/client/service/sseclient/FixedIntervalBackoffCounter.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/FixedIntervalBackoffCounter.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/FixedIntervalBackoffCounter.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/FixedIntervalBackoffCounter.java diff --git a/src/main/java/io/split/android/client/service/sseclient/InvalidJwtTokenException.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/InvalidJwtTokenException.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/InvalidJwtTokenException.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/InvalidJwtTokenException.java diff --git a/src/main/java/io/split/android/client/service/sseclient/ReconnectBackoffCounter.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/ReconnectBackoffCounter.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/ReconnectBackoffCounter.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/ReconnectBackoffCounter.java diff --git a/src/main/java/io/split/android/client/service/sseclient/SseAuthToken.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/SseAuthToken.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/SseAuthToken.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/SseAuthToken.java diff --git a/src/main/java/io/split/android/client/service/sseclient/SseAuthenticationResponse.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/SseAuthenticationResponse.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/SseAuthenticationResponse.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/SseAuthenticationResponse.java diff --git a/src/main/java/io/split/android/client/service/sseclient/SseJwtParser.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/SseJwtParser.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/SseJwtParser.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/SseJwtParser.java diff --git a/src/main/java/io/split/android/client/service/sseclient/SseJwtToken.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/SseJwtToken.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/SseJwtToken.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/SseJwtToken.java diff --git a/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/BroadcastedEventListener.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/BroadcastedEventListener.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/feedbackchannel/BroadcastedEventListener.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/BroadcastedEventListener.java diff --git a/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/DelayStatusEvent.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/DelayStatusEvent.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/feedbackchannel/DelayStatusEvent.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/DelayStatusEvent.java diff --git a/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushManagerEventBroadcaster.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushManagerEventBroadcaster.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushManagerEventBroadcaster.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushManagerEventBroadcaster.java diff --git a/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushStatusEvent.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushStatusEvent.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushStatusEvent.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushStatusEvent.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/ControlNotification.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/ControlNotification.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/ControlNotification.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/ControlNotification.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/HashingAlgorithm.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/HashingAlgorithm.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/HashingAlgorithm.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/HashingAlgorithm.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotification.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotification.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotification.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotification.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotificationType.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotificationType.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotificationType.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotificationType.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/InstantUpdateChangeNotification.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/InstantUpdateChangeNotification.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/InstantUpdateChangeNotification.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/InstantUpdateChangeNotification.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/KeyList.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/KeyList.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/KeyList.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/KeyList.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/MembershipNotification.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/MembershipNotification.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/MembershipNotification.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/MembershipNotification.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentUpdateStrategy.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentUpdateStrategy.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentUpdateStrategy.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentUpdateStrategy.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentsV2PayloadDecoder.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentsV2PayloadDecoder.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentsV2PayloadDecoder.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentsV2PayloadDecoder.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationParser.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationParser.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/NotificationParser.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationParser.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationProcessor.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationProcessor.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/NotificationProcessor.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationProcessor.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationType.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationType.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/NotificationType.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationType.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/OccupancyNotification.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/OccupancyNotification.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/OccupancyNotification.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/OccupancyNotification.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/RawNotification.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/RawNotification.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/RawNotification.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/RawNotification.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/RuleBasedSegmentChangeNotification.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/RuleBasedSegmentChangeNotification.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/RuleBasedSegmentChangeNotification.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/RuleBasedSegmentChangeNotification.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/SplitKillNotification.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/SplitKillNotification.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/SplitKillNotification.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/SplitKillNotification.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/SplitsChangeNotification.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/SplitsChangeNotification.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/SplitsChangeNotification.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/SplitsChangeNotification.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/StreamingError.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/StreamingError.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/StreamingError.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/StreamingError.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessor.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessor.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessor.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessor.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessorImpl.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessorImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessorImpl.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactory.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactory.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactory.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactory.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactoryImpl.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorConfiguration.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorConfiguration.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorConfiguration.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorConfiguration.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorRegistry.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorRegistry.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorRegistry.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorRegistry.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculator.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculator.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculator.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculator.java diff --git a/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorImpl.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorImpl.java diff --git a/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorker.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorker.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorker.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorker.java diff --git a/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistry.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistry.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistry.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistry.java diff --git a/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImpl.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImpl.java diff --git a/src/main/java/io/split/android/client/service/sseclient/reactor/SplitUpdatesWorker.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/SplitUpdatesWorker.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/reactor/SplitUpdatesWorker.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/SplitUpdatesWorker.java diff --git a/src/main/java/io/split/android/client/service/sseclient/reactor/UpdateWorker.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/UpdateWorker.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/reactor/UpdateWorker.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/UpdateWorker.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/BackoffCounterTimer.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/BackoffCounterTimer.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/BackoffCounterTimer.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/BackoffCounterTimer.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/NotificationManagerKeeper.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/NotificationManagerKeeper.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/NotificationManagerKeeper.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/NotificationManagerKeeper.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManager.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManager.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManager.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManager.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTask.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTask.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTask.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimer.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimer.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimer.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimer.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticationResult.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticationResult.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticationResult.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticationResult.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticator.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticator.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticator.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticator.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClient.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClient.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/SseClient.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClient.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClientImpl.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClientImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/SseClientImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClientImpl.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimer.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimer.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimer.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimer.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/SseHandler.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseHandler.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/SseHandler.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseHandler.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/SseRefreshTokenTimer.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseRefreshTokenTimer.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/SseRefreshTokenTimer.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseRefreshTokenTimer.java diff --git a/src/main/java/io/split/android/client/service/sseclient/sseclient/StreamingComponents.java b/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/StreamingComponents.java similarity index 100% rename from src/main/java/io/split/android/client/service/sseclient/sseclient/StreamingComponents.java rename to android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/StreamingComponents.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizer.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizer.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizer.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizer.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImpl.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImpl.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/LoadLocalDataListener.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/LoadLocalDataListener.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/LoadLocalDataListener.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/LoadLocalDataListener.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/MySegmentsChangeChecker.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/MySegmentsChangeChecker.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/MySegmentsChangeChecker.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/MySegmentsChangeChecker.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelper.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelper.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelper.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelper.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImpl.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImpl.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManager.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManager.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManager.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManager.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManagerImpl.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManagerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManagerImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManagerImpl.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/SplitsChangeChecker.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SplitsChangeChecker.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/SplitsChangeChecker.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/SplitsChangeChecker.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/SyncGuardian.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncGuardian.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/SyncGuardian.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncGuardian.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/SyncGuardianImpl.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncGuardianImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/SyncGuardianImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncGuardianImpl.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/SyncManager.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncManager.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/SyncManager.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncManager.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/SyncManagerImpl.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncManagerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/SyncManagerImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncManagerImpl.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/Synchronizer.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/Synchronizer.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/Synchronizer.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/Synchronizer.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/SynchronizerImpl.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SynchronizerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/SynchronizerImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/SynchronizerImpl.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/SynchronizerSpy.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SynchronizerSpy.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/SynchronizerSpy.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/SynchronizerSpy.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/ThreadUtils.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/ThreadUtils.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/ThreadUtils.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/ThreadUtils.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizer.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizer.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizer.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizer.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactory.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactory.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactory.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactory.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactoryImpl.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImpl.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImpl.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistry.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistry.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistry.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistry.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImpl.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImpl.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsBackgroundSyncScheduleTask.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsBackgroundSyncScheduleTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsBackgroundSyncScheduleTask.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsBackgroundSyncScheduleTask.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizer.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizer.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizer.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizer.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactory.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactory.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactory.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactory.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactoryImpl.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImpl.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImpl.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistry.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistry.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistry.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistry.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImpl.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImpl.java diff --git a/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsWorkManagerWrapper.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsWorkManagerWrapper.java similarity index 100% rename from src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsWorkManagerWrapper.java rename to android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsWorkManagerWrapper.java diff --git a/src/main/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTask.java b/android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTask.java rename to android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTask.java diff --git a/src/main/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTask.java b/android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTask.java similarity index 100% rename from src/main/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTask.java rename to android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTask.java diff --git a/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactory.java b/android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactory.java similarity index 100% rename from src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactory.java rename to android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactory.java diff --git a/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactoryImpl.java diff --git a/src/main/java/io/split/android/client/service/workmanager/BaseSegmentsSyncWorker.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/BaseSegmentsSyncWorker.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/BaseSegmentsSyncWorker.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/BaseSegmentsSyncWorker.java diff --git a/src/main/java/io/split/android/client/service/workmanager/EventsRecorderWorker.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/EventsRecorderWorker.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/EventsRecorderWorker.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/EventsRecorderWorker.java diff --git a/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java diff --git a/src/main/java/io/split/android/client/service/workmanager/ImpressionsRecorderWorker.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/ImpressionsRecorderWorker.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/ImpressionsRecorderWorker.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/ImpressionsRecorderWorker.java diff --git a/src/main/java/io/split/android/client/service/workmanager/MySegmentsSyncWorker.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/MySegmentsSyncWorker.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/MySegmentsSyncWorker.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/MySegmentsSyncWorker.java diff --git a/src/main/java/io/split/android/client/service/workmanager/SplitWorker.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/SplitWorker.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/SplitWorker.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/SplitWorker.java diff --git a/src/main/java/io/split/android/client/service/workmanager/UniqueKeysRecorderWorker.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/UniqueKeysRecorderWorker.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/UniqueKeysRecorderWorker.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/UniqueKeysRecorderWorker.java diff --git a/src/main/java/io/split/android/client/service/workmanager/splits/FetcherProvider.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/FetcherProvider.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/splits/FetcherProvider.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/FetcherProvider.java diff --git a/src/main/java/io/split/android/client/service/workmanager/splits/SplitChangeProcessorProvider.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitChangeProcessorProvider.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/splits/SplitChangeProcessorProvider.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitChangeProcessorProvider.java diff --git a/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorker.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorker.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorker.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorker.java diff --git a/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilder.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilder.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilder.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilder.java diff --git a/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParams.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParams.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParams.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParams.java diff --git a/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilder.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilder.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilder.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilder.java diff --git a/src/main/java/io/split/android/client/service/workmanager/splits/StorageProvider.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/StorageProvider.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/splits/StorageProvider.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/StorageProvider.java diff --git a/src/main/java/io/split/android/client/service/workmanager/splits/SyncHelperProvider.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SyncHelperProvider.java similarity index 100% rename from src/main/java/io/split/android/client/service/workmanager/splits/SyncHelperProvider.java rename to android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SyncHelperProvider.java diff --git a/src/main/java/io/split/android/client/shared/BaseSplitClientContainer.java b/android-client-main/src/main/java/io/split/android/client/shared/BaseSplitClientContainer.java similarity index 100% rename from src/main/java/io/split/android/client/shared/BaseSplitClientContainer.java rename to android-client-main/src/main/java/io/split/android/client/shared/BaseSplitClientContainer.java diff --git a/src/main/java/io/split/android/client/shared/ClientComponentsRegister.java b/android-client-main/src/main/java/io/split/android/client/shared/ClientComponentsRegister.java similarity index 100% rename from src/main/java/io/split/android/client/shared/ClientComponentsRegister.java rename to android-client-main/src/main/java/io/split/android/client/shared/ClientComponentsRegister.java diff --git a/src/main/java/io/split/android/client/shared/ClientComponentsRegisterImpl.java b/android-client-main/src/main/java/io/split/android/client/shared/ClientComponentsRegisterImpl.java similarity index 100% rename from src/main/java/io/split/android/client/shared/ClientComponentsRegisterImpl.java rename to android-client-main/src/main/java/io/split/android/client/shared/ClientComponentsRegisterImpl.java diff --git a/src/main/java/io/split/android/client/shared/SplitClientContainer.java b/android-client-main/src/main/java/io/split/android/client/shared/SplitClientContainer.java similarity index 100% rename from src/main/java/io/split/android/client/shared/SplitClientContainer.java rename to android-client-main/src/main/java/io/split/android/client/shared/SplitClientContainer.java diff --git a/src/main/java/io/split/android/client/shared/SplitClientContainerImpl.java b/android-client-main/src/main/java/io/split/android/client/shared/SplitClientContainerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/shared/SplitClientContainerImpl.java rename to android-client-main/src/main/java/io/split/android/client/shared/SplitClientContainerImpl.java diff --git a/src/main/java/io/split/android/client/shared/UserConsent.java b/android-client-main/src/main/java/io/split/android/client/shared/UserConsent.java similarity index 100% rename from src/main/java/io/split/android/client/shared/UserConsent.java rename to android-client-main/src/main/java/io/split/android/client/shared/UserConsent.java diff --git a/src/main/java/io/split/android/client/storage/RolloutDefinitionsCache.java b/android-client-main/src/main/java/io/split/android/client/storage/RolloutDefinitionsCache.java similarity index 100% rename from src/main/java/io/split/android/client/storage/RolloutDefinitionsCache.java rename to android-client-main/src/main/java/io/split/android/client/storage/RolloutDefinitionsCache.java diff --git a/src/main/java/io/split/android/client/storage/attributes/AttributesStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/attributes/AttributesStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorage.java diff --git a/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainer.java b/android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainer.java similarity index 100% rename from src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainer.java rename to android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainer.java diff --git a/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainerImpl.java b/android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainerImpl.java rename to android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainerImpl.java diff --git a/src/main/java/io/split/android/client/storage/attributes/AttributesStorageImpl.java b/android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageImpl.java similarity index 100% rename from src/main/java/io/split/android/client/storage/attributes/AttributesStorageImpl.java rename to android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageImpl.java diff --git a/src/main/java/io/split/android/client/storage/attributes/PersistentAttributesStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/attributes/PersistentAttributesStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/attributes/PersistentAttributesStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/attributes/PersistentAttributesStorage.java diff --git a/src/main/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorage.java diff --git a/src/main/java/io/split/android/client/storage/cipher/ApplyCipherTask.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/ApplyCipherTask.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/ApplyCipherTask.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/ApplyCipherTask.java diff --git a/src/main/java/io/split/android/client/storage/cipher/CBCCipher.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/CBCCipher.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/CBCCipher.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/CBCCipher.java diff --git a/src/main/java/io/split/android/client/storage/cipher/CBCCipherProvider.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/CBCCipherProvider.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/CBCCipherProvider.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/CBCCipherProvider.java diff --git a/src/main/java/io/split/android/client/storage/cipher/CipherProvider.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/CipherProvider.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/CipherProvider.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/CipherProvider.java diff --git a/src/main/java/io/split/android/client/storage/cipher/DBCipher.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/DBCipher.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/DBCipher.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/DBCipher.java diff --git a/src/main/java/io/split/android/client/storage/cipher/EncryptionMigrationTask.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/EncryptionMigrationTask.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/EncryptionMigrationTask.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/EncryptionMigrationTask.java diff --git a/src/main/java/io/split/android/client/storage/cipher/KeyManager.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/KeyManager.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/KeyManager.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/KeyManager.java diff --git a/src/main/java/io/split/android/client/storage/cipher/NoOpCipher.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/NoOpCipher.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/NoOpCipher.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/NoOpCipher.java diff --git a/src/main/java/io/split/android/client/storage/cipher/ObjectPool.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/ObjectPool.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/ObjectPool.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/ObjectPool.java diff --git a/src/main/java/io/split/android/client/storage/cipher/ObjectPoolFactory.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/ObjectPoolFactory.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/ObjectPoolFactory.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/ObjectPoolFactory.java diff --git a/src/main/java/io/split/android/client/storage/cipher/SplitCipher.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/SplitCipher.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/SplitCipher.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/SplitCipher.java diff --git a/src/main/java/io/split/android/client/storage/cipher/SplitCipherFactory.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/SplitCipherFactory.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/SplitCipherFactory.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/SplitCipherFactory.java diff --git a/src/main/java/io/split/android/client/storage/cipher/SplitEncryptionLevel.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/SplitEncryptionLevel.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/SplitEncryptionLevel.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/SplitEncryptionLevel.java diff --git a/src/main/java/io/split/android/client/storage/cipher/provider/KeyProvider.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/provider/KeyProvider.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/provider/KeyProvider.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/provider/KeyProvider.java diff --git a/src/main/java/io/split/android/client/storage/cipher/provider/LegacyKeyProvider.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/provider/LegacyKeyProvider.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/provider/LegacyKeyProvider.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/provider/LegacyKeyProvider.java diff --git a/src/main/java/io/split/android/client/storage/cipher/provider/SecureKeyStorageProvider.java b/android-client-main/src/main/java/io/split/android/client/storage/cipher/provider/SecureKeyStorageProvider.java similarity index 100% rename from src/main/java/io/split/android/client/storage/cipher/provider/SecureKeyStorageProvider.java rename to android-client-main/src/main/java/io/split/android/client/storage/cipher/provider/SecureKeyStorageProvider.java diff --git a/src/main/java/io/split/android/client/storage/common/InBytesSizable.java b/android-client-main/src/main/java/io/split/android/client/storage/common/InBytesSizable.java similarity index 100% rename from src/main/java/io/split/android/client/storage/common/InBytesSizable.java rename to android-client-main/src/main/java/io/split/android/client/storage/common/InBytesSizable.java diff --git a/src/main/java/io/split/android/client/storage/common/PersistentStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/common/PersistentStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/common/PersistentStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/common/PersistentStorage.java diff --git a/src/main/java/io/split/android/client/storage/common/RuleBasedSegmentStorageInitializer.java b/android-client-main/src/main/java/io/split/android/client/storage/common/RuleBasedSegmentStorageInitializer.java similarity index 100% rename from src/main/java/io/split/android/client/storage/common/RuleBasedSegmentStorageInitializer.java rename to android-client-main/src/main/java/io/split/android/client/storage/common/RuleBasedSegmentStorageInitializer.java diff --git a/src/main/java/io/split/android/client/storage/common/SplitStorageContainer.java b/android-client-main/src/main/java/io/split/android/client/storage/common/SplitStorageContainer.java similarity index 100% rename from src/main/java/io/split/android/client/storage/common/SplitStorageContainer.java rename to android-client-main/src/main/java/io/split/android/client/storage/common/SplitStorageContainer.java diff --git a/src/main/java/io/split/android/client/storage/common/SqLitePersistentStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/common/SqLitePersistentStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/common/SqLitePersistentStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/common/SqLitePersistentStorage.java diff --git a/src/main/java/io/split/android/client/storage/common/Storage.java b/android-client-main/src/main/java/io/split/android/client/storage/common/Storage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/common/Storage.java rename to android-client-main/src/main/java/io/split/android/client/storage/common/Storage.java diff --git a/src/main/java/io/split/android/client/storage/common/StoragePusher.java b/android-client-main/src/main/java/io/split/android/client/storage/common/StoragePusher.java similarity index 100% rename from src/main/java/io/split/android/client/storage/common/StoragePusher.java rename to android-client-main/src/main/java/io/split/android/client/storage/common/StoragePusher.java diff --git a/src/main/java/io/split/android/client/storage/db/EventDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/EventDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/EventDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/EventDao.java diff --git a/src/main/java/io/split/android/client/storage/db/EventEntity.java b/android-client-main/src/main/java/io/split/android/client/storage/db/EventEntity.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/EventEntity.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/EventEntity.java diff --git a/src/main/java/io/split/android/client/storage/db/GeneralInfoDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/GeneralInfoDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/GeneralInfoDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/GeneralInfoDao.java diff --git a/src/main/java/io/split/android/client/storage/db/GeneralInfoEntity.java b/android-client-main/src/main/java/io/split/android/client/storage/db/GeneralInfoEntity.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/GeneralInfoEntity.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/GeneralInfoEntity.java diff --git a/src/main/java/io/split/android/client/storage/db/ImpressionDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/ImpressionDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionDao.java diff --git a/src/main/java/io/split/android/client/storage/db/ImpressionEntity.java b/android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionEntity.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/ImpressionEntity.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionEntity.java diff --git a/src/main/java/io/split/android/client/storage/db/ImpressionsCountDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionsCountDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/ImpressionsCountDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionsCountDao.java diff --git a/src/main/java/io/split/android/client/storage/db/ImpressionsCountEntity.java b/android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionsCountEntity.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/ImpressionsCountEntity.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionsCountEntity.java diff --git a/src/main/java/io/split/android/client/storage/db/MyLargeSegmentDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/MyLargeSegmentDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/MyLargeSegmentDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/MyLargeSegmentDao.java diff --git a/src/main/java/io/split/android/client/storage/db/MyLargeSegmentEntity.java b/android-client-main/src/main/java/io/split/android/client/storage/db/MyLargeSegmentEntity.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/MyLargeSegmentEntity.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/MyLargeSegmentEntity.java diff --git a/src/main/java/io/split/android/client/storage/db/MySegmentDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/MySegmentDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/MySegmentDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/MySegmentDao.java diff --git a/src/main/java/io/split/android/client/storage/db/MySegmentEntity.java b/android-client-main/src/main/java/io/split/android/client/storage/db/MySegmentEntity.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/MySegmentEntity.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/MySegmentEntity.java diff --git a/src/main/java/io/split/android/client/storage/db/SegmentDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/SegmentDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/SegmentDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/SegmentDao.java diff --git a/src/main/java/io/split/android/client/storage/db/SegmentEntity.java b/android-client-main/src/main/java/io/split/android/client/storage/db/SegmentEntity.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/SegmentEntity.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/SegmentEntity.java diff --git a/src/main/java/io/split/android/client/storage/db/SplitDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/SplitDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/SplitDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/SplitDao.java diff --git a/src/main/java/io/split/android/client/storage/db/SplitEntity.java b/android-client-main/src/main/java/io/split/android/client/storage/db/SplitEntity.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/SplitEntity.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/SplitEntity.java diff --git a/src/main/java/io/split/android/client/storage/db/SplitQueryDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/SplitQueryDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/SplitQueryDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/SplitQueryDao.java diff --git a/src/main/java/io/split/android/client/storage/db/SplitQueryDaoImpl.java b/android-client-main/src/main/java/io/split/android/client/storage/db/SplitQueryDaoImpl.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/SplitQueryDaoImpl.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/SplitQueryDaoImpl.java diff --git a/src/main/java/io/split/android/client/storage/db/SplitRoomDatabase.java b/android-client-main/src/main/java/io/split/android/client/storage/db/SplitRoomDatabase.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/SplitRoomDatabase.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/SplitRoomDatabase.java diff --git a/src/main/java/io/split/android/client/storage/db/StorageFactory.java b/android-client-main/src/main/java/io/split/android/client/storage/db/StorageFactory.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/StorageFactory.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/StorageFactory.java diff --git a/src/main/java/io/split/android/client/storage/db/StorageRecordStatus.java b/android-client-main/src/main/java/io/split/android/client/storage/db/StorageRecordStatus.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/StorageRecordStatus.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/StorageRecordStatus.java diff --git a/src/main/java/io/split/android/client/storage/db/attributes/AttributesDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/attributes/AttributesDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/attributes/AttributesDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/attributes/AttributesDao.java diff --git a/src/main/java/io/split/android/client/storage/db/attributes/AttributesEntity.java b/android-client-main/src/main/java/io/split/android/client/storage/db/attributes/AttributesEntity.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/attributes/AttributesEntity.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/attributes/AttributesEntity.java diff --git a/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheDao.java diff --git a/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheEntity.java b/android-client-main/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheEntity.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheEntity.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheEntity.java diff --git a/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeyEntity.java b/android-client-main/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeyEntity.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeyEntity.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeyEntity.java diff --git a/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeysDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeysDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeysDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeysDao.java diff --git a/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentDao.java b/android-client-main/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentDao.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentDao.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentDao.java diff --git a/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentEntity.java b/android-client-main/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentEntity.java similarity index 100% rename from src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentEntity.java rename to android-client-main/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentEntity.java diff --git a/src/main/java/io/split/android/client/storage/events/EventsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/events/EventsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/events/EventsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/events/EventsStorage.java diff --git a/src/main/java/io/split/android/client/storage/events/PersistentEventsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/events/PersistentEventsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/events/PersistentEventsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/events/PersistentEventsStorage.java diff --git a/src/main/java/io/split/android/client/storage/events/SqLitePersistentEventsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/events/SqLitePersistentEventsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/events/SqLitePersistentEventsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/events/SqLitePersistentEventsStorage.java diff --git a/src/main/java/io/split/android/client/storage/general/GeneralInfoStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/general/GeneralInfoStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/general/GeneralInfoStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/general/GeneralInfoStorage.java diff --git a/src/main/java/io/split/android/client/storage/general/GeneralInfoStorageImpl.java b/android-client-main/src/main/java/io/split/android/client/storage/general/GeneralInfoStorageImpl.java similarity index 100% rename from src/main/java/io/split/android/client/storage/general/GeneralInfoStorageImpl.java rename to android-client-main/src/main/java/io/split/android/client/storage/general/GeneralInfoStorageImpl.java diff --git a/src/main/java/io/split/android/client/storage/impressions/ImpressionsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/impressions/ImpressionsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/impressions/ImpressionsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/impressions/ImpressionsStorage.java diff --git a/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsCountStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsCountStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsCountStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsCountStorage.java diff --git a/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsStorage.java diff --git a/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsUniqueStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsUniqueStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsUniqueStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsUniqueStorage.java diff --git a/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsCountStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsCountStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsCountStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsCountStorage.java diff --git a/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsStorage.java diff --git a/src/main/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorage.java diff --git a/src/main/java/io/split/android/client/storage/legacy/FileStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/legacy/FileStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/legacy/FileStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/legacy/FileStorage.java diff --git a/src/main/java/io/split/android/client/storage/legacy/FileStorageHelper.java b/android-client-main/src/main/java/io/split/android/client/storage/legacy/FileStorageHelper.java similarity index 100% rename from src/main/java/io/split/android/client/storage/legacy/FileStorageHelper.java rename to android-client-main/src/main/java/io/split/android/client/storage/legacy/FileStorageHelper.java diff --git a/src/main/java/io/split/android/client/storage/legacy/IStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/legacy/IStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/legacy/IStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/legacy/IStorage.java diff --git a/src/main/java/io/split/android/client/storage/mysegments/EmptyMySegmentsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/mysegments/EmptyMySegmentsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/mysegments/EmptyMySegmentsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/mysegments/EmptyMySegmentsStorage.java diff --git a/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorage.java diff --git a/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainer.java b/android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainer.java similarity index 100% rename from src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainer.java rename to android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainer.java diff --git a/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImpl.java b/android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImpl.java rename to android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImpl.java diff --git a/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageImpl.java b/android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageImpl.java similarity index 100% rename from src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageImpl.java rename to android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageImpl.java diff --git a/src/main/java/io/split/android/client/storage/mysegments/PersistentMySegmentsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/mysegments/PersistentMySegmentsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/mysegments/PersistentMySegmentsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/mysegments/PersistentMySegmentsStorage.java diff --git a/src/main/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorage.java diff --git a/src/main/java/io/split/android/client/storage/rbs/Clearer.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/Clearer.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/Clearer.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/Clearer.java diff --git a/src/main/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProvider.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProvider.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProvider.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProvider.java diff --git a/src/main/java/io/split/android/client/storage/rbs/PersistentRuleBasedSegmentStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/PersistentRuleBasedSegmentStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/PersistentRuleBasedSegmentStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/PersistentRuleBasedSegmentStorage.java diff --git a/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentSnapshot.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentSnapshot.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentSnapshot.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentSnapshot.java diff --git a/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorage.java diff --git a/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageConsumer.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageConsumer.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageConsumer.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageConsumer.java diff --git a/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImpl.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImpl.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImpl.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImpl.java diff --git a/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducer.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducer.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducer.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducer.java diff --git a/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImpl.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImpl.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImpl.java diff --git a/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProvider.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProvider.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProvider.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProvider.java diff --git a/src/main/java/io/split/android/client/storage/rbs/SnapshotLoader.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/SnapshotLoader.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/SnapshotLoader.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/SnapshotLoader.java diff --git a/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorage.java diff --git a/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageProvider.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageProvider.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageProvider.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageProvider.java diff --git a/src/main/java/io/split/android/client/storage/rbs/Updater.java b/android-client-main/src/main/java/io/split/android/client/storage/rbs/Updater.java similarity index 100% rename from src/main/java/io/split/android/client/storage/rbs/Updater.java rename to android-client-main/src/main/java/io/split/android/client/storage/rbs/Updater.java diff --git a/src/main/java/io/split/android/client/storage/splits/MetadataHelper.java b/android-client-main/src/main/java/io/split/android/client/storage/splits/MetadataHelper.java similarity index 100% rename from src/main/java/io/split/android/client/storage/splits/MetadataHelper.java rename to android-client-main/src/main/java/io/split/android/client/storage/splits/MetadataHelper.java diff --git a/src/main/java/io/split/android/client/storage/splits/PersistentSplitsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/splits/PersistentSplitsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/splits/PersistentSplitsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/splits/PersistentSplitsStorage.java diff --git a/src/main/java/io/split/android/client/storage/splits/ProcessedSplitChange.java b/android-client-main/src/main/java/io/split/android/client/storage/splits/ProcessedSplitChange.java similarity index 100% rename from src/main/java/io/split/android/client/storage/splits/ProcessedSplitChange.java rename to android-client-main/src/main/java/io/split/android/client/storage/splits/ProcessedSplitChange.java diff --git a/src/main/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformer.java b/android-client-main/src/main/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformer.java similarity index 100% rename from src/main/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformer.java rename to android-client-main/src/main/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformer.java diff --git a/src/main/java/io/split/android/client/storage/splits/SplitListTransformer.java b/android-client-main/src/main/java/io/split/android/client/storage/splits/SplitListTransformer.java similarity index 100% rename from src/main/java/io/split/android/client/storage/splits/SplitListTransformer.java rename to android-client-main/src/main/java/io/split/android/client/storage/splits/SplitListTransformer.java diff --git a/src/main/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformer.java b/android-client-main/src/main/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformer.java similarity index 100% rename from src/main/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformer.java rename to android-client-main/src/main/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformer.java diff --git a/src/main/java/io/split/android/client/storage/splits/SplitsSnapshot.java b/android-client-main/src/main/java/io/split/android/client/storage/splits/SplitsSnapshot.java similarity index 100% rename from src/main/java/io/split/android/client/storage/splits/SplitsSnapshot.java rename to android-client-main/src/main/java/io/split/android/client/storage/splits/SplitsSnapshot.java diff --git a/src/main/java/io/split/android/client/storage/splits/SplitsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/splits/SplitsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/splits/SplitsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/splits/SplitsStorage.java diff --git a/src/main/java/io/split/android/client/storage/splits/SplitsStorageImpl.java b/android-client-main/src/main/java/io/split/android/client/storage/splits/SplitsStorageImpl.java similarity index 100% rename from src/main/java/io/split/android/client/storage/splits/SplitsStorageImpl.java rename to android-client-main/src/main/java/io/split/android/client/storage/splits/SplitsStorageImpl.java diff --git a/src/main/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorage.java b/android-client-main/src/main/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorage.java similarity index 100% rename from src/main/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorage.java rename to android-client-main/src/main/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorage.java diff --git a/src/main/java/io/split/android/client/telemetry/TelemetryConfigBodySerializer.java b/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryConfigBodySerializer.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/TelemetryConfigBodySerializer.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryConfigBodySerializer.java diff --git a/src/main/java/io/split/android/client/telemetry/TelemetryHelper.java b/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryHelper.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/TelemetryHelper.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryHelper.java diff --git a/src/main/java/io/split/android/client/telemetry/TelemetryHelperImpl.java b/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryHelperImpl.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/TelemetryHelperImpl.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryHelperImpl.java diff --git a/src/main/java/io/split/android/client/telemetry/TelemetryStatsBodySerializer.java b/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryStatsBodySerializer.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/TelemetryStatsBodySerializer.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryStatsBodySerializer.java diff --git a/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizer.java b/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizer.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/TelemetrySynchronizer.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizer.java diff --git a/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerImpl.java b/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerImpl.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerImpl.java diff --git a/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerStub.java b/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerStub.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerStub.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerStub.java diff --git a/src/main/java/io/split/android/client/telemetry/model/Config.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/Config.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/Config.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/Config.java diff --git a/src/main/java/io/split/android/client/telemetry/model/EventTypeEnum.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/EventTypeEnum.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/EventTypeEnum.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/EventTypeEnum.java diff --git a/src/main/java/io/split/android/client/telemetry/model/EventsDataRecordsEnum.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/EventsDataRecordsEnum.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/EventsDataRecordsEnum.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/EventsDataRecordsEnum.java diff --git a/src/main/java/io/split/android/client/telemetry/model/FactoryCounter.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/FactoryCounter.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/FactoryCounter.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/FactoryCounter.java diff --git a/src/main/java/io/split/android/client/telemetry/model/HttpErrors.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/HttpErrors.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/HttpErrors.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/HttpErrors.java diff --git a/src/main/java/io/split/android/client/telemetry/model/HttpLatencies.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/HttpLatencies.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/HttpLatencies.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/HttpLatencies.java diff --git a/src/main/java/io/split/android/client/telemetry/model/ImpressionsDataType.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/ImpressionsDataType.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/ImpressionsDataType.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/ImpressionsDataType.java diff --git a/src/main/java/io/split/android/client/telemetry/model/ImpressionsMode.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/ImpressionsMode.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/ImpressionsMode.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/ImpressionsMode.java diff --git a/src/main/java/io/split/android/client/telemetry/model/LastSync.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/LastSync.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/LastSync.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/LastSync.java diff --git a/src/main/java/io/split/android/client/telemetry/model/Method.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/Method.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/Method.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/Method.java diff --git a/src/main/java/io/split/android/client/telemetry/model/MethodExceptions.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/MethodExceptions.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/MethodExceptions.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/MethodExceptions.java diff --git a/src/main/java/io/split/android/client/telemetry/model/MethodLatencies.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/MethodLatencies.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/MethodLatencies.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/MethodLatencies.java diff --git a/src/main/java/io/split/android/client/telemetry/model/OperationMode.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/OperationMode.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/OperationMode.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/OperationMode.java diff --git a/src/main/java/io/split/android/client/telemetry/model/OperationType.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/OperationType.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/OperationType.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/OperationType.java diff --git a/src/main/java/io/split/android/client/telemetry/model/PushCounterEvent.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/PushCounterEvent.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/PushCounterEvent.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/PushCounterEvent.java diff --git a/src/main/java/io/split/android/client/telemetry/model/RefreshRates.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/RefreshRates.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/RefreshRates.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/RefreshRates.java diff --git a/src/main/java/io/split/android/client/telemetry/model/Stats.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/Stats.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/Stats.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/Stats.java diff --git a/src/main/java/io/split/android/client/telemetry/model/UpdatesFromSSE.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/UpdatesFromSSE.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/UpdatesFromSSE.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/UpdatesFromSSE.java diff --git a/src/main/java/io/split/android/client/telemetry/model/UrlOverrides.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/UrlOverrides.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/UrlOverrides.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/UrlOverrides.java diff --git a/src/main/java/io/split/android/client/telemetry/model/streaming/AblyErrorStreamingEvent.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/AblyErrorStreamingEvent.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/streaming/AblyErrorStreamingEvent.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/AblyErrorStreamingEvent.java diff --git a/src/main/java/io/split/android/client/telemetry/model/streaming/ConnectionEstablishedStreamingEvent.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/ConnectionEstablishedStreamingEvent.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/streaming/ConnectionEstablishedStreamingEvent.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/ConnectionEstablishedStreamingEvent.java diff --git a/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancyPriStreamingEvent.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancyPriStreamingEvent.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/streaming/OccupancyPriStreamingEvent.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancyPriStreamingEvent.java diff --git a/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancySecStreamingEvent.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancySecStreamingEvent.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/streaming/OccupancySecStreamingEvent.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancySecStreamingEvent.java diff --git a/src/main/java/io/split/android/client/telemetry/model/streaming/SseConnectionErrorStreamingEvent.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/SseConnectionErrorStreamingEvent.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/streaming/SseConnectionErrorStreamingEvent.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/SseConnectionErrorStreamingEvent.java diff --git a/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingEvent.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingEvent.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/streaming/StreamingEvent.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingEvent.java diff --git a/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingStatusStreamingEvent.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingStatusStreamingEvent.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/streaming/StreamingStatusStreamingEvent.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingStatusStreamingEvent.java diff --git a/src/main/java/io/split/android/client/telemetry/model/streaming/SyncModeUpdateStreamingEvent.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/SyncModeUpdateStreamingEvent.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/streaming/SyncModeUpdateStreamingEvent.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/SyncModeUpdateStreamingEvent.java diff --git a/src/main/java/io/split/android/client/telemetry/model/streaming/TokenRefreshStreamingEvent.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/TokenRefreshStreamingEvent.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/streaming/TokenRefreshStreamingEvent.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/TokenRefreshStreamingEvent.java diff --git a/src/main/java/io/split/android/client/telemetry/model/streaming/UpdatesFromSSEEnum.java b/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/UpdatesFromSSEEnum.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/model/streaming/UpdatesFromSSEEnum.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/UpdatesFromSSEEnum.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/BinarySearchLatencyTracker.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/BinarySearchLatencyTracker.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/BinarySearchLatencyTracker.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/BinarySearchLatencyTracker.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/ILatencyTracker.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/ILatencyTracker.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/ILatencyTracker.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/ILatencyTracker.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorage.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorage.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorage.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorage.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/NoOpTelemetryStorage.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/NoOpTelemetryStorage.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/NoOpTelemetryStorage.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/NoOpTelemetryStorage.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProvider.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProvider.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProvider.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProvider.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImpl.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImpl.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImpl.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImpl.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationConsumer.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationConsumer.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationConsumer.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationConsumer.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationProducer.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationProducer.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationProducer.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationProducer.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitConsumer.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitConsumer.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryInitConsumer.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitConsumer.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitProducer.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitProducer.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryInitProducer.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitProducer.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeConsumer.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeConsumer.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeConsumer.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeConsumer.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeProducer.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeProducer.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeProducer.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeProducer.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProvider.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProvider.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProvider.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProvider.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImpl.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImpl.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImpl.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImpl.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorage.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorage.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryStorage.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorage.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageConsumer.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageConsumer.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageConsumer.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageConsumer.java diff --git a/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageProducer.java b/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageProducer.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageProducer.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageProducer.java diff --git a/src/main/java/io/split/android/client/telemetry/util/AtomicLongArray.java b/android-client-main/src/main/java/io/split/android/client/telemetry/util/AtomicLongArray.java similarity index 100% rename from src/main/java/io/split/android/client/telemetry/util/AtomicLongArray.java rename to android-client-main/src/main/java/io/split/android/client/telemetry/util/AtomicLongArray.java diff --git a/src/main/java/io/split/android/client/utils/BCrypt.java b/android-client-main/src/main/java/io/split/android/client/utils/BCrypt.java similarity index 100% rename from src/main/java/io/split/android/client/utils/BCrypt.java rename to android-client-main/src/main/java/io/split/android/client/utils/BCrypt.java diff --git a/src/main/java/io/split/android/client/utils/Base64Util.java b/android-client-main/src/main/java/io/split/android/client/utils/Base64Util.java similarity index 100% rename from src/main/java/io/split/android/client/utils/Base64Util.java rename to android-client-main/src/main/java/io/split/android/client/utils/Base64Util.java diff --git a/src/main/java/io/split/android/client/utils/CompressionUtil.java b/android-client-main/src/main/java/io/split/android/client/utils/CompressionUtil.java similarity index 100% rename from src/main/java/io/split/android/client/utils/CompressionUtil.java rename to android-client-main/src/main/java/io/split/android/client/utils/CompressionUtil.java diff --git a/src/main/java/io/split/android/client/utils/FileUtils.java b/android-client-main/src/main/java/io/split/android/client/utils/FileUtils.java similarity index 100% rename from src/main/java/io/split/android/client/utils/FileUtils.java rename to android-client-main/src/main/java/io/split/android/client/utils/FileUtils.java diff --git a/src/main/java/io/split/android/client/utils/Gzip.java b/android-client-main/src/main/java/io/split/android/client/utils/Gzip.java similarity index 100% rename from src/main/java/io/split/android/client/utils/Gzip.java rename to android-client-main/src/main/java/io/split/android/client/utils/Gzip.java diff --git a/src/main/java/io/split/android/client/utils/HttpProxySerializer.java b/android-client-main/src/main/java/io/split/android/client/utils/HttpProxySerializer.java similarity index 100% rename from src/main/java/io/split/android/client/utils/HttpProxySerializer.java rename to android-client-main/src/main/java/io/split/android/client/utils/HttpProxySerializer.java diff --git a/src/main/java/io/split/android/client/utils/Json.java b/android-client-main/src/main/java/io/split/android/client/utils/Json.java similarity index 100% rename from src/main/java/io/split/android/client/utils/Json.java rename to android-client-main/src/main/java/io/split/android/client/utils/Json.java diff --git a/src/main/java/io/split/android/client/utils/MemoryUtils.java b/android-client-main/src/main/java/io/split/android/client/utils/MemoryUtils.java similarity index 100% rename from src/main/java/io/split/android/client/utils/MemoryUtils.java rename to android-client-main/src/main/java/io/split/android/client/utils/MemoryUtils.java diff --git a/src/main/java/io/split/android/client/utils/MemoryUtilsImpl.java b/android-client-main/src/main/java/io/split/android/client/utils/MemoryUtilsImpl.java similarity index 100% rename from src/main/java/io/split/android/client/utils/MemoryUtilsImpl.java rename to android-client-main/src/main/java/io/split/android/client/utils/MemoryUtilsImpl.java diff --git a/src/main/java/io/split/android/client/utils/MurmurHash3.java b/android-client-main/src/main/java/io/split/android/client/utils/MurmurHash3.java similarity index 100% rename from src/main/java/io/split/android/client/utils/MurmurHash3.java rename to android-client-main/src/main/java/io/split/android/client/utils/MurmurHash3.java diff --git a/src/main/java/io/split/android/client/utils/StringHelper.java b/android-client-main/src/main/java/io/split/android/client/utils/StringHelper.java similarity index 100% rename from src/main/java/io/split/android/client/utils/StringHelper.java rename to android-client-main/src/main/java/io/split/android/client/utils/StringHelper.java diff --git a/src/main/java/io/split/android/client/utils/Utils.java b/android-client-main/src/main/java/io/split/android/client/utils/Utils.java similarity index 100% rename from src/main/java/io/split/android/client/utils/Utils.java rename to android-client-main/src/main/java/io/split/android/client/utils/Utils.java diff --git a/src/main/java/io/split/android/client/utils/YamlParser.java b/android-client-main/src/main/java/io/split/android/client/utils/YamlParser.java similarity index 100% rename from src/main/java/io/split/android/client/utils/YamlParser.java rename to android-client-main/src/main/java/io/split/android/client/utils/YamlParser.java diff --git a/src/main/java/io/split/android/client/utils/Zlib.java b/android-client-main/src/main/java/io/split/android/client/utils/Zlib.java similarity index 100% rename from src/main/java/io/split/android/client/utils/Zlib.java rename to android-client-main/src/main/java/io/split/android/client/utils/Zlib.java diff --git a/src/main/java/io/split/android/client/utils/deserializer/EventDeserializer.java b/android-client-main/src/main/java/io/split/android/client/utils/deserializer/EventDeserializer.java similarity index 100% rename from src/main/java/io/split/android/client/utils/deserializer/EventDeserializer.java rename to android-client-main/src/main/java/io/split/android/client/utils/deserializer/EventDeserializer.java diff --git a/src/main/java/io/split/android/client/utils/serializer/DoubleSerializer.java b/android-client-main/src/main/java/io/split/android/client/utils/serializer/DoubleSerializer.java similarity index 100% rename from src/main/java/io/split/android/client/utils/serializer/DoubleSerializer.java rename to android-client-main/src/main/java/io/split/android/client/utils/serializer/DoubleSerializer.java diff --git a/src/main/java/io/split/android/client/validators/ApiKeyValidator.java b/android-client-main/src/main/java/io/split/android/client/validators/ApiKeyValidator.java similarity index 100% rename from src/main/java/io/split/android/client/validators/ApiKeyValidator.java rename to android-client-main/src/main/java/io/split/android/client/validators/ApiKeyValidator.java diff --git a/src/main/java/io/split/android/client/validators/ApiKeyValidatorImpl.java b/android-client-main/src/main/java/io/split/android/client/validators/ApiKeyValidatorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/validators/ApiKeyValidatorImpl.java rename to android-client-main/src/main/java/io/split/android/client/validators/ApiKeyValidatorImpl.java diff --git a/src/main/java/io/split/android/client/validators/AttributesValidator.java b/android-client-main/src/main/java/io/split/android/client/validators/AttributesValidator.java similarity index 100% rename from src/main/java/io/split/android/client/validators/AttributesValidator.java rename to android-client-main/src/main/java/io/split/android/client/validators/AttributesValidator.java diff --git a/src/main/java/io/split/android/client/validators/AttributesValidatorImpl.java b/android-client-main/src/main/java/io/split/android/client/validators/AttributesValidatorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/validators/AttributesValidatorImpl.java rename to android-client-main/src/main/java/io/split/android/client/validators/AttributesValidatorImpl.java diff --git a/src/main/java/io/split/android/client/validators/EventValidator.java b/android-client-main/src/main/java/io/split/android/client/validators/EventValidator.java similarity index 100% rename from src/main/java/io/split/android/client/validators/EventValidator.java rename to android-client-main/src/main/java/io/split/android/client/validators/EventValidator.java diff --git a/src/main/java/io/split/android/client/validators/EventValidatorImpl.java b/android-client-main/src/main/java/io/split/android/client/validators/EventValidatorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/validators/EventValidatorImpl.java rename to android-client-main/src/main/java/io/split/android/client/validators/EventValidatorImpl.java diff --git a/src/main/java/io/split/android/client/validators/FlagSetsValidatorImpl.java b/android-client-main/src/main/java/io/split/android/client/validators/FlagSetsValidatorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/validators/FlagSetsValidatorImpl.java rename to android-client-main/src/main/java/io/split/android/client/validators/FlagSetsValidatorImpl.java diff --git a/src/main/java/io/split/android/client/validators/KeyValidator.java b/android-client-main/src/main/java/io/split/android/client/validators/KeyValidator.java similarity index 100% rename from src/main/java/io/split/android/client/validators/KeyValidator.java rename to android-client-main/src/main/java/io/split/android/client/validators/KeyValidator.java diff --git a/src/main/java/io/split/android/client/validators/KeyValidatorImpl.java b/android-client-main/src/main/java/io/split/android/client/validators/KeyValidatorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/validators/KeyValidatorImpl.java rename to android-client-main/src/main/java/io/split/android/client/validators/KeyValidatorImpl.java diff --git a/src/main/java/io/split/android/client/validators/PrefixValidator.java b/android-client-main/src/main/java/io/split/android/client/validators/PrefixValidator.java similarity index 100% rename from src/main/java/io/split/android/client/validators/PrefixValidator.java rename to android-client-main/src/main/java/io/split/android/client/validators/PrefixValidator.java diff --git a/src/main/java/io/split/android/client/validators/PrefixValidatorImpl.java b/android-client-main/src/main/java/io/split/android/client/validators/PrefixValidatorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/validators/PrefixValidatorImpl.java rename to android-client-main/src/main/java/io/split/android/client/validators/PrefixValidatorImpl.java diff --git a/src/main/java/io/split/android/client/validators/PropertyValidator.java b/android-client-main/src/main/java/io/split/android/client/validators/PropertyValidator.java similarity index 100% rename from src/main/java/io/split/android/client/validators/PropertyValidator.java rename to android-client-main/src/main/java/io/split/android/client/validators/PropertyValidator.java diff --git a/src/main/java/io/split/android/client/validators/SplitFilterValidator.java b/android-client-main/src/main/java/io/split/android/client/validators/SplitFilterValidator.java similarity index 100% rename from src/main/java/io/split/android/client/validators/SplitFilterValidator.java rename to android-client-main/src/main/java/io/split/android/client/validators/SplitFilterValidator.java diff --git a/src/main/java/io/split/android/client/validators/SplitValidator.java b/android-client-main/src/main/java/io/split/android/client/validators/SplitValidator.java similarity index 100% rename from src/main/java/io/split/android/client/validators/SplitValidator.java rename to android-client-main/src/main/java/io/split/android/client/validators/SplitValidator.java diff --git a/src/main/java/io/split/android/client/validators/SplitValidatorImpl.java b/android-client-main/src/main/java/io/split/android/client/validators/SplitValidatorImpl.java similarity index 100% rename from src/main/java/io/split/android/client/validators/SplitValidatorImpl.java rename to android-client-main/src/main/java/io/split/android/client/validators/SplitValidatorImpl.java diff --git a/src/main/java/io/split/android/client/validators/TreatmentManager.java b/android-client-main/src/main/java/io/split/android/client/validators/TreatmentManager.java similarity index 100% rename from src/main/java/io/split/android/client/validators/TreatmentManager.java rename to android-client-main/src/main/java/io/split/android/client/validators/TreatmentManager.java diff --git a/src/main/java/io/split/android/client/validators/TreatmentManagerFactory.java b/android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerFactory.java similarity index 100% rename from src/main/java/io/split/android/client/validators/TreatmentManagerFactory.java rename to android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerFactory.java diff --git a/src/main/java/io/split/android/client/validators/TreatmentManagerFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerFactoryImpl.java similarity index 100% rename from src/main/java/io/split/android/client/validators/TreatmentManagerFactoryImpl.java rename to android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerFactoryImpl.java diff --git a/src/main/java/io/split/android/client/validators/TreatmentManagerHelper.java b/android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerHelper.java similarity index 100% rename from src/main/java/io/split/android/client/validators/TreatmentManagerHelper.java rename to android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerHelper.java diff --git a/src/main/java/io/split/android/client/validators/TreatmentManagerImpl.java b/android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/validators/TreatmentManagerImpl.java rename to android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerImpl.java diff --git a/src/main/java/io/split/android/client/validators/ValidationConfig.java b/android-client-main/src/main/java/io/split/android/client/validators/ValidationConfig.java similarity index 100% rename from src/main/java/io/split/android/client/validators/ValidationConfig.java rename to android-client-main/src/main/java/io/split/android/client/validators/ValidationConfig.java diff --git a/src/main/java/io/split/android/client/validators/ValidationErrorInfo.java b/android-client-main/src/main/java/io/split/android/client/validators/ValidationErrorInfo.java similarity index 100% rename from src/main/java/io/split/android/client/validators/ValidationErrorInfo.java rename to android-client-main/src/main/java/io/split/android/client/validators/ValidationErrorInfo.java diff --git a/src/main/java/io/split/android/client/validators/ValidationMessageLogger.java b/android-client-main/src/main/java/io/split/android/client/validators/ValidationMessageLogger.java similarity index 100% rename from src/main/java/io/split/android/client/validators/ValidationMessageLogger.java rename to android-client-main/src/main/java/io/split/android/client/validators/ValidationMessageLogger.java diff --git a/src/main/java/io/split/android/client/validators/ValidationMessageLoggerImpl.java b/android-client-main/src/main/java/io/split/android/client/validators/ValidationMessageLoggerImpl.java similarity index 100% rename from src/main/java/io/split/android/client/validators/ValidationMessageLoggerImpl.java rename to android-client-main/src/main/java/io/split/android/client/validators/ValidationMessageLoggerImpl.java diff --git a/src/main/java/io/split/android/engine/experiments/DefaultConditionsProvider.java b/android-client-main/src/main/java/io/split/android/engine/experiments/DefaultConditionsProvider.java similarity index 100% rename from src/main/java/io/split/android/engine/experiments/DefaultConditionsProvider.java rename to android-client-main/src/main/java/io/split/android/engine/experiments/DefaultConditionsProvider.java diff --git a/src/main/java/io/split/android/engine/experiments/FetcherPolicy.java b/android-client-main/src/main/java/io/split/android/engine/experiments/FetcherPolicy.java similarity index 100% rename from src/main/java/io/split/android/engine/experiments/FetcherPolicy.java rename to android-client-main/src/main/java/io/split/android/engine/experiments/FetcherPolicy.java diff --git a/src/main/java/io/split/android/engine/experiments/ParsedCondition.java b/android-client-main/src/main/java/io/split/android/engine/experiments/ParsedCondition.java similarity index 100% rename from src/main/java/io/split/android/engine/experiments/ParsedCondition.java rename to android-client-main/src/main/java/io/split/android/engine/experiments/ParsedCondition.java diff --git a/src/main/java/io/split/android/engine/experiments/ParsedRuleBasedSegment.java b/android-client-main/src/main/java/io/split/android/engine/experiments/ParsedRuleBasedSegment.java similarity index 100% rename from src/main/java/io/split/android/engine/experiments/ParsedRuleBasedSegment.java rename to android-client-main/src/main/java/io/split/android/engine/experiments/ParsedRuleBasedSegment.java diff --git a/src/main/java/io/split/android/engine/experiments/ParsedSplit.java b/android-client-main/src/main/java/io/split/android/engine/experiments/ParsedSplit.java similarity index 100% rename from src/main/java/io/split/android/engine/experiments/ParsedSplit.java rename to android-client-main/src/main/java/io/split/android/engine/experiments/ParsedSplit.java diff --git a/src/main/java/io/split/android/engine/experiments/Parser.java b/android-client-main/src/main/java/io/split/android/engine/experiments/Parser.java similarity index 100% rename from src/main/java/io/split/android/engine/experiments/Parser.java rename to android-client-main/src/main/java/io/split/android/engine/experiments/Parser.java diff --git a/src/main/java/io/split/android/engine/experiments/ParserCommons.java b/android-client-main/src/main/java/io/split/android/engine/experiments/ParserCommons.java similarity index 100% rename from src/main/java/io/split/android/engine/experiments/ParserCommons.java rename to android-client-main/src/main/java/io/split/android/engine/experiments/ParserCommons.java diff --git a/src/main/java/io/split/android/engine/experiments/RuleBasedSegmentParser.java b/android-client-main/src/main/java/io/split/android/engine/experiments/RuleBasedSegmentParser.java similarity index 100% rename from src/main/java/io/split/android/engine/experiments/RuleBasedSegmentParser.java rename to android-client-main/src/main/java/io/split/android/engine/experiments/RuleBasedSegmentParser.java diff --git a/src/main/java/io/split/android/engine/experiments/SplitFetcher.java b/android-client-main/src/main/java/io/split/android/engine/experiments/SplitFetcher.java similarity index 100% rename from src/main/java/io/split/android/engine/experiments/SplitFetcher.java rename to android-client-main/src/main/java/io/split/android/engine/experiments/SplitFetcher.java diff --git a/src/main/java/io/split/android/engine/experiments/SplitParser.java b/android-client-main/src/main/java/io/split/android/engine/experiments/SplitParser.java similarity index 100% rename from src/main/java/io/split/android/engine/experiments/SplitParser.java rename to android-client-main/src/main/java/io/split/android/engine/experiments/SplitParser.java diff --git a/src/main/java/io/split/android/engine/experiments/UnsupportedMatcherException.java b/android-client-main/src/main/java/io/split/android/engine/experiments/UnsupportedMatcherException.java similarity index 100% rename from src/main/java/io/split/android/engine/experiments/UnsupportedMatcherException.java rename to android-client-main/src/main/java/io/split/android/engine/experiments/UnsupportedMatcherException.java diff --git a/src/main/java/io/split/android/engine/matchers/AllKeysMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/AllKeysMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/AllKeysMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/AllKeysMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/AttributeMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/AttributeMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/AttributeMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/AttributeMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/BetweenMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/BetweenMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/BetweenMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/BetweenMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/BooleanMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/BooleanMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/BooleanMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/BooleanMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/CombiningMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/CombiningMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/CombiningMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/CombiningMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/DependencyMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/DependencyMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/DependencyMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/DependencyMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/EqualToMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/EqualToMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/EqualToMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/EqualToMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/LessThanOrEqualToMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/LessThanOrEqualToMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/LessThanOrEqualToMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/LessThanOrEqualToMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/Matcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/Matcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/Matcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/Matcher.java diff --git a/src/main/java/io/split/android/engine/matchers/MySegmentsMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/MySegmentsMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/MySegmentsMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/MySegmentsMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/PrerequisitesMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/PrerequisitesMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/PrerequisitesMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/PrerequisitesMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/Transformers.java b/android-client-main/src/main/java/io/split/android/engine/matchers/Transformers.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/Transformers.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/Transformers.java diff --git a/src/main/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/collections/EqualToSetMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/collections/EqualToSetMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/collections/EqualToSetMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/collections/EqualToSetMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/collections/PartOfSetMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/collections/PartOfSetMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/collections/PartOfSetMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/collections/PartOfSetMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/semver/BetweenSemverMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/semver/BetweenSemverMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/semver/BetweenSemverMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/semver/BetweenSemverMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/semver/EqualToSemverMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/semver/EqualToSemverMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/semver/EqualToSemverMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/semver/EqualToSemverMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/semver/InListSemverMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/semver/InListSemverMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/semver/InListSemverMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/semver/InListSemverMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/semver/Semver.java b/android-client-main/src/main/java/io/split/android/engine/matchers/semver/Semver.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/semver/Semver.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/semver/Semver.java diff --git a/src/main/java/io/split/android/engine/matchers/semver/SemverParseException.java b/android-client-main/src/main/java/io/split/android/engine/matchers/semver/SemverParseException.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/semver/SemverParseException.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/semver/SemverParseException.java diff --git a/src/main/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/strings/RegularExpressionMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/strings/RegularExpressionMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/strings/RegularExpressionMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/strings/RegularExpressionMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcher.java diff --git a/src/main/java/io/split/android/engine/matchers/strings/WhitelistMatcher.java b/android-client-main/src/main/java/io/split/android/engine/matchers/strings/WhitelistMatcher.java similarity index 100% rename from src/main/java/io/split/android/engine/matchers/strings/WhitelistMatcher.java rename to android-client-main/src/main/java/io/split/android/engine/matchers/strings/WhitelistMatcher.java diff --git a/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutor.java b/android-client-main/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutor.java similarity index 100% rename from src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutor.java rename to android-client-main/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutor.java diff --git a/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImpl.java b/android-client-main/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImpl.java similarity index 100% rename from src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImpl.java rename to android-client-main/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImpl.java diff --git a/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutor.java b/android-client-main/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutor.java similarity index 100% rename from src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutor.java rename to android-client-main/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutor.java diff --git a/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutorImpl.java b/android-client-main/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutorImpl.java similarity index 100% rename from src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutorImpl.java rename to android-client-main/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutorImpl.java diff --git a/src/main/java/io/split/android/engine/splitter/Splitter.java b/android-client-main/src/main/java/io/split/android/engine/splitter/Splitter.java similarity index 100% rename from src/main/java/io/split/android/engine/splitter/Splitter.java rename to android-client-main/src/main/java/io/split/android/engine/splitter/Splitter.java diff --git a/src/main/java/io/split/android/grammar/Treatments.java b/android-client-main/src/main/java/io/split/android/grammar/Treatments.java similarity index 100% rename from src/main/java/io/split/android/grammar/Treatments.java rename to android-client-main/src/main/java/io/split/android/grammar/Treatments.java diff --git a/src/sharedTest/java/helper/CompressionHelper.java b/android-client-main/src/sharedTest/java/helper/CompressionHelper.java similarity index 100% rename from src/sharedTest/java/helper/CompressionHelper.java rename to android-client-main/src/sharedTest/java/helper/CompressionHelper.java diff --git a/src/sharedTest/java/helper/TestingData.java b/android-client-main/src/sharedTest/java/helper/TestingData.java similarity index 100% rename from src/sharedTest/java/helper/TestingData.java rename to android-client-main/src/sharedTest/java/helper/TestingData.java diff --git a/src/sharedTest/java/helper/TestingHelper.java b/android-client-main/src/sharedTest/java/helper/TestingHelper.java similarity index 100% rename from src/sharedTest/java/helper/TestingHelper.java rename to android-client-main/src/sharedTest/java/helper/TestingHelper.java diff --git a/src/sharedTest/java/io/split/sharedtest/fake/HttpStreamResponseMock.java b/android-client-main/src/sharedTest/java/io/split/sharedtest/fake/HttpStreamResponseMock.java similarity index 100% rename from src/sharedTest/java/io/split/sharedtest/fake/HttpStreamResponseMock.java rename to android-client-main/src/sharedTest/java/io/split/sharedtest/fake/HttpStreamResponseMock.java diff --git a/src/test/java/android/util/Base64.java b/android-client-main/src/test/test/java/android/util/Base64.java similarity index 100% rename from src/test/java/android/util/Base64.java rename to android-client-main/src/test/test/java/android/util/Base64.java diff --git a/src/test/java/io/split/android/BCryptTest.java b/android-client-main/src/test/test/java/io/split/android/BCryptTest.java similarity index 100% rename from src/test/java/io/split/android/BCryptTest.java rename to android-client-main/src/test/test/java/io/split/android/BCryptTest.java diff --git a/src/test/java/io/split/android/FolderForApiKeyTest.java b/android-client-main/src/test/test/java/io/split/android/FolderForApiKeyTest.java similarity index 100% rename from src/test/java/io/split/android/FolderForApiKeyTest.java rename to android-client-main/src/test/test/java/io/split/android/FolderForApiKeyTest.java diff --git a/src/test/java/io/split/android/SplitConfigurationsParsingTests.java b/android-client-main/src/test/test/java/io/split/android/SplitConfigurationsParsingTests.java similarity index 100% rename from src/test/java/io/split/android/SplitConfigurationsParsingTests.java rename to android-client-main/src/test/test/java/io/split/android/SplitConfigurationsParsingTests.java diff --git a/src/test/java/io/split/android/client/DestroyerTest.java b/android-client-main/src/test/test/java/io/split/android/client/DestroyerTest.java similarity index 100% rename from src/test/java/io/split/android/client/DestroyerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/DestroyerTest.java diff --git a/src/test/java/io/split/android/client/EvaluationOptionsTest.java b/android-client-main/src/test/test/java/io/split/android/client/EvaluationOptionsTest.java similarity index 100% rename from src/test/java/io/split/android/client/EvaluationOptionsTest.java rename to android-client-main/src/test/test/java/io/split/android/client/EvaluationOptionsTest.java diff --git a/src/test/java/io/split/android/client/FactoryMonitorTest.java b/android-client-main/src/test/test/java/io/split/android/client/FactoryMonitorTest.java similarity index 100% rename from src/test/java/io/split/android/client/FactoryMonitorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/FactoryMonitorTest.java diff --git a/src/test/java/io/split/android/client/FileStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/FileStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/FileStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/FileStorageTest.java diff --git a/src/test/java/io/split/android/client/FilterBuilderTest.java b/android-client-main/src/test/test/java/io/split/android/client/FilterBuilderTest.java similarity index 100% rename from src/test/java/io/split/android/client/FilterBuilderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/FilterBuilderTest.java diff --git a/src/test/java/io/split/android/client/FilterGrouperTest.java b/android-client-main/src/test/test/java/io/split/android/client/FilterGrouperTest.java similarity index 100% rename from src/test/java/io/split/android/client/FilterGrouperTest.java rename to android-client-main/src/test/test/java/io/split/android/client/FilterGrouperTest.java diff --git a/src/test/java/io/split/android/client/FlagSetsFilterImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/FlagSetsFilterImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/FlagSetsFilterImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/FlagSetsFilterImplTest.java diff --git a/src/test/java/io/split/android/client/ImpressionsModeTest.java b/android-client-main/src/test/test/java/io/split/android/client/ImpressionsModeTest.java similarity index 100% rename from src/test/java/io/split/android/client/ImpressionsModeTest.java rename to android-client-main/src/test/test/java/io/split/android/client/ImpressionsModeTest.java diff --git a/src/test/java/io/split/android/client/MySegmentsUriBuildersTest.java b/android-client-main/src/test/test/java/io/split/android/client/MySegmentsUriBuildersTest.java similarity index 100% rename from src/test/java/io/split/android/client/MySegmentsUriBuildersTest.java rename to android-client-main/src/test/test/java/io/split/android/client/MySegmentsUriBuildersTest.java diff --git a/src/test/java/io/split/android/client/RolloutCacheConfigurationTest.java b/android-client-main/src/test/test/java/io/split/android/client/RolloutCacheConfigurationTest.java similarity index 100% rename from src/test/java/io/split/android/client/RolloutCacheConfigurationTest.java rename to android-client-main/src/test/test/java/io/split/android/client/RolloutCacheConfigurationTest.java diff --git a/src/test/java/io/split/android/client/SplitClientConfigTest.java b/android-client-main/src/test/test/java/io/split/android/client/SplitClientConfigTest.java similarity index 100% rename from src/test/java/io/split/android/client/SplitClientConfigTest.java rename to android-client-main/src/test/test/java/io/split/android/client/SplitClientConfigTest.java diff --git a/src/test/java/io/split/android/client/SplitClientImplAttributesTest.java b/android-client-main/src/test/test/java/io/split/android/client/SplitClientImplAttributesTest.java similarity index 100% rename from src/test/java/io/split/android/client/SplitClientImplAttributesTest.java rename to android-client-main/src/test/test/java/io/split/android/client/SplitClientImplAttributesTest.java diff --git a/src/test/java/io/split/android/client/SplitClientImplBaseTest.java b/android-client-main/src/test/test/java/io/split/android/client/SplitClientImplBaseTest.java similarity index 100% rename from src/test/java/io/split/android/client/SplitClientImplBaseTest.java rename to android-client-main/src/test/test/java/io/split/android/client/SplitClientImplBaseTest.java diff --git a/src/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java b/android-client-main/src/test/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java similarity index 100% rename from src/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java rename to android-client-main/src/test/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java diff --git a/src/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java b/android-client-main/src/test/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java similarity index 100% rename from src/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java rename to android-client-main/src/test/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java diff --git a/src/test/java/io/split/android/client/SplitClientImplLegacyTest.java b/android-client-main/src/test/test/java/io/split/android/client/SplitClientImplLegacyTest.java similarity index 100% rename from src/test/java/io/split/android/client/SplitClientImplLegacyTest.java rename to android-client-main/src/test/test/java/io/split/android/client/SplitClientImplLegacyTest.java diff --git a/src/test/java/io/split/android/client/SplitFactoryHelperTest.kt b/android-client-main/src/test/test/java/io/split/android/client/SplitFactoryHelperTest.kt similarity index 100% rename from src/test/java/io/split/android/client/SplitFactoryHelperTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/SplitFactoryHelperTest.kt diff --git a/src/test/java/io/split/android/client/SplitManagerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/SplitManagerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/SplitManagerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/SplitManagerImplTest.java diff --git a/src/test/java/io/split/android/client/SyncConfigTest.java b/android-client-main/src/test/test/java/io/split/android/client/SyncConfigTest.java similarity index 100% rename from src/test/java/io/split/android/client/SyncConfigTest.java rename to android-client-main/src/test/test/java/io/split/android/client/SyncConfigTest.java diff --git a/src/test/java/io/split/android/client/TreatmentLabelsTest.java b/android-client-main/src/test/test/java/io/split/android/client/TreatmentLabelsTest.java similarity index 100% rename from src/test/java/io/split/android/client/TreatmentLabelsTest.java rename to android-client-main/src/test/test/java/io/split/android/client/TreatmentLabelsTest.java diff --git a/src/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java b/android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java similarity index 100% rename from src/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java rename to android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java diff --git a/src/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java b/android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java similarity index 100% rename from src/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java rename to android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java diff --git a/src/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java b/android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java similarity index 100% rename from src/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java rename to android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java diff --git a/src/test/java/io/split/android/client/TreatmentManagerTest.java b/android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerTest.java similarity index 100% rename from src/test/java/io/split/android/client/TreatmentManagerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerTest.java diff --git a/src/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java b/android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java similarity index 100% rename from src/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java rename to android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java diff --git a/src/test/java/io/split/android/client/UserConsentManagerTest.java b/android-client-main/src/test/test/java/io/split/android/client/UserConsentManagerTest.java similarity index 100% rename from src/test/java/io/split/android/client/UserConsentManagerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/UserConsentManagerTest.java diff --git a/src/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java diff --git a/src/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java diff --git a/src/test/java/io/split/android/client/dtos/SplitDeserializationTest.java b/android-client-main/src/test/test/java/io/split/android/client/dtos/SplitDeserializationTest.java similarity index 100% rename from src/test/java/io/split/android/client/dtos/SplitDeserializationTest.java rename to android-client-main/src/test/test/java/io/split/android/client/dtos/SplitDeserializationTest.java diff --git a/src/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java b/android-client-main/src/test/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java similarity index 100% rename from src/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java diff --git a/src/test/java/io/split/android/client/events/EventsManagerTest.java b/android-client-main/src/test/test/java/io/split/android/client/events/EventsManagerTest.java similarity index 100% rename from src/test/java/io/split/android/client/events/EventsManagerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/events/EventsManagerTest.java diff --git a/src/test/java/io/split/android/client/events/PropertyValidatorTest.java b/android-client-main/src/test/test/java/io/split/android/client/events/PropertyValidatorTest.java similarity index 100% rename from src/test/java/io/split/android/client/events/PropertyValidatorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/events/PropertyValidatorTest.java diff --git a/src/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java diff --git a/src/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java b/android-client-main/src/test/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java similarity index 100% rename from src/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java rename to android-client-main/src/test/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java diff --git a/src/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java diff --git a/src/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java b/android-client-main/src/test/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java similarity index 100% rename from src/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java rename to android-client-main/src/test/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java diff --git a/src/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java b/android-client-main/src/test/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java similarity index 100% rename from src/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java rename to android-client-main/src/test/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java diff --git a/src/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java b/android-client-main/src/test/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java similarity index 100% rename from src/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java diff --git a/src/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java b/android-client-main/src/test/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java similarity index 100% rename from src/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java rename to android-client-main/src/test/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java diff --git a/src/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java diff --git a/src/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java diff --git a/src/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java b/android-client-main/src/test/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java similarity index 100% rename from src/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java diff --git a/src/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java b/android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java similarity index 100% rename from src/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java rename to android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java diff --git a/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java b/android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java similarity index 100% rename from src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java rename to android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java diff --git a/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java b/android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java similarity index 100% rename from src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java rename to android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java diff --git a/src/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java b/android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java similarity index 100% rename from src/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java rename to android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java diff --git a/src/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java diff --git a/src/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java b/android-client-main/src/test/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java similarity index 100% rename from src/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java diff --git a/src/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java diff --git a/src/test/java/io/split/android/client/network/CertificateCheckerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/CertificateCheckerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/CertificateCheckerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/CertificateCheckerImplTest.java diff --git a/src/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java diff --git a/src/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java diff --git a/src/test/java/io/split/android/client/network/ChainCleanerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/ChainCleanerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/ChainCleanerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/ChainCleanerImplTest.java diff --git a/src/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java diff --git a/src/test/java/io/split/android/client/network/HttpClientTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/HttpClientTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/HttpClientTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/HttpClientTest.java diff --git a/src/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java diff --git a/src/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java diff --git a/src/test/java/io/split/android/client/network/HttpRequestHelperTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/HttpRequestHelperTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/HttpRequestHelperTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/HttpRequestHelperTest.java diff --git a/src/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java diff --git a/src/test/java/io/split/android/client/network/HttpStreamResponseTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/HttpStreamResponseTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/HttpStreamResponseTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/HttpStreamResponseTest.java diff --git a/src/test/java/io/split/android/client/network/PinEncoderImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/PinEncoderImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/PinEncoderImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/PinEncoderImplTest.java diff --git a/src/test/java/io/split/android/client/network/ProxyConfigurationTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/ProxyConfigurationTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/ProxyConfigurationTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/ProxyConfigurationTest.java diff --git a/src/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java diff --git a/src/test/java/io/split/android/client/network/RawHttpResponseParserTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/RawHttpResponseParserTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/RawHttpResponseParserTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/RawHttpResponseParserTest.java diff --git a/src/test/java/io/split/android/client/network/SdkTargetPathTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/SdkTargetPathTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/SdkTargetPathTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/SdkTargetPathTest.java diff --git a/src/test/java/io/split/android/client/network/SplitAuthenticatorTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/SplitAuthenticatorTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/SplitAuthenticatorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/SplitAuthenticatorTest.java diff --git a/src/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java diff --git a/src/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java diff --git a/src/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java diff --git a/src/test/java/io/split/android/client/network/TrustManagerProviderTest.java b/android-client-main/src/test/test/java/io/split/android/client/network/TrustManagerProviderTest.java similarity index 100% rename from src/test/java/io/split/android/client/network/TrustManagerProviderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/network/TrustManagerProviderTest.java diff --git a/src/test/java/io/split/android/client/service/EventsRecorderTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/EventsRecorderTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/EventsRecorderTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/EventsRecorderTaskTest.java diff --git a/src/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java diff --git a/src/test/java/io/split/android/client/service/HttpFetcherTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/HttpFetcherTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/HttpFetcherTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/HttpFetcherTest.java diff --git a/src/test/java/io/split/android/client/service/HttpRecorderTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/HttpRecorderTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/HttpRecorderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/HttpRecorderTest.java diff --git a/src/test/java/io/split/android/client/service/ImpressionHasherTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/ImpressionHasherTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/ImpressionHasherTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/ImpressionHasherTest.java diff --git a/src/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java diff --git a/src/test/java/io/split/android/client/service/ImpressionsCounterTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsCounterTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/ImpressionsCounterTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsCounterTest.java diff --git a/src/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java diff --git a/src/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java diff --git a/src/test/java/io/split/android/client/service/LoadSplitsTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/LoadSplitsTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/LoadSplitsTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/LoadSplitsTaskTest.java diff --git a/src/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java diff --git a/src/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java diff --git a/src/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java diff --git a/src/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java diff --git a/src/test/java/io/split/android/client/service/SplitKillTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/SplitKillTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/SplitKillTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/SplitKillTaskTest.java diff --git a/src/test/java/io/split/android/client/service/SplitSyncTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/SplitSyncTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/SplitSyncTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/SplitSyncTaskTest.java diff --git a/src/test/java/io/split/android/client/service/SplitTaskExecutorTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/SplitTaskExecutorTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/SplitTaskExecutorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/SplitTaskExecutorTest.java diff --git a/src/test/java/io/split/android/client/service/SplitUpdateTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/SplitUpdateTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/SplitUpdateTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/SplitUpdateTaskTest.java diff --git a/src/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java diff --git a/src/test/java/io/split/android/client/service/SplitsSyncHelperTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/SplitsSyncHelperTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/SplitsSyncHelperTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/SplitsSyncHelperTest.java diff --git a/src/test/java/io/split/android/client/service/SynchronizerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/SynchronizerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/SynchronizerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/SynchronizerTest.java diff --git a/src/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java diff --git a/src/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java diff --git a/src/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java diff --git a/src/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java diff --git a/src/test/java/io/split/android/client/service/events/EventsTrackerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/events/EventsTrackerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/events/EventsTrackerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/events/EventsTrackerTest.java diff --git a/src/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java diff --git a/src/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java diff --git a/src/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java diff --git a/src/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java diff --git a/src/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java diff --git a/src/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt diff --git a/src/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java diff --git a/src/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java diff --git a/src/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt diff --git a/src/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java diff --git a/src/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java diff --git a/src/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java diff --git a/src/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt diff --git a/src/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt diff --git a/src/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt diff --git a/src/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt diff --git a/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt diff --git a/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt diff --git a/src/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java diff --git a/src/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java diff --git a/src/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java diff --git a/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java diff --git a/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java diff --git a/src/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java diff --git a/src/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java diff --git a/src/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java diff --git a/src/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java diff --git a/src/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java diff --git a/src/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java diff --git a/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java diff --git a/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java diff --git a/src/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java diff --git a/src/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java diff --git a/src/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java diff --git a/src/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java diff --git a/src/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java diff --git a/src/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/SseClientTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SseClientTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/SseClientTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SseClientTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java diff --git a/src/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java diff --git a/src/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java diff --git a/src/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java diff --git a/src/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt b/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt similarity index 100% rename from src/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt diff --git a/src/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java diff --git a/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java diff --git a/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java diff --git a/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java diff --git a/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java diff --git a/src/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java diff --git a/src/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java diff --git a/src/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java diff --git a/src/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java diff --git a/src/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java diff --git a/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java diff --git a/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java diff --git a/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java diff --git a/src/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java b/android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java similarity index 100% rename from src/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java diff --git a/src/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java diff --git a/src/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java diff --git a/src/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java diff --git a/src/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java diff --git a/src/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt b/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt similarity index 100% rename from src/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt diff --git a/src/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt b/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt similarity index 100% rename from src/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt diff --git a/src/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt b/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt similarity index 100% rename from src/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt diff --git a/src/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt b/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt similarity index 100% rename from src/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt diff --git a/src/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt b/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt similarity index 100% rename from src/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt diff --git a/src/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt b/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt similarity index 100% rename from src/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt diff --git a/src/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt b/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt similarity index 100% rename from src/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt rename to android-client-main/src/test/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt diff --git a/src/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java diff --git a/src/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java diff --git a/src/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java diff --git a/src/test/java/io/split/android/client/storage/events/EventsStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/events/EventsStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/events/EventsStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/events/EventsStorageTest.java diff --git a/src/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java diff --git a/src/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java diff --git a/src/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java diff --git a/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java diff --git a/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java diff --git a/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java diff --git a/src/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java diff --git a/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java diff --git a/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java diff --git a/src/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java diff --git a/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java diff --git a/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java diff --git a/src/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java diff --git a/src/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java diff --git a/src/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java diff --git a/src/test/java/io/split/android/client/storage/rbs/UpdaterTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/UpdaterTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/rbs/UpdaterTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/rbs/UpdaterTest.java diff --git a/src/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java diff --git a/src/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java diff --git a/src/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java diff --git a/src/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java b/android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java similarity index 100% rename from src/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java diff --git a/src/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java diff --git a/src/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java b/android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java similarity index 100% rename from src/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java diff --git a/src/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java diff --git a/src/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java b/android-client-main/src/test/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java similarity index 100% rename from src/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java rename to android-client-main/src/test/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java diff --git a/src/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java diff --git a/src/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java diff --git a/src/test/java/io/split/android/client/utils/HttpProxySerializerTest.java b/android-client-main/src/test/test/java/io/split/android/client/utils/HttpProxySerializerTest.java similarity index 100% rename from src/test/java/io/split/android/client/utils/HttpProxySerializerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/utils/HttpProxySerializerTest.java diff --git a/src/test/java/io/split/android/client/utils/JsonTest.java b/android-client-main/src/test/test/java/io/split/android/client/utils/JsonTest.java similarity index 100% rename from src/test/java/io/split/android/client/utils/JsonTest.java rename to android-client-main/src/test/test/java/io/split/android/client/utils/JsonTest.java diff --git a/src/test/java/io/split/android/client/utils/PartitionTest.java b/android-client-main/src/test/test/java/io/split/android/client/utils/PartitionTest.java similarity index 100% rename from src/test/java/io/split/android/client/utils/PartitionTest.java rename to android-client-main/src/test/test/java/io/split/android/client/utils/PartitionTest.java diff --git a/src/test/java/io/split/android/client/utils/RepeatTest.java b/android-client-main/src/test/test/java/io/split/android/client/utils/RepeatTest.java similarity index 100% rename from src/test/java/io/split/android/client/utils/RepeatTest.java rename to android-client-main/src/test/test/java/io/split/android/client/utils/RepeatTest.java diff --git a/src/test/java/io/split/android/client/utils/SplitClientImplFactory.java b/android-client-main/src/test/test/java/io/split/android/client/utils/SplitClientImplFactory.java similarity index 100% rename from src/test/java/io/split/android/client/utils/SplitClientImplFactory.java rename to android-client-main/src/test/test/java/io/split/android/client/utils/SplitClientImplFactory.java diff --git a/src/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java b/android-client-main/src/test/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java similarity index 100% rename from src/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java rename to android-client-main/src/test/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java diff --git a/src/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java b/android-client-main/src/test/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java similarity index 100% rename from src/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java diff --git a/src/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java diff --git a/src/test/java/io/split/android/client/validators/EventTypeNameHelper.java b/android-client-main/src/test/test/java/io/split/android/client/validators/EventTypeNameHelper.java similarity index 100% rename from src/test/java/io/split/android/client/validators/EventTypeNameHelper.java rename to android-client-main/src/test/test/java/io/split/android/client/validators/EventTypeNameHelper.java diff --git a/src/test/java/io/split/android/client/validators/EventValidatorTest.java b/android-client-main/src/test/test/java/io/split/android/client/validators/EventValidatorTest.java similarity index 100% rename from src/test/java/io/split/android/client/validators/EventValidatorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/validators/EventValidatorTest.java diff --git a/src/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java diff --git a/src/test/java/io/split/android/client/validators/KeyValidatorTest.java b/android-client-main/src/test/test/java/io/split/android/client/validators/KeyValidatorTest.java similarity index 100% rename from src/test/java/io/split/android/client/validators/KeyValidatorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/validators/KeyValidatorTest.java diff --git a/src/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java diff --git a/src/test/java/io/split/android/client/validators/SplitValidatorTest.java b/android-client-main/src/test/test/java/io/split/android/client/validators/SplitValidatorTest.java similarity index 100% rename from src/test/java/io/split/android/client/validators/SplitValidatorTest.java rename to android-client-main/src/test/test/java/io/split/android/client/validators/SplitValidatorTest.java diff --git a/src/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java b/android-client-main/src/test/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java similarity index 100% rename from src/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java rename to android-client-main/src/test/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java diff --git a/src/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java b/android-client-main/src/test/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java similarity index 100% rename from src/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java rename to android-client-main/src/test/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java diff --git a/src/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java b/android-client-main/src/test/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java similarity index 100% rename from src/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java rename to android-client-main/src/test/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java diff --git a/src/test/java/io/split/android/engine/ConditionsTestUtil.java b/android-client-main/src/test/test/java/io/split/android/engine/ConditionsTestUtil.java similarity index 100% rename from src/test/java/io/split/android/engine/ConditionsTestUtil.java rename to android-client-main/src/test/test/java/io/split/android/engine/ConditionsTestUtil.java diff --git a/src/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java b/android-client-main/src/test/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java similarity index 100% rename from src/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java diff --git a/src/test/java/io/split/android/engine/experiments/EvaluatorTest.java b/android-client-main/src/test/test/java/io/split/android/engine/experiments/EvaluatorTest.java similarity index 100% rename from src/test/java/io/split/android/engine/experiments/EvaluatorTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/experiments/EvaluatorTest.java diff --git a/src/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java b/android-client-main/src/test/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java similarity index 100% rename from src/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java diff --git a/src/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java b/android-client-main/src/test/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java similarity index 100% rename from src/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java diff --git a/src/test/java/io/split/android/engine/experiments/SplitParserTest.java b/android-client-main/src/test/test/java/io/split/android/engine/experiments/SplitParserTest.java similarity index 100% rename from src/test/java/io/split/android/engine/experiments/SplitParserTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/experiments/SplitParserTest.java diff --git a/src/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java b/android-client-main/src/test/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java similarity index 100% rename from src/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java diff --git a/src/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/TransformersTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/TransformersTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/TransformersTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/TransformersTest.java diff --git a/src/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/semver/SemverTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/SemverTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/semver/SemverTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/SemverTest.java diff --git a/src/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java diff --git a/src/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java b/android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java similarity index 100% rename from src/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java diff --git a/src/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java b/android-client-main/src/test/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java similarity index 100% rename from src/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java diff --git a/src/test/java/io/split/android/engine/splitter/HashConsistencyTest.java b/android-client-main/src/test/test/java/io/split/android/engine/splitter/HashConsistencyTest.java similarity index 100% rename from src/test/java/io/split/android/engine/splitter/HashConsistencyTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/splitter/HashConsistencyTest.java diff --git a/src/test/java/io/split/android/engine/splitter/HashingTest.java b/android-client-main/src/test/test/java/io/split/android/engine/splitter/HashingTest.java similarity index 100% rename from src/test/java/io/split/android/engine/splitter/HashingTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/splitter/HashingTest.java diff --git a/src/test/java/io/split/android/engine/splitter/MyHash.java b/android-client-main/src/test/test/java/io/split/android/engine/splitter/MyHash.java similarity index 100% rename from src/test/java/io/split/android/engine/splitter/MyHash.java rename to android-client-main/src/test/test/java/io/split/android/engine/splitter/MyHash.java diff --git a/src/test/java/io/split/android/engine/splitter/SplitterTest.java b/android-client-main/src/test/test/java/io/split/android/engine/splitter/SplitterTest.java similarity index 100% rename from src/test/java/io/split/android/engine/splitter/SplitterTest.java rename to android-client-main/src/test/test/java/io/split/android/engine/splitter/SplitterTest.java diff --git a/src/test/java/io/split/android/fake/ExecutorServiceMock.java b/android-client-main/src/test/test/java/io/split/android/fake/ExecutorServiceMock.java similarity index 100% rename from src/test/java/io/split/android/fake/ExecutorServiceMock.java rename to android-client-main/src/test/test/java/io/split/android/fake/ExecutorServiceMock.java diff --git a/src/test/java/io/split/android/fake/ImpressionListenerMock.java b/android-client-main/src/test/test/java/io/split/android/fake/ImpressionListenerMock.java similarity index 100% rename from src/test/java/io/split/android/fake/ImpressionListenerMock.java rename to android-client-main/src/test/test/java/io/split/android/fake/ImpressionListenerMock.java diff --git a/src/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java b/android-client-main/src/test/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java similarity index 100% rename from src/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java rename to android-client-main/src/test/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java diff --git a/src/test/java/io/split/android/fake/SplitEventsManagerStub.java b/android-client-main/src/test/test/java/io/split/android/fake/SplitEventsManagerStub.java similarity index 100% rename from src/test/java/io/split/android/fake/SplitEventsManagerStub.java rename to android-client-main/src/test/test/java/io/split/android/fake/SplitEventsManagerStub.java diff --git a/src/test/java/io/split/android/fake/SplitTaskExecutorStub.java b/android-client-main/src/test/test/java/io/split/android/fake/SplitTaskExecutorStub.java similarity index 100% rename from src/test/java/io/split/android/fake/SplitTaskExecutorStub.java rename to android-client-main/src/test/test/java/io/split/android/fake/SplitTaskExecutorStub.java diff --git a/src/test/java/io/split/android/fake/SseClientMock.java b/android-client-main/src/test/test/java/io/split/android/fake/SseClientMock.java similarity index 100% rename from src/test/java/io/split/android/fake/SseClientMock.java rename to android-client-main/src/test/test/java/io/split/android/fake/SseClientMock.java diff --git a/src/test/java/io/split/android/helpers/FileHelper.java b/android-client-main/src/test/test/java/io/split/android/helpers/FileHelper.java similarity index 100% rename from src/test/java/io/split/android/helpers/FileHelper.java rename to android-client-main/src/test/test/java/io/split/android/helpers/FileHelper.java diff --git a/src/test/java/io/split/android/helpers/ResourcesFileStorage.java b/android-client-main/src/test/test/java/io/split/android/helpers/ResourcesFileStorage.java similarity index 100% rename from src/test/java/io/split/android/helpers/ResourcesFileStorage.java rename to android-client-main/src/test/test/java/io/split/android/helpers/ResourcesFileStorage.java diff --git a/src/test/java/io/split/android/helpers/SplitHelper.java b/android-client-main/src/test/test/java/io/split/android/helpers/SplitHelper.java similarity index 100% rename from src/test/java/io/split/android/helpers/SplitHelper.java rename to android-client-main/src/test/test/java/io/split/android/helpers/SplitHelper.java diff --git a/src/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java b/android-client-main/src/test/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java similarity index 100% rename from src/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java rename to android-client-main/src/test/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java diff --git a/src/test/java/io/split/android/http/URIBuilderTest.java b/android-client-main/src/test/test/java/io/split/android/http/URIBuilderTest.java similarity index 100% rename from src/test/java/io/split/android/http/URIBuilderTest.java rename to android-client-main/src/test/test/java/io/split/android/http/URIBuilderTest.java diff --git a/src/test/resources/README.txt b/android-client-main/src/test/test/resources/README.txt similarity index 100% rename from src/test/resources/README.txt rename to android-client-main/src/test/test/resources/README.txt diff --git a/src/test/resources/between_semver.csv b/android-client-main/src/test/test/resources/between_semver.csv similarity index 100% rename from src/test/resources/between_semver.csv rename to android-client-main/src/test/test/resources/between_semver.csv diff --git a/src/test/resources/equal_to_semver.csv b/android-client-main/src/test/test/resources/equal_to_semver.csv similarity index 100% rename from src/test/resources/equal_to_semver.csv rename to android-client-main/src/test/test/resources/equal_to_semver.csv diff --git a/src/test/resources/impressions_1.json b/android-client-main/src/test/test/resources/impressions_1.json similarity index 100% rename from src/test/resources/impressions_1.json rename to android-client-main/src/test/test/resources/impressions_1.json diff --git a/src/test/resources/invalid_semantic_versions.csv b/android-client-main/src/test/test/resources/invalid_semantic_versions.csv similarity index 100% rename from src/test/resources/invalid_semantic_versions.csv rename to android-client-main/src/test/test/resources/invalid_semantic_versions.csv diff --git a/src/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv b/android-client-main/src/test/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv similarity index 100% rename from src/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv rename to android-client-main/src/test/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv diff --git a/src/test/resources/legacy-hash-sample-data.csv b/android-client-main/src/test/test/resources/legacy-hash-sample-data.csv similarity index 100% rename from src/test/resources/legacy-hash-sample-data.csv rename to android-client-main/src/test/test/resources/legacy-hash-sample-data.csv diff --git a/src/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv b/android-client-main/src/test/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv similarity index 100% rename from src/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv rename to android-client-main/src/test/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv diff --git a/src/test/resources/murmur3-sample-data-non-alpha-numeric.csv b/android-client-main/src/test/test/resources/murmur3-sample-data-non-alpha-numeric.csv similarity index 100% rename from src/test/resources/murmur3-sample-data-non-alpha-numeric.csv rename to android-client-main/src/test/test/resources/murmur3-sample-data-non-alpha-numeric.csv diff --git a/src/test/resources/murmur3-sample-data-v2.csv b/android-client-main/src/test/test/resources/murmur3-sample-data-v2.csv similarity index 100% rename from src/test/resources/murmur3-sample-data-v2.csv rename to android-client-main/src/test/test/resources/murmur3-sample-data-v2.csv diff --git a/src/test/resources/murmur3-sample-data.csv b/android-client-main/src/test/test/resources/murmur3-sample-data.csv similarity index 100% rename from src/test/resources/murmur3-sample-data.csv rename to android-client-main/src/test/test/resources/murmur3-sample-data.csv diff --git a/src/test/resources/murmur3-sample-double-treatment-users.csv b/android-client-main/src/test/test/resources/murmur3-sample-double-treatment-users.csv similarity index 100% rename from src/test/resources/murmur3-sample-double-treatment-users.csv rename to android-client-main/src/test/test/resources/murmur3-sample-double-treatment-users.csv diff --git a/src/test/resources/murmur3_64_uuids.csv b/android-client-main/src/test/test/resources/murmur3_64_uuids.csv similarity index 100% rename from src/test/resources/murmur3_64_uuids.csv rename to android-client-main/src/test/test/resources/murmur3_64_uuids.csv diff --git a/src/test/resources/split_changes_1.json b/android-client-main/src/test/test/resources/split_changes_1.json similarity index 100% rename from src/test/resources/split_changes_1.json rename to android-client-main/src/test/test/resources/split_changes_1.json diff --git a/src/test/resources/split_changes_1_updated.json b/android-client-main/src/test/test/resources/split_changes_1_updated.json similarity index 100% rename from src/test/resources/split_changes_1_updated.json rename to android-client-main/src/test/test/resources/split_changes_1_updated.json diff --git a/src/test/resources/split_changes_legacy.json b/android-client-main/src/test/test/resources/split_changes_legacy.json similarity index 100% rename from src/test/resources/split_changes_legacy.json rename to android-client-main/src/test/test/resources/split_changes_legacy.json diff --git a/src/test/resources/split_changes_prerequisites.json b/android-client-main/src/test/test/resources/split_changes_prerequisites.json similarity index 100% rename from src/test/resources/split_changes_prerequisites.json rename to android-client-main/src/test/test/resources/split_changes_prerequisites.json diff --git a/src/test/resources/split_changes_small.json b/android-client-main/src/test/test/resources/split_changes_small.json similarity index 100% rename from src/test/resources/split_changes_small.json rename to android-client-main/src/test/test/resources/split_changes_small.json diff --git a/src/test/resources/split_changes_with_prerequisites.json b/android-client-main/src/test/test/resources/split_changes_with_prerequisites.json similarity index 100% rename from src/test/resources/split_changes_with_prerequisites.json rename to android-client-main/src/test/test/resources/split_changes_with_prerequisites.json diff --git a/src/test/resources/splits.yaml b/android-client-main/src/test/test/resources/splits.yaml similarity index 100% rename from src/test/resources/splits.yaml rename to android-client-main/src/test/test/resources/splits.yaml diff --git a/src/test/resources/splits_incorrect_value.yaml b/android-client-main/src/test/test/resources/splits_incorrect_value.yaml similarity index 100% rename from src/test/resources/splits_incorrect_value.yaml rename to android-client-main/src/test/test/resources/splits_incorrect_value.yaml diff --git a/src/test/resources/splits_missing_name.yaml b/android-client-main/src/test/test/resources/splits_missing_name.yaml similarity index 100% rename from src/test/resources/splits_missing_name.yaml rename to android-client-main/src/test/test/resources/splits_missing_name.yaml diff --git a/src/test/resources/splits_missing_treatment.yaml b/android-client-main/src/test/test/resources/splits_missing_treatment.yaml similarity index 100% rename from src/test/resources/splits_missing_treatment.yaml rename to android-client-main/src/test/test/resources/splits_missing_treatment.yaml diff --git a/src/test/resources/splits_no_yaml.yaml b/android-client-main/src/test/test/resources/splits_no_yaml.yaml similarity index 100% rename from src/test/resources/splits_no_yaml.yaml rename to android-client-main/src/test/test/resources/splits_no_yaml.yaml diff --git a/src/test/resources/tracks_1.json b/android-client-main/src/test/test/resources/tracks_1.json similarity index 100% rename from src/test/resources/tracks_1.json rename to android-client-main/src/test/test/resources/tracks_1.json diff --git a/src/test/resources/valid_semantic_versions.csv b/android-client-main/src/test/test/resources/valid_semantic_versions.csv similarity index 100% rename from src/test/resources/valid_semantic_versions.csv rename to android-client-main/src/test/test/resources/valid_semantic_versions.csv diff --git a/build.gradle b/build.gradle index e1129083b..6f021e69f 100644 --- a/build.gradle +++ b/build.gradle @@ -5,18 +5,17 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.7.3' + classpath 'com.android.tools.build:gradle:8.9.3' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0' classpath "com.vanniktech:gradle-maven-publish-plugin:0.33.0" } } -apply plugin: 'com.android.library' -apply plugin: 'signing' -apply plugin: 'kotlin-android' -apply plugin: 'com.vanniktech.maven.publish' -apply from: 'spec.gradle' -apply from: 'jacoco.gradle' +apply plugin: 'com.android.fused-library' +// Temporarily removed signing and vanniktech plugins to test fused library build +// apply plugin: 'signing' +// apply plugin: 'com.vanniktech.maven.publish' +// spec.gradle and jacoco.gradle removed - not compatible with fused library ext { splitVersion = '5.4.2-rc1' @@ -33,85 +32,9 @@ def coverageExclusions = [ 'android/**/*.*' ] -android { - compileSdk 33 - targetCompatibility = '1.8' - sourceCompatibility = '1.8' - - buildFeatures { - buildConfig true - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - defaultConfig { - - minSdk 19 - targetSdk 31 - multiDexEnabled true - - consumerProguardFiles 'split-proguard-rules.pro' - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - testInstrumentationRunnerArguments clearPackageData: 'true' - - javaCompileOptions { - annotationProcessorOptions { - arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] - } - } - - testOptions { - execution 'ANDROIDX_TEST_ORCHESTRATOR' - } - } - - configurations { - javadocDeps - } - - - testOptions { - unitTests.returnDefaultValues = true - - // Configure JaCoCo for all test tasks - unitTests.all { - jacoco { - includeNoLocationClasses = true - excludes = ['jdk.internal.*'] - } - } - } - - sourceSets { - String sharedTestDir = 'src/sharedTest/java' - test { - java.srcDirs += 'src/test/kotlin' - java.srcDirs += sharedTestDir - } - androidTest { - java.srcDirs += sharedTestDir - } - } - - buildTypes { - debug { - buildConfigField("String", "SPLIT_VERSION_NAME", "\"${splitVersion}\"") - buildConfigField("String", "FLAGS_SPEC", "\"${flagsSpec}\"") - } - release { - buildConfigField("String", "SPLIT_VERSION_NAME", "\"${splitVersion}\"") - buildConfigField("String", "FLAGS_SPEC", "\"${flagsSpec}\"") - } - } - namespace 'io.split.android.android_client' - lint { - abortOnError false - disable 'InvalidPackage' - } +androidFusedLibrary { + namespace = 'io.split.android.android_client' + minSdk = 19 } repositories { @@ -119,78 +42,12 @@ repositories { mavenCentral() } -tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { - kotlinOptions { - jvmTarget = "1.8" - } -} - dependencies { - - def roomVersion = '2.4.3' - def workVersion = '2.7.1' - def lifecycleVersion = '2.5.1' - def annotationVersion = '1.2.0' - def gsonVersion = '2.10.1' - def guavaVersion = '32.1.3-android' - def snakeYamlVersion = '2.2' - def playServicesVersion = '18.2.0' - def multidexVersion = '2.0.1' - - def jUnitVersion = '4.13.2' - def mockitoVersion = '4.8.0' - def hamcrestVersion = '1.3' - def apacheCommonsVersion = '3.12.0' - def kotlinVer = '1.5.31' - def mockWebServerVersion = '4.12.0' - - def testRulesVersion = '1.4.0' - def jUnitExtVersion = '1.1.3' - def testRunnerVersion = '1.5.1' - def orchestratorVersion = '1.4.2' - - implementation fileTree(include: ['*.jar'], dir: 'libs') - - implementation "androidx.room:room-runtime:$roomVersion" - annotationProcessor "androidx.room:room-compiler:$roomVersion" - - implementation "androidx.work:work-runtime:$workVersion" - - implementation "androidx.lifecycle:lifecycle-process:$lifecycleVersion" - - implementation "androidx.annotation:annotation:$annotationVersion" - - implementation "com.google.code.gson:gson:$gsonVersion" - - implementation "org.yaml:snakeyaml:$snakeYamlVersion" - implementation "com.google.android.gms:play-services-base:$playServicesVersion" - implementation "androidx.multidex:multidex:$multidexVersion" - - // Test - testImplementation "junit:junit:$jUnitVersion" - testImplementation "org.mockito:mockito-core:$mockitoVersion" - testImplementation "org.mockito:mockito-inline:$mockitoVersion" - testImplementation "org.hamcrest:hamcrest-all:$hamcrestVersion" - testImplementation "org.apache.commons:commons-lang3:$apacheCommonsVersion" - testImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" - testImplementation "com.squareup.okhttp3:okhttp-tls:$mockWebServerVersion" - testImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVer" - testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlinVer" - testImplementation "com.google.guava:guava:$guavaVersion" - - androidTestImplementation "androidx.test:rules:$testRulesVersion" - androidTestImplementation "androidx.test.ext:junit:$jUnitExtVersion" - androidTestImplementation "androidx.test:runner:$testRunnerVersion" - androidTestUtil "androidx.test:orchestrator:$orchestratorVersion" - - androidTestImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" - androidTestImplementation "com.squareup.okhttp3:okhttp-tls:$mockWebServerVersion" - androidTestImplementation "androidx.room:room-testing:$roomVersion" - androidTestImplementation "androidx.work:work-testing:$workVersion" - androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVer" - androidTestImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlinVer" - androidTestImplementation "com.google.guava:guava:$guavaVersion" - androidTestImplementation "org.mockito:mockito-android:$mockitoVersion" + // Include main module - contains all source code and will be bundled into the fused .aar + include project(':android-client-main') + + // Include logger module - will be bundled into the fused .aar + include project(':android-client-logger') } def splitPOM = { @@ -219,67 +76,14 @@ def splitPOM = { } } -mavenPublishing { - coordinates("io.split.client", "android-client", splitVersion) - pom(splitPOM) - - publishToMavenCentral(false) - signAllPublications() -} - -task sourcesJar(type: Jar) { - archiveClassifier.set("sources") - from android.sourceSets.main.java.srcDirs -} - -task javadoc(type: Javadoc) { - failOnError false - source = android.sourceSets.main.java.srcDirs - classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) - classpath += configurations.javadocDeps -} - -task javadocJar(type: Jar, dependsOn: javadoc) { -// archiveClassifier = 'javadoc' - archiveClassifier.set("javadoc") - from javadoc.destinationDir -} - -artifacts { - archives sourcesJar - archives javadocJar -} - -task printReleaseDependenciesToFile { - doLast { - def outputFile = new File("$projectDir/deps.txt") - def processBuilder = new ProcessBuilder("./gradlew", ":android-client:dependencies", "--configuration", "releaseRuntimeClasspath", "-q") - - outputFile.parentFile.mkdirs() - outputFile.text = '' // Clear the file before writing - processBuilder.redirectOutput(outputFile) - processBuilder.directory(project.rootDir) - - try { - Process process = processBuilder.start() - process.waitFor() - - def filteredLines = outputFile.readLines().findAll { !it.contains("BUILD SUCCESSFUL") } - - // Write the filtered content back to the file - outputFile.withPrintWriter { writer -> - filteredLines.each(writer.&println) - } - } catch (Exception e) { - e.printStackTrace() - } - } -} - -preBuild.dependsOn printReleaseDependenciesToFile - -tasks.withType(Test) { - maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 - forkEvery = 100 - maxHeapSize = "1024m" -} +// mavenPublishing temporarily disabled for POC - need to re-enable with fused library component +// mavenPublishing { +// coordinates("io.split.client", "android-client", splitVersion) +// pom(splitPOM) +// +// publishToMavenCentral(false) +// signAllPublications() +// } + +// Note: sourcesJar and javadocJar tasks removed - fused library has no source sets +// Tests are now in submodules diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3d8313c42..a1f201746 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 000000000..f5abf6e55 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,4 @@ +rootProject.name = 'android-client' + +include ':android-client-logger' +include ':android-client-main' From 492ee25737172258d59d231e2e8890edabb8d2bb Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Fri, 31 Oct 2025 11:27:52 -0300 Subject: [PATCH 03/26] WIP standalone / parent module --- android-client-main/build.gradle | 12 +++++++++--- .../io/split/android/client/SplitClientConfig.java | 2 +- .../io/split/android/client/SplitFactoryImpl.java | 2 +- .../java/io/split/android/client/TestingConfig.java | 2 +- .../android/client/service/http/HttpFetcherImpl.java | 2 +- .../service/synchronizer/WorkManagerWrapper.java | 2 +- .../service/workmanager/HttpClientProvider.java | 2 +- build.gradle | 11 +++++++++-- 8 files changed, 24 insertions(+), 11 deletions(-) diff --git a/android-client-main/build.gradle b/android-client-main/build.gradle index c50587f92..26038e096 100644 --- a/android-client-main/build.gradle +++ b/android-client-main/build.gradle @@ -42,10 +42,12 @@ android { buildTypes { debug { - buildConfigField("String", "SPLIT_VERSION_NAME", "\"5.4.2-rc1\"") + buildConfigField("String", "SPLIT_VERSION_NAME", "\"${project.parent.ext.splitVersion}\"") + buildConfigField("String", "FLAGS_SPEC", "\"1.3\"") } release { - buildConfigField("String", "SPLIT_VERSION_NAME", "\"5.4.2-rc1\"") + buildConfigField("String", "SPLIT_VERSION_NAME", "\"${project.parent.ext.splitVersion}\"") + buildConfigField("String", "FLAGS_SPEC", "\"1.3\"") } } @@ -56,7 +58,11 @@ android { dependencies { // Internal module dependencies - api project(':android-client-logger') + // Detect if we're in a standalone build or part of a parent project + def isStandalone = rootProject.name == 'android-client' + def loggerModulePath = isStandalone ? ':android-client-logger' : ':android-client:android-client-logger' + + api project(loggerModulePath) // External dependencies implementation "androidx.room:room-runtime:2.4.3" diff --git a/android-client-main/src/main/java/io/split/android/client/SplitClientConfig.java b/android-client-main/src/main/java/io/split/android/client/SplitClientConfig.java index 3660ff761..0d5b0ecc8 100644 --- a/android-client-main/src/main/java/io/split/android/client/SplitClientConfig.java +++ b/android-client-main/src/main/java/io/split/android/client/SplitClientConfig.java @@ -13,7 +13,7 @@ import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.X509TrustManager; -import io.split.android.android_client.BuildConfig; +import io.split.android.client.main.BuildConfig; import io.split.android.client.impressions.ImpressionListener; import io.split.android.client.network.CertificatePinningConfiguration; import io.split.android.client.network.DevelopmentSslConfig; diff --git a/android-client-main/src/main/java/io/split/android/client/SplitFactoryImpl.java b/android-client-main/src/main/java/io/split/android/client/SplitFactoryImpl.java index c623119bb..d531fde38 100644 --- a/android-client-main/src/main/java/io/split/android/client/SplitFactoryImpl.java +++ b/android-client-main/src/main/java/io/split/android/client/SplitFactoryImpl.java @@ -20,7 +20,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.ReentrantLock; -import io.split.android.android_client.BuildConfig; +import io.split.android.client.main.BuildConfig; import io.split.android.client.api.Key; import io.split.android.client.common.CompressionUtilProvider; import io.split.android.client.events.EventsManagerCoordinator; diff --git a/android-client-main/src/main/java/io/split/android/client/TestingConfig.java b/android-client-main/src/main/java/io/split/android/client/TestingConfig.java index 8bd45a607..359b5e9d0 100644 --- a/android-client-main/src/main/java/io/split/android/client/TestingConfig.java +++ b/android-client-main/src/main/java/io/split/android/client/TestingConfig.java @@ -1,6 +1,6 @@ package io.split.android.client; -import io.split.android.android_client.BuildConfig; +import io.split.android.client.main.BuildConfig; import io.split.android.client.service.ServiceConstants; public class TestingConfig { diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java b/android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java index d45e36f6f..b952ab5c8 100644 --- a/android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java +++ b/android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java @@ -8,7 +8,7 @@ import java.net.URI; import java.util.Map; -import io.split.android.android_client.BuildConfig; +import io.split.android.client.main.BuildConfig; import io.split.android.client.ServiceEndpoints; import io.split.android.client.network.HttpClient; import io.split.android.client.network.HttpException; diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java index ca3761bca..2b86786fd 100644 --- a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java +++ b/android-client-main/src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java @@ -22,7 +22,7 @@ import java.util.Set; import java.util.concurrent.TimeUnit; -import io.split.android.android_client.BuildConfig; +import io.split.android.client.main.BuildConfig; import io.split.android.client.SplitClientConfig; import io.split.android.client.SplitFilter; import io.split.android.client.network.CertificatePin; diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java b/android-client-main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java index ed4a2cdb2..2d7e7119d 100644 --- a/android-client-main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java +++ b/android-client-main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java @@ -6,7 +6,7 @@ import java.io.InputStream; import java.nio.charset.StandardCharsets; -import io.split.android.android_client.BuildConfig; +import io.split.android.client.main.BuildConfig; import io.split.android.client.dtos.HttpProxyDto; import io.split.android.client.network.BasicCredentialsProvider; import io.split.android.client.network.BearerCredentialsProvider; diff --git a/build.gradle b/build.gradle index 6f021e69f..9b701d4e7 100644 --- a/build.gradle +++ b/build.gradle @@ -43,11 +43,18 @@ repositories { } dependencies { + // Detect if we're in a standalone build or part of a parent project + // If standalone (our settings.gradle defines root as 'android-client'), use local paths + // If part of parent project, use prefixed paths + def isStandalone = rootProject.name == 'android-client' + def mainModulePath = isStandalone ? ':android-client-main' : ':android-client:android-client-main' + def loggerModulePath = isStandalone ? ':android-client-logger' : ':android-client:android-client-logger' + // Include main module - contains all source code and will be bundled into the fused .aar - include project(':android-client-main') + include project(mainModulePath) // Include logger module - will be bundled into the fused .aar - include project(':android-client-logger') + include project(loggerModulePath) } def splitPOM = { From 3778c1eee1d7482181bbb1035ce95611e5414dcc Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Fri, 31 Oct 2025 15:56:03 -0300 Subject: [PATCH 04/26] Fix --- android-client-main/build.gradle | 10 ++-- build.gradle | 82 +++++++++++++++++++++++++++----- 2 files changed, 74 insertions(+), 18 deletions(-) diff --git a/android-client-main/build.gradle b/android-client-main/build.gradle index 26038e096..652b88d86 100644 --- a/android-client-main/build.gradle +++ b/android-client-main/build.gradle @@ -42,11 +42,11 @@ android { buildTypes { debug { - buildConfigField("String", "SPLIT_VERSION_NAME", "\"${project.parent.ext.splitVersion}\"") + buildConfigField("String", "SPLIT_VERSION_NAME", "\"${rootProject.ext.splitVersion}\"") buildConfigField("String", "FLAGS_SPEC", "\"1.3\"") } release { - buildConfigField("String", "SPLIT_VERSION_NAME", "\"${project.parent.ext.splitVersion}\"") + buildConfigField("String", "SPLIT_VERSION_NAME", "\"${rootProject.ext.splitVersion}\"") buildConfigField("String", "FLAGS_SPEC", "\"1.3\"") } } @@ -58,11 +58,7 @@ android { dependencies { // Internal module dependencies - // Detect if we're in a standalone build or part of a parent project - def isStandalone = rootProject.name == 'android-client' - def loggerModulePath = isStandalone ? ':android-client-logger' : ':android-client:android-client-logger' - - api project(loggerModulePath) + api project(':android-client-logger') // External dependencies implementation "androidx.room:room-runtime:2.4.3" diff --git a/build.gradle b/build.gradle index 9b701d4e7..f6cfae13a 100644 --- a/build.gradle +++ b/build.gradle @@ -5,23 +5,28 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.9.3' + classpath 'com.android.tools.build:gradle:8.9.1' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0' classpath "com.vanniktech:gradle-maven-publish-plugin:0.33.0" } } apply plugin: 'com.android.fused-library' +apply plugin: 'maven-publish' // Temporarily removed signing and vanniktech plugins to test fused library build // apply plugin: 'signing' // apply plugin: 'com.vanniktech.maven.publish' // spec.gradle and jacoco.gradle removed - not compatible with fused library +group = 'io.split.client' + ext { - splitVersion = '5.4.2-rc1' + splitVersion = '5.5.0-alpha.1' jacocoVersion = '0.8.8' } +version = splitVersion + // Define exclusions for JaCoCo coverage def coverageExclusions = [ '**/R.class', @@ -43,18 +48,11 @@ repositories { } dependencies { - // Detect if we're in a standalone build or part of a parent project - // If standalone (our settings.gradle defines root as 'android-client'), use local paths - // If part of parent project, use prefixed paths - def isStandalone = rootProject.name == 'android-client' - def mainModulePath = isStandalone ? ':android-client-main' : ':android-client:android-client-main' - def loggerModulePath = isStandalone ? ':android-client-logger' : ':android-client:android-client-logger' - // Include main module - contains all source code and will be bundled into the fused .aar - include project(mainModulePath) + include project(':android-client-main') // Include logger module - will be bundled into the fused .aar - include project(loggerModulePath) + include project(':android-client-logger') } def splitPOM = { @@ -94,3 +92,65 @@ def splitPOM = { // Note: sourcesJar and javadocJar tasks removed - fused library has no source sets // Tests are now in submodules + +// Publishing configuration for fused library - temporarily disabled to check available tasks +// afterEvaluate { +// publishing { +// publications { +// release(MavenPublication) { +// groupId = 'io.split.client' +// artifactId = 'android-client' +// version = splitVersion +// +// // Add the fused library AAR +// artifact(tasks.named('bundleReleaseAar')) +// +// pom { +// name = 'Split Android SDK' +// description = 'Official Split Android SDK' +// url = 'https://github.com/splitio/android-client' +// +// licenses { +// license { +// name = 'The Apache License, Version 2.0' +// url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' +// } +// } +// +// developers { +// developer { +// id = 'sdks' +// email = 'sdks@split.io' +// } +// } +// +// scm { +// connection = 'scm:git:git@github.com:splitio/android-client.git' +// developerConnection = 'scm:git@github.com:splitio/android-client.git' +// url = 'https://github.com/splitio/android-client' +// } +// +// // Add runtime dependencies from android-client-main +// withXml { +// def dependenciesNode = asNode().appendNode('dependencies') +// +// // Get dependencies from android-client-main +// project(':android-client-main').configurations.api.allDependencies.each { dep -> +// if (dep.group != null && dep.name != 'unspecified') { +// def dependencyNode = dependenciesNode.appendNode('dependency') +// dependencyNode.appendNode('groupId', dep.group) +// dependencyNode.appendNode('artifactId', dep.name) +// dependencyNode.appendNode('version', dep.version) +// dependencyNode.appendNode('scope', 'runtime') +// } +// } +// } +// } +// } +// } +// +// repositories { +// mavenLocal() +// } +// } +// } From 9038ecc1260b49718e9b95a0a9d443fc515ced3f Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Mon, 3 Nov 2025 18:01:25 -0300 Subject: [PATCH 05/26] Consumer rules --- android-client-logger/build.gradle | 5 -- android-client-main/build.gradle | 5 -- android-client-main/consumer-rules.pro | 54 ++------------------ build.gradle | 63 +++++++++++++++++++----- gradle.properties | 7 +-- gradle/wrapper/gradle-wrapper.properties | 2 +- 6 files changed, 61 insertions(+), 75 deletions(-) diff --git a/android-client-logger/build.gradle b/android-client-logger/build.gradle index 0656d375d..6c298c975 100644 --- a/android-client-logger/build.gradle +++ b/android-client-logger/build.gradle @@ -7,7 +7,6 @@ buildscript { plugins { id 'com.android.library' - id 'kotlin-android' } repositories { @@ -29,10 +28,6 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - - kotlinOptions { - jvmTarget = '1.8' - } } dependencies { diff --git a/android-client-main/build.gradle b/android-client-main/build.gradle index 652b88d86..5820e02ef 100644 --- a/android-client-main/build.gradle +++ b/android-client-main/build.gradle @@ -7,7 +7,6 @@ buildscript { plugins { id 'com.android.library' - id 'kotlin-android' } repositories { @@ -36,10 +35,6 @@ android { targetCompatibility JavaVersion.VERSION_1_8 } - kotlinOptions { - jvmTarget = '1.8' - } - buildTypes { debug { buildConfigField("String", "SPLIT_VERSION_NAME", "\"${rootProject.ext.splitVersion}\"") diff --git a/android-client-main/consumer-rules.pro b/android-client-main/consumer-rules.pro index 8dc624df9..b776cf12b 100644 --- a/android-client-main/consumer-rules.pro +++ b/android-client-main/consumer-rules.pro @@ -1,54 +1,10 @@ -# Please include these rules in your project -# in order to make Split code work properly when -# using proguard --dontwarn android.test.** --dontwarn org.junit.** --dontwarn com.google.common.** --keep class io.split.android.client.utils.deserializer.EventDeserializer { *; } --keep class io.split.android.client.dtos.** { *; } --keep class io.split.android.client.storage.db.** { *; } --keep class io.split.android.client.service.sseclient.EventStreamParser { *; } --keep class io.split.android.client.service.sseclient.SseAuthToken { *; } --keep class io.split.android.client.service.sseclient.SseJwtToken { *; } --keep class io.split.android.client.service.sseclient.SseAuthenticationResponse { *; } --keep class io.split.android.client.service.sseclient.notifications.** { *; } --keepattributes Signature --keep class com.google.gson.reflect.TypeToken { *; } --keep class * extends com.google.gson.reflect.TypeToken +# Consumer ProGuard rules for Split Android SDK +# These rules are automatically applied to apps that depend on this library + +# Suppress warnings for java.beans classes (not available on Android) +# These are referenced by snakeyaml but not actually used on Android -dontwarn java.beans.BeanInfo -dontwarn java.beans.FeatureDescriptor -dontwarn java.beans.IntrospectionException -dontwarn java.beans.Introspector -dontwarn java.beans.PropertyDescriptor - -##---------------Begin: proguard configuration for Gson ---------- -# Gson uses generic type information stored in a class file when working with fields. Proguard -# removes such information by default, so configure it to keep all of it. --keepattributes Signature - -# For using GSON @Expose annotation --keepattributes *Annotation* - -# Gson specific classes --dontwarn sun.misc.** -#-keep class com.google.gson.stream.** { *; } - -# Application classes that will be serialized/deserialized over Gson --keep class com.google.gson.examples.android.model.** { ; } - -# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory, -# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter) --keep class * extends com.google.gson.TypeAdapter --keep class * implements com.google.gson.TypeAdapterFactory --keep class * implements com.google.gson.JsonSerializer --keep class * implements com.google.gson.JsonDeserializer - -# Prevent R8 from leaving Data object members always null --keepclassmembers,allowobfuscation class * { - @com.google.gson.annotations.SerializedName ; -} - -# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher. --keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken --keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken -##---------------End: proguard configuration for Gson ---------- diff --git a/build.gradle b/build.gradle index f6cfae13a..17fc83b61 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,10 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.9.1' + // AGP 9.0.0-alpha13 requires Gradle 9.0 and has a new minSdk API, but builds hang + // Staying with stable AGP 8.9.1 for now +// classpath 'com.android.tools.build:gradle:8.9.1' + classpath 'com.android.tools.build:gradle:9.0.0-alpha13' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0' classpath "com.vanniktech:gradle-maven-publish-plugin:0.33.0" } @@ -39,7 +42,43 @@ def coverageExclusions = [ androidFusedLibrary { namespace = 'io.split.android.android_client' - minSdk = 19 + minSdk { version = release(19) } + // Note: AGP 9.0.0-alpha13 uses new API: minSdk { version = release(19) } +} + +// Workaround: Fused library plugin doesn't include consumer ProGuard files in AAR +// Manually copy the merged consumer proguard file into the AAR +afterEvaluate { + tasks.named('bundle').configure { + doLast { + def aarFile = file("${buildDir}/outputs/aar/android-client.aar") + def proguardFile = file("${buildDir}/intermediates/merged_consumer_proguard_file/release/mergeReleaseConsumerProguardFiles/proguard.txt") + + if (aarFile.exists() && proguardFile.exists()) { + // Create temp directory to extract AAR + def tempDir = file("${buildDir}/tmp/aar-repack") + tempDir.deleteDir() + tempDir.mkdirs() + + // Extract AAR + copy { + from zipTree(aarFile) + into tempDir + } + + // Copy proguard.txt + copy { + from proguardFile + into tempDir + } + + // Repack AAR + ant.zip(destfile: aarFile, basedir: tempDir) + + println "Added consumer ProGuard rules to ${aarFile.name}" + } + } + } } repositories { @@ -50,7 +89,7 @@ repositories { dependencies { // Include main module - contains all source code and will be bundled into the fused .aar include project(':android-client-main') - + // Include logger module - will be bundled into the fused .aar include project(':android-client-logger') } @@ -85,7 +124,7 @@ def splitPOM = { // mavenPublishing { // coordinates("io.split.client", "android-client", splitVersion) // pom(splitPOM) -// +// // publishToMavenCentral(false) // signAllPublications() // } @@ -101,39 +140,39 @@ def splitPOM = { // groupId = 'io.split.client' // artifactId = 'android-client' // version = splitVersion -// +// // // Add the fused library AAR // artifact(tasks.named('bundleReleaseAar')) -// +// // pom { // name = 'Split Android SDK' // description = 'Official Split Android SDK' // url = 'https://github.com/splitio/android-client' -// +// // licenses { // license { // name = 'The Apache License, Version 2.0' // url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' // } // } -// +// // developers { // developer { // id = 'sdks' // email = 'sdks@split.io' // } // } -// +// // scm { // connection = 'scm:git:git@github.com:splitio/android-client.git' // developerConnection = 'scm:git@github.com:splitio/android-client.git' // url = 'https://github.com/splitio/android-client' // } -// +// // // Add runtime dependencies from android-client-main // withXml { // def dependenciesNode = asNode().appendNode('dependencies') -// +// // // Get dependencies from android-client-main // project(':android-client-main').configurations.api.allDependencies.each { dep -> // if (dep.group != null && dep.name != 'unspecified') { @@ -148,7 +187,7 @@ def splitPOM = { // } // } // } -// +// // repositories { // mavenLocal() // } diff --git a/gradle.properties b/gradle.properties index aa8a41b37..5e07a3fe4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,11 @@ mavenCentralUsername= mavenCentralPassword= android.useAndroidX=true +android.experimental.fusedLibrarySupport=true android.nonTransitiveRClass=true -android.defaults.buildfeatures.buildconfig=true -android.nonFinalResIds=false +# Removed in AGP 9.0: android.defaults.buildfeatures.buildconfig=true +# Removed in AGP 9.0: android.nonFinalResIds=false kotlin.stdlib.default.dependency=false # Increase heap size for DEX merging to avoid OOM errors @@ -18,4 +19,4 @@ signing.keyId= signing.password= # Path to the file created in the previous step. -signing.secretKeyRingFile= \ No newline at end of file +signing.secretKeyRingFile= diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a1f201746..2cfe32752 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip From fb4eaeb18a7261dc8488c1acd207794a42d63fd4 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Tue, 4 Nov 2025 15:20:19 -0300 Subject: [PATCH 06/26] Restore --- android-client-logger/build.gradle | 4 + android-client-main/build.gradle | 53 + .../{androidTest => }/AndroidManifest.xml | 0 .../assets/attributes_test_split_change.json | 0 .../assets/bucket_split_test.json | 0 .../{androidTest => }/assets/lorem_ipsum.txt | 0 .../assets/push_msg-ably_error_40012.txt | 0 .../assets/push_msg-ably_error_40142.txt | 0 .../assets/push_msg-control.txt | 0 .../assets/push_msg-largesegment_update.txt | 0 .../assets/push_msg-occupancy.txt | 0 .../assets/push_msg-segment_updV2.txt | 0 .../assets/push_msg-segment_update.txt | 0 .../push_msg-segment_update_empty_payload.txt | 0 .../push_msg-segment_update_payload.txt | 0 ...ush_msg-segment_update_payload_generic.txt | 0 .../assets/push_msg-split_kill.txt | 0 .../assets/push_msg-split_kill_old.txt | 0 .../assets/push_msg-split_update-chgnum.txt | 0 .../assets/push_msg-split_update.txt | 0 .../push_msg-split_update_old_change_nb.txt | 0 .../assets/push_token-expired.txt | 0 .../assets/simple_split.json | 0 .../{androidTest => }/assets/split.json | 0 .../assets/split_changes_1.json | 0 .../assets/split_changes_flag_set-0.json | 0 .../assets/split_changes_flag_set-1.json | 0 .../assets/split_changes_flag_set-2.json | 0 .../assets/split_changes_imp_toggle.json | 0 .../split_changes_large_segments-0.json | 0 .../assets/split_changes_legacy.json | 0 .../assets/split_changes_rbs.json | 0 .../assets/split_changes_semver.json | 0 .../assets/split_dependency.json | 0 .../assets/splitchanges_int_test.json | 0 .../assets/splitchanges_prerequisites.json | 0 .../splitchanges_unsupported_matcher.json | 0 .../{androidTest => }/assets/splits.yaml | 0 .../assets/splits1.properties | 0 .../assets/splits_test.properties | 0 .../{androidTest => }/assets/splits_yml.yml | 0 .../java/fake/HttpClientMock.java | 0 .../java/fake/HttpClientStub.java | 0 .../java/fake/HttpRequestMock.java | 0 .../java/fake/HttpRequestStub.java | 0 .../java/fake/HttpResponseMock.java | 0 .../java/fake/HttpResponseMockDispatcher.java | 0 .../java/fake/HttpResponseStub.java | 0 .../java/fake/HttpStreamRequestMock.java | 0 .../java/fake/HttpStreamResponseMock.java | 0 .../java/fake/LifecycleManagerStub.java | 0 .../java/fake/SplitClientStub.java | 0 .../fake/SplitEventExecutorResourcesMock.java | 0 .../java/fake/SyncManagerStub.java | 0 .../java/fake/SynchronizerSpyImpl.java | 0 .../java/helper/DataSample.kt | 0 .../java/helper/DatabaseHelper.java | 0 .../java/helper/FileHelper.java | 0 .../java/helper/ImpressionListenerHelper.java | 0 .../java/helper/IntegrationHelper.java | 0 .../java/helper/SplitEventTaskHelper.java | 0 .../helper/TestableSplitConfigBuilder.java | 0 .../ImpressionPropertiesIntegrationTest.java | 0 .../impressions/ImpressionUtilsTest.java | 0 .../observer/DedupeIntegrationTest.java | 0 ...sionsObserverCacheImplIntegrationTest.java | 0 .../observer/ImpressionsObserverTest.java | 0 .../observer/ListenableLruCacheTest.java | 0 .../tests/database/AttributesDaoTest.java | 0 .../database/DatabaseInitializationTest.java | 11 + .../tests/database/GeneralInfoDaoTest.java | 0 .../java/tests/database/GenericDaoTest.java | 0 .../tests/database/ImpressionDaoTest.java | 0 .../ImpressionsObserverCacheDaoTest.java | 0 .../tests/database/MyLargeSegmentDaoTest.java | 0 .../java/tests/database/MySegmentDaoTest.java | 0 .../database/RuleBasedSegmentDaoTest.java | 0 .../java/tests/database/SplitDaoTest.java | 0 .../java/tests/database/TrackDaoTest.java | 0 .../tests/database/UniqueKeysDaoTest.java | 0 .../integration/FlagsSpecInRequestTest.java | 0 .../integration/InitialChangeNumberTest.java | 0 .../tests/integration/IntegrationTest.java | 0 .../tests/integration/LifecyleOnBGTest.java | 0 .../integration/MySegmentUpdatedTest.java | 0 .../MySegmentsServerErrorTest.java | 0 .../tests/integration/ProxyFactoryTest.java | 0 .../tests/integration/SingleSyncTest.java | 0 .../SplitChangesCdnBypassTest.java | 0 .../SplitChangesServerErrorTest.java | 0 .../tests/integration/SplitChangesTest.java | 0 .../SplitFactoryFreshInstallTest.java | 0 .../SplitFetchSpecificSplitTest.java | 0 .../SplitsTwoDifferentApiKeyTest.java | 0 .../java/tests/integration/TrackTest.java | 0 .../attributes/AttributesIntegrationTest.java | 0 .../encryption/EncryptionTest.java | 0 .../fallback/FallbackTreatmentsTest.java | 0 .../integration/init/InitializationTest.java | 0 .../largesegments/LargeSegmentTestHelper.java | 0 .../LargeSegmentsStreamingTest.java | 0 .../largesegments/LargeSegmentsTest.java | 0 .../matcher/PrerequisitesTest.java | 1 - .../matcher/SemverMatcherTest.java | 0 .../matcher/UnsupportedMatcherTest.java | 0 .../integration/pin/CertPinningTest.java | 0 .../rbs/OutdatedProxyIntegrationTest.java | 0 .../rbs/RuleBasedSegmentsIntegrationTest.java | 0 .../RolloutCacheManagerIntegrationTest.java | 0 .../sets/FlagSetsEvaluationTest.java | 0 .../sets/FlagSetsMultipleFactoryTest.java | 0 .../integration/sets/FlagSetsPollingTest.java | 0 .../sets/FlagSetsStreamingTest.java | 0 .../shared/BaseSharedClientsTest.java | 0 .../shared/InterdependentSplitsTest.java | 0 .../shared/MySegmentsBeforeSplitsTest.java | 0 .../shared/SharedClientsIntegrationTest.java | 0 .../tests/integration/shared/TestingData.java | 0 .../integration/shared/TestingHelper.java | 0 .../streaming/AblyErrorBaseTest.java | 0 .../integration/streaming/AblyErrorTest.java | 0 .../streaming/CleanUpDatabaseTest.java | 0 .../integration/streaming/ControlTest.java | 0 .../streaming/ImpressionsCountTest.java | 0 .../MySegmentsChangeV2MultiClientTest.java | 0 .../streaming/MySegmentsChangeV2Test.java | 0 .../streaming/MySegmentsSyncProcessTest.java | 0 .../streaming/OccupancyBaseTest.java | 0 .../integration/streaming/OccupancyTest.java | 0 .../streaming/SdkUpdateStreamingTest.java | 0 ...plitChangeNotificationIntegrationTest.java | 0 .../streaming/SplitsKillProcessTest.java | 0 .../streaming/SplitsSyncProcessTest.java | 0 .../streaming/SseAuthFail4xxTest.java | 0 .../streaming/SseAuthFail5xxTest.java | 0 .../SseConnectionExpiredTokenTest.java | 0 .../streaming/SseConnectionFail5xxTest.java | 0 .../StreamingDisabledInConfigTest.java | 0 .../streaming/StreamingDisabledTest.java | 0 .../StreamingInitializationTest.java | 0 .../SyncGuardianIntegrationTest.java | 0 .../telemetry/TelemetryIntegrationTest.java | 0 .../telemetry/TelemetryOccupancyTest.java | 0 .../TelemetryStreamingErrorTest.java | 0 .../toggle/ImpressionsToggleTest.java | 0 .../userconsent/UserConsentModeDebugTest.kt | 0 .../userconsent/UserConsentModeNoneTest.kt | 0 .../UserConsentModeOptimizedTest.kt | 0 .../LocalhostPropertiesFileParserTest.java | 0 .../java/tests/localhost/LocalhostTest.java | 0 .../java/tests/service/CompressionTest.java | 2 - .../java/tests/service/EventsManagerTest.java | 0 .../java/tests/service/EventsRequestTest.java | 0 .../tests/service/ImpressionsRequestTest.java | 0 .../MySegmentV2PayloadDecoderTest.java | 0 .../tests/service/SdkUpdatePollingTest.java | 2 +- .../tests/service/SseJwtTokenParserTest.java | 0 .../service/UniqueKeysIntegrationTest.java | 0 .../java/tests/service/UrlSanitizerTest.java | 0 .../tests/storage/GeneralInfoStorageTest.java | 0 .../tests/storage/LoadMySegmentsTaskTest.java | 0 .../java/tests/storage/LoadSplitTaskTest.java | 0 .../tests/storage/MySegmentsStorageTest.java | 0 .../storage/PersistentEventStorageTest.java | 0 .../PersistentImpressionCountStorageTest.java | 0 .../PersistentImpressionStorageTest.java | 0 .../PersistentMyLargeSegmentStorageTest.java | 0 .../PersistentMySegmentStorageTest.java | 0 .../storage/PersistentSplitsStorageTest.java | 0 .../java/tests/storage/SplitsStorageTest.java | 0 .../tests/storage/cipher/CBCCipherTest.kt | 0 .../tests/storage/cipher/KeyManagerTest.java | 0 .../provider/LegacyKeyProviderTest.java | 0 .../SecureKeyStorageProviderTest.java | 0 .../tests/workmanager/WMWorkersSetupTest.java | 0 .../workmanager/WorkManagerWrapperTest.java | 0 .../client/utils/logger/LogPrinterStub.java | 66 + .../{test => }/java/android/util/Base64.java | 0 .../java/io/split/android/BCryptTest.java | 0 .../io/split/android/FolderForApiKeyTest.java | 0 .../SplitConfigurationsParsingTests.java | 0 .../split/android/client/DestroyerTest.java | 0 .../android/client/EvaluationOptionsTest.java | 0 .../android/client/FactoryMonitorTest.java | 0 .../split/android/client/FileStorageTest.java | 0 .../android/client/FilterBuilderTest.java | 0 .../android/client/FilterGrouperTest.java | 0 .../client/FlagSetsFilterImplTest.java | 0 .../android/client/ImpressionsModeTest.java | 0 .../client/MySegmentsUriBuildersTest.java | 0 .../client/RolloutCacheConfigurationTest.java | 0 .../android/client/SplitClientConfigTest.java | 0 .../client/SplitClientImplAttributesTest.java | 0 .../client/SplitClientImplBaseTest.java | 0 .../SplitClientImplEvaluationOptionsTest.java | 0 .../client/SplitClientImplFlagSetsTest.java | 0 .../client/SplitClientImplLegacyTest.java | 0 .../android/client/SplitFactoryHelperTest.kt | 0 .../android/client/SplitManagerImplTest.java | 0 .../split/android/client/SyncConfigTest.java | 0 .../android/client/TreatmentLabelsTest.java | 0 ...TreatmentManagerEvaluationOptionsTest.java | 0 .../TreatmentManagerExceptionsTest.java | 0 .../client/TreatmentManagerTelemetryTest.java | 0 .../android/client/TreatmentManagerTest.java | 0 .../TreatmentManagerWithFlagSetsTest.java | 0 .../client/UserConsentManagerTest.java | 0 .../attributes/AttributesManagerImplTest.java | 0 .../attributes/AttributesMergerImplTest.java | 0 .../client/dtos/SplitDeserializationTest.java | 0 .../events/EventsManagerCoordinatorTest.java | 0 .../client/events/EventsManagerTest.java | 0 .../client/events/PropertyValidatorTest.java | 0 .../executors/ClientEventSplitTaskTest.java | 0 .../SplitEventExecutorFactoryTest.java | 0 .../SplitEventExecutorResourcesImplTest.java | 0 .../SplitEventExecutorWithClientTest.java | 0 .../fallback/FallbackTreatmentTest.java | 0 .../FallbackTreatmentsCalculatorTest.java | 0 .../FallbackTreatmentsConfigurationTest.java | 0 .../fallback/FallbacksSanitizerImplTest.java | 0 .../ImpressionLoggingTaskTest.java | 0 .../SyncImpressionListenerTest.java | 0 .../localhost/LocalhostSplitClientTest.java | 0 .../localhost/LocalhostSplitFactoryTest.java | 0 .../LocalhostSplitFactoryTestBuilder.java | 0 .../localhost/LocalhostYamlParserTest.java | 0 ...LocalhostSplitClientContainerImplTest.java | 0 .../BinarySearchLatencyTrackerTest.java | 0 .../network/CertificateCheckerHelperTest.java | 0 .../network/CertificateCheckerImplTest.java | 0 ...icatePinningConfigurationProviderTest.java | 0 .../CertificatePinningConfigurationTest.java | 0 .../client/network/ChainCleanerImplTest.java | 0 .../network/DefaultBase64EncoderTest.java | 0 .../client/network/HttpClientTest.java | 0 .../HttpClientTunnellingProxyTest.java | 0 .../network/HttpOverTunnelExecutorTest.java | 0 .../client/network/HttpRequestHelperTest.java | 0 .../HttpResponseConnectionAdapterTest.java | 0 .../network/HttpStreamResponseTest.java | 0 .../client/network/PinEncoderImplTest.java | 0 .../network/ProxyConfigurationTest.java | 0 ...ProxySslSocketFactoryProviderImplTest.java | 0 .../network/RawHttpResponseParserTest.java | 0 .../client/network/SdkTargetPathTest.java | 0 .../network/SplitAuthenticatorTest.java | 0 .../network/SplitBasicAuthenticatorTest.java | 0 .../SplitUrlConnectionAuthenticatorTest.java | 0 .../SslProxyTunnelEstablisherTest.java | 0 .../network/TrustManagerProviderTest.java | 0 .../service/EventsRecorderTaskTest.java | 0 .../service/FilterSplitsInCacheTaskTest.java | 0 .../client/service/HttpFetcherTest.java | 0 .../client/service/HttpRecorderTest.java | 0 .../client/service/ImpressionHasherTest.java | 0 .../ImpressionsCountRecorderTaskTest.java | 0 .../service/ImpressionsCounterTest.java | 0 .../service/ImpressionsRecorderTaskTest.java | 0 .../service/ImpressionsRequestParserTest.java | 0 .../client/service/LoadSplitsTaskTest.java | 0 .../service/MySegmentsChangesCheckerTest.java | 0 .../service/MySegmentsSyncTaskTest.java | 0 .../service/MySegmentsUpdateTaskTest.java | 0 .../service/SplitInPlaceUpdateTaskTest.java | 0 .../client/service/SplitKillTaskTest.java | 0 .../client/service/SplitSyncTaskTest.java | 0 .../client/service/SplitTaskExecutorTest.java | 0 .../client/service/SplitUpdateTaskTest.java | 0 .../service/SplitsChangesCheckerTest.java | 0 .../client/service/SplitsSyncHelperTest.java | 0 .../client/service/SynchronizerTest.java | 0 ...AttributesInPersistentStorageTaskTest.java | 0 .../attributes/LoadAttributesTaskTest.java | 0 ...AttributesInPersistentStorageTaskTest.java | 0 .../EventsRequestBodySerializerTest.java | 0 .../service/events/EventsTrackerTest.java | 0 .../executor/SplitTaskSerialWrapperTest.java | 0 .../executor/ThreadFactoryBuilderTest.java | 0 .../SplitParallelTaskExecutorImplTest.java | 0 .../http/HttpSseAuthTokenFetcherTest.java | 0 .../MySegmentsFetcherFactoryImplTest.java | 0 ...essionManagerRetryTimerProviderImplTest.kt | 0 .../ImpressionsRequestBodySerializerTest.java | 0 .../impressions/MemoizedSupplierTest.java | 0 .../StrategyImpressionManagerTest.kt | 0 .../ImpressionsObserverCacheImplTest.java | 0 .../observer/PeriodicPersistenceTaskTest.java | 0 ...ntImpressionsObserverCacheStorageTest.java | 0 .../impressions/strategy/DebugStrategyTest.kt | 0 .../impressions/strategy/DebugTrackerTest.kt | 0 .../impressions/strategy/NoneStrategyTest.kt | 0 .../impressions/strategy/NoneTrackerTest.kt | 0 .../strategy/OptimizedStrategyTest.kt | 0 .../strategy/OptimizedTrackerTest.kt | 0 .../impressions/strategy/UtilsTest.java | 0 .../unique/MTKRequestBodySerializerTest.java | 0 .../unique/SaveUniqueImpressionsTaskTest.java | 0 .../unique/UniqueKeysRecorderTaskTest.java | 0 .../unique/UniqueKeysTrackerImplTest.java | 0 .../AllSegmentsResponseParserTest.java | 0 .../LoadMySegmentsTaskConfigTest.java | 0 .../MySegmentsBulkSyncTaskTest.java | 0 .../MySegmentsSyncTaskConfigTest.java | 0 ...ySegmentsTaskFactoryConfigurationTest.java | 0 .../MySegmentsUpdateTaskConfigTest.java | 0 .../RuleBasedSegmentChangeProcessorTest.java | 0 ...RuleBasedSegmentInPlaceUpdateTaskTest.java | 0 .../TargetingRulesResponseParserTest.java | 0 .../service/splits/LoadSplitsTaskTest.java | 0 .../splits/OutdatedSplitProxyHandlerTest.java | 0 .../splits/SplitChangeProcessorTest.java | 0 .../SplitsSyncHelperFreshInstallTest.java | 0 .../splits/TargetingRulesCacheTest.java | 0 .../BackgroundDisconnectionTaskTest.java | 0 .../sseclient/EventStreamParserTest.java | 0 .../sseclient/MySegmentsUpdateWorkerTest.java | 0 .../NotificationManagerKeeperTest.java | 0 .../sseclient/NotificationParserTest.java | 0 .../sseclient/NotificationProcessorTest.java | 0 .../PushNotificationManagerTest.java | 0 .../ReconnectBackoffCounterTest.java | 0 .../sseclient/SplitUpdateWorkerTest.java | 0 .../sseclient/SseAuthenticatorTest.java | 0 .../service/sseclient/SseClientTest.java | 0 .../service/sseclient/SseHandlerTest.java | 0 .../SyncManagerChannelMessageTest.java | 0 .../service/sseclient/SyncManagerTest.java | 0 ...SegmentsNotificationProcessorImplTest.java | 0 .../mysegments/SyncDelayCalculatorTest.java | 0 ...ySegmentsUpdateWorkerRegistryImplTest.java | 0 ...ificationManagerDeferredStartTaskTest.java | 0 .../RetryBackoffCounterTimerTest.java | 0 .../sseclient/SseDisconnectionTimerTest.java | 0 .../SplitsChangeNotificationTest.java | 0 .../FeatureFlagsSynchronizerImplTest.java | 0 .../RecorderSyncHelperImplTest.java | 0 .../synchronizer/RolloutCacheManagerTest.kt | 0 .../synchronizer/SyncGuardianImplTest.java | 0 .../AttributesSynchronizerImplTest.java | 0 ...ttributesSynchronizerRegistryImplTest.java | 0 .../MySegmentsSynchronizerImplTest.java | 0 ...ySegmentsSynchronizerRegistryImplTest.java | 0 .../SynchronizerImplTelemetryTest.java | 0 .../TelemetryConfigRecorderTaskTest.java | 0 .../TelemetryStatsRecorderTaskTest.java | 0 .../workmanager/HttpClientProviderTest.java | 0 .../splits/FetcherProviderTest.java | 0 .../SplitsSyncWorkerFilterBuilderTest.java | 0 .../splits/SplitsSyncWorkerParamsTest.java | 0 .../SplitsSyncWorkerTaskBuilderTest.java | 0 .../splits/StorageProviderTest.java | 0 .../ClientComponentsRegisterImplTest.java | 0 .../shared/SplitClientContainerImplTest.java | 0 .../attributes/AttributesStorageImplTest.java | 0 ...SqLitePersistentAttributesStorageTest.java | 0 .../storage/cipher/ApplyCipherTaskTest.kt | 0 .../client/storage/cipher/CBCCipherTest.kt | 0 .../client/storage/cipher/DBCipherTest.kt | 0 .../cipher/EncryptionMigrationTaskTest.kt | 0 .../client/storage/cipher/NoOpCipherTest.kt | 0 .../client/storage/cipher/ObjectPoolTest.kt | 0 .../storage/cipher/SplitCipherFactoryTest.kt | 0 .../common/SplitStorageContainerTest.java | 0 .../storage/db/SplitQueryDaoImplTest.java | 0 .../storage/db/SplitRoomDatabaseTest.java | 0 .../storage/events/EventsStorageTest.java | 0 .../SqLitePersistentEventsStorageTest.java | 0 .../general/GeneralInfoStorageImplTest.java | 0 .../impressions/ImpressionsStorageTest.java | 0 ...PersistentImpressionsCountStorageTest.java | 0 ...qlitePersistentImpressionsStorageTest.java | 0 .../SqlitePersistentUniqueStorageTest.java | 0 .../MySegmentsStorageContainerImplTest.java | 0 ...ePersistentMyLargeSegmentsStorageTest.java | 0 ...SqLitePersistentMySegmentsStorageTest.java | 0 ...zyRuleBasedSegmentStorageProviderTest.java | 0 .../rbs/RuleBasedSegmentStorageImplTest.java | 0 ...leBasedSegmentStorageProducerImplTest.java | 0 .../storage/rbs/SnapshotLoaderTest.java | 0 ...PersistentRuleBasedSegmentStorageTest.java | 0 ...SegmentsPersistentStorageProviderTest.java | 0 .../client/storage/rbs/UpdaterTest.java | 0 .../SplitEntityToSplitTransformerTest.java | 0 .../SplitToSplitEntityTransformerTest.java | 0 .../SqLitePersistentSplitsStorageTest.java | 0 .../TelemetryConfigBodySerializerTest.java | 0 .../telemetry/TelemetryHelperImplTest.java | 0 .../TelemetryStatsBodySerializerTest.java | 0 .../TelemetrySynchronizerImplTest.java | 0 .../storage/InMemoryTelemetryStorageTest.java | 0 .../TelemetryConfigProviderImplTest.java | 0 .../TelemetryStatsProviderImplTest.java | 0 .../client/utils/HttpProxySerializerTest.java | 0 .../split/android/client/utils/JsonTest.java | 0 .../android/client/utils/PartitionTest.java | 0 .../android/client/utils/RepeatTest.java | 0 .../client/utils/SplitClientImplFactory.java | 0 .../deserializer/EventDeserializerTest.java | 0 .../validators/ApiKeyValidatorTest.java | 0 .../AttributesValidatorImplTest.java | 0 .../validators/EventTypeNameHelper.java | 0 .../client/validators/EventValidatorTest.java | 0 .../validators/FlagSetsValidatorImplTest.java | 0 .../client/validators/KeyValidatorTest.java | 0 .../validators/PrefixValidatorImplTest.java | 0 .../client/validators/SplitValidatorTest.java | 0 .../TreatmentManagerFactoryImplTest.java | 0 ...reatmentManagerFallbackTreatmentsTest.java | 0 .../TreatmentManagerHelperTest.java | 0 .../android/engine/ConditionsTestUtil.java | 0 .../DefaultConditionsProviderTest.java | 0 .../engine/experiments/EvaluatorTest.java | 0 .../PrerequisitesEvaluatorTest.java | 0 .../RuleBasedSegmentParserTest.java | 0 .../engine/experiments/SplitParserTest.java | 0 .../UnsupportedMatcherSplitParserTest.java | 0 .../engine/matchers/AllKeysMatcherTest.java | 0 .../engine/matchers/AttributeMatcherTest.java | 0 .../engine/matchers/BetweenMatcherTest.java | 0 .../engine/matchers/BooleanMatcherTest.java | 0 .../engine/matchers/CombiningMatcherTest.java | 0 .../engine/matchers/EqualToMatcherTest.java | 0 .../GreaterThanOrEqualToMatcherTest.java | 0 .../InRuleBasedSegmentMatcherTest.java | 0 .../LessThanOrEqualToMatcherTest.java | 0 .../engine/matchers/NegatableMatcherTest.java | 0 .../matchers/PrerequisitesMatcherTest.java | 0 .../engine/matchers/TransformersTest.java | 0 .../ContainsAllOfSetMatcherTest.java | 0 .../ContainsAnyOfSetMatcherTest.java | 0 .../collections/EqualToSetMatcherTest.java | 0 .../collections/PartOfSetMatcherTest.java | 0 .../semver/BetweenSemverMatcherTest.java | 0 .../semver/EqualToSemverMatcherTest.java | 0 ...GreaterThanOrEqualToSemverMatcherTest.java | 0 .../semver/InListSemverMatcherTest.java | 0 .../LessThanOrEqualToSemverMatcherTest.java | 0 .../engine/matchers/semver/SemverTest.java | 0 .../strings/ContainsAnyOfMatcherTest.java | 0 .../strings/EndsWithAnyOfMatcherTest.java | 0 .../strings/RegularExpressionMatcherTest.java | 0 .../strings/StartsWithAnyOfMatcherTest.java | 0 .../strings/WhitelistMatcherTest.java | 0 ...leScheduledThreadPoolExecutorImplTest.java | 0 .../engine/splitter/HashConsistencyTest.java | 0 .../android/engine/splitter/HashingTest.java | 0 .../split/android/engine/splitter/MyHash.java | 0 .../android/engine/splitter/SplitterTest.java | 0 .../android/fake/ExecutorServiceMock.java | 0 .../android/fake/ImpressionListenerMock.java | 0 .../android/fake/MemoryUtilsNoMemoryStub.java | 0 .../android/fake/SplitEventsManagerStub.java | 0 .../android/fake/SplitTaskExecutorStub.java | 0 .../io/split/android/fake/SseClientMock.java | 0 .../io/split/android/helpers/FileHelper.java | 0 .../android/helpers/ResourcesFileStorage.java | 0 .../io/split/android/helpers/SplitHelper.java | 0 .../http/SplitHttpHeadersBuilderTest.java | 0 .../io/split/android/http/URIBuilderTest.java | 0 .../src/test/{test => }/resources/README.txt | 0 .../{test => }/resources/between_semver.csv | 0 .../{test => }/resources/equal_to_semver.csv | 0 .../{test => }/resources/impressions_1.json | 0 .../resources/invalid_semantic_versions.csv | 0 ...acy-hash-sample-data-non-alpha-numeric.csv | 0 .../resources/legacy-hash-sample-data.csv | 0 ...rmur3-sample-data-non-alpha-numeric-v2.csv | 0 .../murmur3-sample-data-non-alpha-numeric.csv | 0 .../resources/murmur3-sample-data-v2.csv | 0 .../resources/murmur3-sample-data.csv | 0 .../murmur3-sample-double-treatment-users.csv | 0 .../{test => }/resources/murmur3_64_uuids.csv | 0 .../{test => }/resources/split_changes_1.json | 0 .../resources/split_changes_1_updated.json | 0 .../resources/split_changes_legacy.json | 0 .../split_changes_prerequisites.json | 0 .../resources/split_changes_small.json | 0 .../split_changes_with_prerequisites.json | 0 .../src/test/{test => }/resources/splits.yaml | 0 .../resources/splits_incorrect_value.yaml | 0 .../resources/splits_missing_name.yaml | 0 .../resources/splits_missing_treatment.yaml | 0 .../{test => }/resources/splits_no_yaml.yaml | 0 .../test/{test => }/resources/tracks_1.json | 0 .../resources/valid_semantic_versions.csv | 0 build.gradle | 48 + deps.txt | 1616 +++++++++++++++-- 488 files changed, 1697 insertions(+), 106 deletions(-) rename android-client-main/src/androidTest/{androidTest => }/AndroidManifest.xml (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/attributes_test_split_change.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/bucket_split_test.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/lorem_ipsum.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-ably_error_40012.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-ably_error_40142.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-control.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-largesegment_update.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-occupancy.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-segment_updV2.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-segment_update.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-segment_update_empty_payload.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-segment_update_payload.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-segment_update_payload_generic.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-split_kill.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-split_kill_old.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-split_update-chgnum.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-split_update.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_msg-split_update_old_change_nb.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/push_token-expired.txt (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/simple_split.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/split.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/split_changes_1.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/split_changes_flag_set-0.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/split_changes_flag_set-1.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/split_changes_flag_set-2.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/split_changes_imp_toggle.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/split_changes_large_segments-0.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/split_changes_legacy.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/split_changes_rbs.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/split_changes_semver.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/split_dependency.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/splitchanges_int_test.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/splitchanges_prerequisites.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/splitchanges_unsupported_matcher.json (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/splits.yaml (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/splits1.properties (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/splits_test.properties (100%) rename android-client-main/src/androidTest/{androidTest => }/assets/splits_yml.yml (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/HttpClientMock.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/HttpClientStub.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/HttpRequestMock.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/HttpRequestStub.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/HttpResponseMock.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/HttpResponseMockDispatcher.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/HttpResponseStub.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/HttpStreamRequestMock.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/HttpStreamResponseMock.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/LifecycleManagerStub.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/SplitClientStub.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/SplitEventExecutorResourcesMock.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/SyncManagerStub.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/fake/SynchronizerSpyImpl.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/helper/DataSample.kt (100%) rename android-client-main/src/androidTest/{androidTest => }/java/helper/DatabaseHelper.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/helper/FileHelper.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/helper/ImpressionListenerHelper.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/helper/IntegrationHelper.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/helper/SplitEventTaskHelper.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/helper/TestableSplitConfigBuilder.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/database/AttributesDaoTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/database/DatabaseInitializationTest.java (94%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/database/GeneralInfoDaoTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/database/GenericDaoTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/database/ImpressionDaoTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/database/ImpressionsObserverCacheDaoTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/database/MyLargeSegmentDaoTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/database/MySegmentDaoTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/database/RuleBasedSegmentDaoTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/database/SplitDaoTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/database/TrackDaoTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/database/UniqueKeysDaoTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/FlagsSpecInRequestTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/InitialChangeNumberTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/IntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/LifecyleOnBGTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/MySegmentUpdatedTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/MySegmentsServerErrorTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/ProxyFactoryTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/SingleSyncTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/SplitChangesCdnBypassTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/SplitChangesServerErrorTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/SplitChangesTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/SplitFactoryFreshInstallTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/SplitFetchSpecificSplitTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/SplitsTwoDifferentApiKeyTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/TrackTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/attributes/AttributesIntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/encryption/EncryptionTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/fallback/FallbackTreatmentsTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/init/InitializationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/largesegments/LargeSegmentTestHelper.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/largesegments/LargeSegmentsTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/matcher/PrerequisitesTest.java (99%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/matcher/SemverMatcherTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/matcher/UnsupportedMatcherTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/pin/CertPinningTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/sets/FlagSetsEvaluationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/sets/FlagSetsPollingTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/sets/FlagSetsStreamingTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/shared/BaseSharedClientsTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/shared/InterdependentSplitsTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/shared/SharedClientsIntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/shared/TestingData.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/shared/TestingHelper.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/AblyErrorBaseTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/AblyErrorTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/CleanUpDatabaseTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/ControlTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/ImpressionsCountTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/MySegmentsChangeV2Test.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/MySegmentsSyncProcessTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/OccupancyBaseTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/OccupancyTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/SdkUpdateStreamingTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/SplitsKillProcessTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/SplitsSyncProcessTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/SseAuthFail4xxTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/SseAuthFail5xxTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/SseConnectionFail5xxTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/StreamingDisabledInConfigTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/StreamingDisabledTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/StreamingInitializationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/streaming/SyncGuardianIntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/telemetry/TelemetryIntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/telemetry/TelemetryOccupancyTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/toggle/ImpressionsToggleTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/userconsent/UserConsentModeDebugTest.kt (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/userconsent/UserConsentModeNoneTest.kt (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/localhost/LocalhostPropertiesFileParserTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/localhost/LocalhostTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/service/CompressionTest.java (99%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/service/EventsManagerTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/service/EventsRequestTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/service/ImpressionsRequestTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/service/MySegmentV2PayloadDecoderTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/service/SdkUpdatePollingTest.java (99%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/service/SseJwtTokenParserTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/service/UniqueKeysIntegrationTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/service/UrlSanitizerTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/GeneralInfoStorageTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/LoadMySegmentsTaskTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/LoadSplitTaskTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/MySegmentsStorageTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/PersistentEventStorageTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/PersistentImpressionCountStorageTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/PersistentImpressionStorageTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/PersistentMyLargeSegmentStorageTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/PersistentMySegmentStorageTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/PersistentSplitsStorageTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/SplitsStorageTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/cipher/CBCCipherTest.kt (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/cipher/KeyManagerTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/workmanager/WMWorkersSetupTest.java (100%) rename android-client-main/src/androidTest/{androidTest => }/java/tests/workmanager/WorkManagerWrapperTest.java (100%) create mode 100644 android-client-main/src/sharedTest/java/io/split/android/client/utils/logger/LogPrinterStub.java rename android-client-main/src/test/{test => }/java/android/util/Base64.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/BCryptTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/FolderForApiKeyTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/SplitConfigurationsParsingTests.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/DestroyerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/EvaluationOptionsTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/FactoryMonitorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/FileStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/FilterBuilderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/FilterGrouperTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/FlagSetsFilterImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/ImpressionsModeTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/MySegmentsUriBuildersTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/RolloutCacheConfigurationTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/SplitClientConfigTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/SplitClientImplAttributesTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/SplitClientImplBaseTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/SplitClientImplFlagSetsTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/SplitClientImplLegacyTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/SplitFactoryHelperTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/SplitManagerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/SyncConfigTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/TreatmentLabelsTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/TreatmentManagerExceptionsTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/TreatmentManagerTelemetryTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/TreatmentManagerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/UserConsentManagerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/attributes/AttributesManagerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/attributes/AttributesMergerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/dtos/SplitDeserializationTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/events/EventsManagerCoordinatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/events/EventsManagerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/events/PropertyValidatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/fallback/FallbackTreatmentTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/impressions/SyncImpressionListenerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/localhost/LocalhostSplitClientTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/localhost/LocalhostYamlParserTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/CertificateCheckerHelperTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/CertificateCheckerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/CertificatePinningConfigurationTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/ChainCleanerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/DefaultBase64EncoderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/HttpClientTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/HttpRequestHelperTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/HttpStreamResponseTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/PinEncoderImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/ProxyConfigurationTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/RawHttpResponseParserTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/SdkTargetPathTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/SplitAuthenticatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/network/TrustManagerProviderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/EventsRecorderTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/HttpFetcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/HttpRecorderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/ImpressionHasherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/ImpressionsCounterTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/ImpressionsRequestParserTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/LoadSplitsTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/MySegmentsSyncTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/SplitKillTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/SplitSyncTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/SplitTaskExecutorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/SplitUpdateTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/SplitsChangesCheckerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/SplitsSyncHelperTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/SynchronizerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/events/EventsTrackerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/strategy/UtilsTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/EventStreamParserTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/NotificationParserTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/SseClientTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/SseHandlerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/SyncManagerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/shared/SplitClientContainerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/cipher/CBCCipherTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/cipher/DBCipherTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/common/SplitStorageContainerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/events/EventsStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/rbs/UpdaterTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/utils/HttpProxySerializerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/utils/JsonTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/utils/PartitionTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/utils/RepeatTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/utils/SplitClientImplFactory.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/validators/ApiKeyValidatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/validators/AttributesValidatorImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/validators/EventTypeNameHelper.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/validators/EventValidatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/validators/KeyValidatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/validators/PrefixValidatorImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/validators/SplitValidatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/client/validators/TreatmentManagerHelperTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/ConditionsTestUtil.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/experiments/EvaluatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/experiments/SplitParserTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/AllKeysMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/AttributeMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/BetweenMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/BooleanMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/CombiningMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/EqualToMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/NegatableMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/TransformersTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/semver/SemverTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/splitter/HashConsistencyTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/splitter/HashingTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/splitter/MyHash.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/engine/splitter/SplitterTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/fake/ExecutorServiceMock.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/fake/ImpressionListenerMock.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/fake/SplitEventsManagerStub.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/fake/SplitTaskExecutorStub.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/fake/SseClientMock.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/helpers/FileHelper.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/helpers/ResourcesFileStorage.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/helpers/SplitHelper.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/http/SplitHttpHeadersBuilderTest.java (100%) rename android-client-main/src/test/{test => }/java/io/split/android/http/URIBuilderTest.java (100%) rename android-client-main/src/test/{test => }/resources/README.txt (100%) rename android-client-main/src/test/{test => }/resources/between_semver.csv (100%) rename android-client-main/src/test/{test => }/resources/equal_to_semver.csv (100%) rename android-client-main/src/test/{test => }/resources/impressions_1.json (100%) rename android-client-main/src/test/{test => }/resources/invalid_semantic_versions.csv (100%) rename android-client-main/src/test/{test => }/resources/legacy-hash-sample-data-non-alpha-numeric.csv (100%) rename android-client-main/src/test/{test => }/resources/legacy-hash-sample-data.csv (100%) rename android-client-main/src/test/{test => }/resources/murmur3-sample-data-non-alpha-numeric-v2.csv (100%) rename android-client-main/src/test/{test => }/resources/murmur3-sample-data-non-alpha-numeric.csv (100%) rename android-client-main/src/test/{test => }/resources/murmur3-sample-data-v2.csv (100%) rename android-client-main/src/test/{test => }/resources/murmur3-sample-data.csv (100%) rename android-client-main/src/test/{test => }/resources/murmur3-sample-double-treatment-users.csv (100%) rename android-client-main/src/test/{test => }/resources/murmur3_64_uuids.csv (100%) rename android-client-main/src/test/{test => }/resources/split_changes_1.json (100%) rename android-client-main/src/test/{test => }/resources/split_changes_1_updated.json (100%) rename android-client-main/src/test/{test => }/resources/split_changes_legacy.json (100%) rename android-client-main/src/test/{test => }/resources/split_changes_prerequisites.json (100%) rename android-client-main/src/test/{test => }/resources/split_changes_small.json (100%) rename android-client-main/src/test/{test => }/resources/split_changes_with_prerequisites.json (100%) rename android-client-main/src/test/{test => }/resources/splits.yaml (100%) rename android-client-main/src/test/{test => }/resources/splits_incorrect_value.yaml (100%) rename android-client-main/src/test/{test => }/resources/splits_missing_name.yaml (100%) rename android-client-main/src/test/{test => }/resources/splits_missing_treatment.yaml (100%) rename android-client-main/src/test/{test => }/resources/splits_no_yaml.yaml (100%) rename android-client-main/src/test/{test => }/resources/tracks_1.json (100%) rename android-client-main/src/test/{test => }/resources/valid_semantic_versions.csv (100%) diff --git a/android-client-logger/build.gradle b/android-client-logger/build.gradle index 6c298c975..8cb4fd54c 100644 --- a/android-client-logger/build.gradle +++ b/android-client-logger/build.gradle @@ -9,6 +9,10 @@ plugins { id 'com.android.library' } +// Version inherited from parent project +version = rootProject.ext.splitVersion +group = 'io.split.client' + repositories { google() mavenCentral() diff --git a/android-client-main/build.gradle b/android-client-main/build.gradle index 5820e02ef..f747852f3 100644 --- a/android-client-main/build.gradle +++ b/android-client-main/build.gradle @@ -9,6 +9,10 @@ plugins { id 'com.android.library' } +// Version inherited from parent project +version = rootProject.ext.splitVersion +group = 'io.split.client' + repositories { google() mavenCentral() @@ -24,6 +28,11 @@ android { multiDexEnabled true consumerProguardFiles 'consumer-rules.pro' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + testInstrumentationRunnerArguments clearPackageData: 'true' + + testOptions { + execution 'ANDROIDX_TEST_ORCHESTRATOR' + } } buildFeatures { @@ -35,6 +44,15 @@ android { targetCompatibility JavaVersion.VERSION_1_8 } + sourceSets { + test { + java.srcDirs += 'src/sharedTest/java' + } + androidTest { + java.srcDirs += 'src/sharedTest/java' + } + } + buildTypes { debug { buildConfigField("String", "SPLIT_VERSION_NAME", "\"${rootProject.ext.splitVersion}\"") @@ -48,6 +66,15 @@ android { testOptions { unitTests.returnDefaultValues = true + execution 'ANDROIDX_TEST_ORCHESTRATOR' + } +} + +configurations.all { + resolutionStrategy { + force "org.jetbrains.kotlin:kotlin-stdlib:1.8.0" + force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0" + force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0" } } @@ -70,6 +97,32 @@ dependencies { testImplementation "junit:junit:4.13.2" testImplementation "org.mockito:mockito-core:4.8.0" testImplementation "org.mockito:mockito-inline:4.8.0" + testImplementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.0" + testImplementation "org.jetbrains.kotlin:kotlin-test:1.8.0" + testImplementation "org.jetbrains.kotlin:kotlin-test-junit:1.8.0" + testImplementation "org.hamcrest:hamcrest:2.2" + testImplementation "org.apache.commons:commons-lang3:3.12.0" + testImplementation "com.google.guava:guava:31.1-android" + testImplementation "com.squareup.okhttp3:mockwebserver:4.10.0" + testImplementation "com.squareup.okhttp3:okhttp-tls:4.10.0" +// testImplementation project(':android-client-logger') + + // Android Test dependencies + androidTestImplementation "androidx.test.ext:junit:1.1.5" + androidTestImplementation "androidx.test:runner:1.5.2" + androidTestImplementation "androidx.test:rules:1.5.0" + androidTestImplementation "androidx.work:work-testing:2.7.1" + androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.0" + androidTestImplementation "org.jetbrains.kotlin:kotlin-test:1.8.0" + androidTestImplementation "org.jetbrains.kotlin:kotlin-test-junit:1.8.0" + androidTestImplementation "org.mockito:mockito-core:4.8.0" + androidTestImplementation "org.mockito:mockito-android:4.8.0" + androidTestImplementation "com.squareup.okhttp3:mockwebserver:4.10.0" + androidTestImplementation "com.squareup.okhttp3:okhttp-tls:4.10.0" + androidTestImplementation "com.google.guava:guava:31.1-android" +// androidTestImplementation project(':android-client-logger') + + androidTestUtil "androidx.test:orchestrator:1.4.2" } tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { diff --git a/android-client-main/src/androidTest/androidTest/AndroidManifest.xml b/android-client-main/src/androidTest/AndroidManifest.xml similarity index 100% rename from android-client-main/src/androidTest/androidTest/AndroidManifest.xml rename to android-client-main/src/androidTest/AndroidManifest.xml diff --git a/android-client-main/src/androidTest/androidTest/assets/attributes_test_split_change.json b/android-client-main/src/androidTest/assets/attributes_test_split_change.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/attributes_test_split_change.json rename to android-client-main/src/androidTest/assets/attributes_test_split_change.json diff --git a/android-client-main/src/androidTest/androidTest/assets/bucket_split_test.json b/android-client-main/src/androidTest/assets/bucket_split_test.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/bucket_split_test.json rename to android-client-main/src/androidTest/assets/bucket_split_test.json diff --git a/android-client-main/src/androidTest/androidTest/assets/lorem_ipsum.txt b/android-client-main/src/androidTest/assets/lorem_ipsum.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/lorem_ipsum.txt rename to android-client-main/src/androidTest/assets/lorem_ipsum.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-ably_error_40012.txt b/android-client-main/src/androidTest/assets/push_msg-ably_error_40012.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-ably_error_40012.txt rename to android-client-main/src/androidTest/assets/push_msg-ably_error_40012.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-ably_error_40142.txt b/android-client-main/src/androidTest/assets/push_msg-ably_error_40142.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-ably_error_40142.txt rename to android-client-main/src/androidTest/assets/push_msg-ably_error_40142.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-control.txt b/android-client-main/src/androidTest/assets/push_msg-control.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-control.txt rename to android-client-main/src/androidTest/assets/push_msg-control.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-largesegment_update.txt b/android-client-main/src/androidTest/assets/push_msg-largesegment_update.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-largesegment_update.txt rename to android-client-main/src/androidTest/assets/push_msg-largesegment_update.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-occupancy.txt b/android-client-main/src/androidTest/assets/push_msg-occupancy.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-occupancy.txt rename to android-client-main/src/androidTest/assets/push_msg-occupancy.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-segment_updV2.txt b/android-client-main/src/androidTest/assets/push_msg-segment_updV2.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-segment_updV2.txt rename to android-client-main/src/androidTest/assets/push_msg-segment_updV2.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update.txt b/android-client-main/src/androidTest/assets/push_msg-segment_update.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update.txt rename to android-client-main/src/androidTest/assets/push_msg-segment_update.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update_empty_payload.txt b/android-client-main/src/androidTest/assets/push_msg-segment_update_empty_payload.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update_empty_payload.txt rename to android-client-main/src/androidTest/assets/push_msg-segment_update_empty_payload.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update_payload.txt b/android-client-main/src/androidTest/assets/push_msg-segment_update_payload.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update_payload.txt rename to android-client-main/src/androidTest/assets/push_msg-segment_update_payload.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update_payload_generic.txt b/android-client-main/src/androidTest/assets/push_msg-segment_update_payload_generic.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-segment_update_payload_generic.txt rename to android-client-main/src/androidTest/assets/push_msg-segment_update_payload_generic.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-split_kill.txt b/android-client-main/src/androidTest/assets/push_msg-split_kill.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-split_kill.txt rename to android-client-main/src/androidTest/assets/push_msg-split_kill.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-split_kill_old.txt b/android-client-main/src/androidTest/assets/push_msg-split_kill_old.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-split_kill_old.txt rename to android-client-main/src/androidTest/assets/push_msg-split_kill_old.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-split_update-chgnum.txt b/android-client-main/src/androidTest/assets/push_msg-split_update-chgnum.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-split_update-chgnum.txt rename to android-client-main/src/androidTest/assets/push_msg-split_update-chgnum.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-split_update.txt b/android-client-main/src/androidTest/assets/push_msg-split_update.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-split_update.txt rename to android-client-main/src/androidTest/assets/push_msg-split_update.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_msg-split_update_old_change_nb.txt b/android-client-main/src/androidTest/assets/push_msg-split_update_old_change_nb.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_msg-split_update_old_change_nb.txt rename to android-client-main/src/androidTest/assets/push_msg-split_update_old_change_nb.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/push_token-expired.txt b/android-client-main/src/androidTest/assets/push_token-expired.txt similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/push_token-expired.txt rename to android-client-main/src/androidTest/assets/push_token-expired.txt diff --git a/android-client-main/src/androidTest/androidTest/assets/simple_split.json b/android-client-main/src/androidTest/assets/simple_split.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/simple_split.json rename to android-client-main/src/androidTest/assets/simple_split.json diff --git a/android-client-main/src/androidTest/androidTest/assets/split.json b/android-client-main/src/androidTest/assets/split.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/split.json rename to android-client-main/src/androidTest/assets/split.json diff --git a/android-client-main/src/androidTest/androidTest/assets/split_changes_1.json b/android-client-main/src/androidTest/assets/split_changes_1.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/split_changes_1.json rename to android-client-main/src/androidTest/assets/split_changes_1.json diff --git a/android-client-main/src/androidTest/androidTest/assets/split_changes_flag_set-0.json b/android-client-main/src/androidTest/assets/split_changes_flag_set-0.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/split_changes_flag_set-0.json rename to android-client-main/src/androidTest/assets/split_changes_flag_set-0.json diff --git a/android-client-main/src/androidTest/androidTest/assets/split_changes_flag_set-1.json b/android-client-main/src/androidTest/assets/split_changes_flag_set-1.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/split_changes_flag_set-1.json rename to android-client-main/src/androidTest/assets/split_changes_flag_set-1.json diff --git a/android-client-main/src/androidTest/androidTest/assets/split_changes_flag_set-2.json b/android-client-main/src/androidTest/assets/split_changes_flag_set-2.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/split_changes_flag_set-2.json rename to android-client-main/src/androidTest/assets/split_changes_flag_set-2.json diff --git a/android-client-main/src/androidTest/androidTest/assets/split_changes_imp_toggle.json b/android-client-main/src/androidTest/assets/split_changes_imp_toggle.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/split_changes_imp_toggle.json rename to android-client-main/src/androidTest/assets/split_changes_imp_toggle.json diff --git a/android-client-main/src/androidTest/androidTest/assets/split_changes_large_segments-0.json b/android-client-main/src/androidTest/assets/split_changes_large_segments-0.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/split_changes_large_segments-0.json rename to android-client-main/src/androidTest/assets/split_changes_large_segments-0.json diff --git a/android-client-main/src/androidTest/androidTest/assets/split_changes_legacy.json b/android-client-main/src/androidTest/assets/split_changes_legacy.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/split_changes_legacy.json rename to android-client-main/src/androidTest/assets/split_changes_legacy.json diff --git a/android-client-main/src/androidTest/androidTest/assets/split_changes_rbs.json b/android-client-main/src/androidTest/assets/split_changes_rbs.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/split_changes_rbs.json rename to android-client-main/src/androidTest/assets/split_changes_rbs.json diff --git a/android-client-main/src/androidTest/androidTest/assets/split_changes_semver.json b/android-client-main/src/androidTest/assets/split_changes_semver.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/split_changes_semver.json rename to android-client-main/src/androidTest/assets/split_changes_semver.json diff --git a/android-client-main/src/androidTest/androidTest/assets/split_dependency.json b/android-client-main/src/androidTest/assets/split_dependency.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/split_dependency.json rename to android-client-main/src/androidTest/assets/split_dependency.json diff --git a/android-client-main/src/androidTest/androidTest/assets/splitchanges_int_test.json b/android-client-main/src/androidTest/assets/splitchanges_int_test.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/splitchanges_int_test.json rename to android-client-main/src/androidTest/assets/splitchanges_int_test.json diff --git a/android-client-main/src/androidTest/androidTest/assets/splitchanges_prerequisites.json b/android-client-main/src/androidTest/assets/splitchanges_prerequisites.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/splitchanges_prerequisites.json rename to android-client-main/src/androidTest/assets/splitchanges_prerequisites.json diff --git a/android-client-main/src/androidTest/androidTest/assets/splitchanges_unsupported_matcher.json b/android-client-main/src/androidTest/assets/splitchanges_unsupported_matcher.json similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/splitchanges_unsupported_matcher.json rename to android-client-main/src/androidTest/assets/splitchanges_unsupported_matcher.json diff --git a/android-client-main/src/androidTest/androidTest/assets/splits.yaml b/android-client-main/src/androidTest/assets/splits.yaml similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/splits.yaml rename to android-client-main/src/androidTest/assets/splits.yaml diff --git a/android-client-main/src/androidTest/androidTest/assets/splits1.properties b/android-client-main/src/androidTest/assets/splits1.properties similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/splits1.properties rename to android-client-main/src/androidTest/assets/splits1.properties diff --git a/android-client-main/src/androidTest/androidTest/assets/splits_test.properties b/android-client-main/src/androidTest/assets/splits_test.properties similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/splits_test.properties rename to android-client-main/src/androidTest/assets/splits_test.properties diff --git a/android-client-main/src/androidTest/androidTest/assets/splits_yml.yml b/android-client-main/src/androidTest/assets/splits_yml.yml similarity index 100% rename from android-client-main/src/androidTest/androidTest/assets/splits_yml.yml rename to android-client-main/src/androidTest/assets/splits_yml.yml diff --git a/android-client-main/src/androidTest/androidTest/java/fake/HttpClientMock.java b/android-client-main/src/androidTest/java/fake/HttpClientMock.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/HttpClientMock.java rename to android-client-main/src/androidTest/java/fake/HttpClientMock.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/HttpClientStub.java b/android-client-main/src/androidTest/java/fake/HttpClientStub.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/HttpClientStub.java rename to android-client-main/src/androidTest/java/fake/HttpClientStub.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/HttpRequestMock.java b/android-client-main/src/androidTest/java/fake/HttpRequestMock.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/HttpRequestMock.java rename to android-client-main/src/androidTest/java/fake/HttpRequestMock.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/HttpRequestStub.java b/android-client-main/src/androidTest/java/fake/HttpRequestStub.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/HttpRequestStub.java rename to android-client-main/src/androidTest/java/fake/HttpRequestStub.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/HttpResponseMock.java b/android-client-main/src/androidTest/java/fake/HttpResponseMock.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/HttpResponseMock.java rename to android-client-main/src/androidTest/java/fake/HttpResponseMock.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/HttpResponseMockDispatcher.java b/android-client-main/src/androidTest/java/fake/HttpResponseMockDispatcher.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/HttpResponseMockDispatcher.java rename to android-client-main/src/androidTest/java/fake/HttpResponseMockDispatcher.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/HttpResponseStub.java b/android-client-main/src/androidTest/java/fake/HttpResponseStub.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/HttpResponseStub.java rename to android-client-main/src/androidTest/java/fake/HttpResponseStub.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/HttpStreamRequestMock.java b/android-client-main/src/androidTest/java/fake/HttpStreamRequestMock.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/HttpStreamRequestMock.java rename to android-client-main/src/androidTest/java/fake/HttpStreamRequestMock.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/HttpStreamResponseMock.java b/android-client-main/src/androidTest/java/fake/HttpStreamResponseMock.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/HttpStreamResponseMock.java rename to android-client-main/src/androidTest/java/fake/HttpStreamResponseMock.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/LifecycleManagerStub.java b/android-client-main/src/androidTest/java/fake/LifecycleManagerStub.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/LifecycleManagerStub.java rename to android-client-main/src/androidTest/java/fake/LifecycleManagerStub.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/SplitClientStub.java b/android-client-main/src/androidTest/java/fake/SplitClientStub.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/SplitClientStub.java rename to android-client-main/src/androidTest/java/fake/SplitClientStub.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/SplitEventExecutorResourcesMock.java b/android-client-main/src/androidTest/java/fake/SplitEventExecutorResourcesMock.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/SplitEventExecutorResourcesMock.java rename to android-client-main/src/androidTest/java/fake/SplitEventExecutorResourcesMock.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/SyncManagerStub.java b/android-client-main/src/androidTest/java/fake/SyncManagerStub.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/SyncManagerStub.java rename to android-client-main/src/androidTest/java/fake/SyncManagerStub.java diff --git a/android-client-main/src/androidTest/androidTest/java/fake/SynchronizerSpyImpl.java b/android-client-main/src/androidTest/java/fake/SynchronizerSpyImpl.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/fake/SynchronizerSpyImpl.java rename to android-client-main/src/androidTest/java/fake/SynchronizerSpyImpl.java diff --git a/android-client-main/src/androidTest/androidTest/java/helper/DataSample.kt b/android-client-main/src/androidTest/java/helper/DataSample.kt similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/helper/DataSample.kt rename to android-client-main/src/androidTest/java/helper/DataSample.kt diff --git a/android-client-main/src/androidTest/androidTest/java/helper/DatabaseHelper.java b/android-client-main/src/androidTest/java/helper/DatabaseHelper.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/helper/DatabaseHelper.java rename to android-client-main/src/androidTest/java/helper/DatabaseHelper.java diff --git a/android-client-main/src/androidTest/androidTest/java/helper/FileHelper.java b/android-client-main/src/androidTest/java/helper/FileHelper.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/helper/FileHelper.java rename to android-client-main/src/androidTest/java/helper/FileHelper.java diff --git a/android-client-main/src/androidTest/androidTest/java/helper/ImpressionListenerHelper.java b/android-client-main/src/androidTest/java/helper/ImpressionListenerHelper.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/helper/ImpressionListenerHelper.java rename to android-client-main/src/androidTest/java/helper/ImpressionListenerHelper.java diff --git a/android-client-main/src/androidTest/androidTest/java/helper/IntegrationHelper.java b/android-client-main/src/androidTest/java/helper/IntegrationHelper.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/helper/IntegrationHelper.java rename to android-client-main/src/androidTest/java/helper/IntegrationHelper.java diff --git a/android-client-main/src/androidTest/androidTest/java/helper/SplitEventTaskHelper.java b/android-client-main/src/androidTest/java/helper/SplitEventTaskHelper.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/helper/SplitEventTaskHelper.java rename to android-client-main/src/androidTest/java/helper/SplitEventTaskHelper.java diff --git a/android-client-main/src/androidTest/androidTest/java/helper/TestableSplitConfigBuilder.java b/android-client-main/src/androidTest/java/helper/TestableSplitConfigBuilder.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/helper/TestableSplitConfigBuilder.java rename to android-client-main/src/androidTest/java/helper/TestableSplitConfigBuilder.java diff --git a/android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java b/android-client-main/src/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java rename to android-client-main/src/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java b/android-client-main/src/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java rename to android-client-main/src/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java b/android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java rename to android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java b/android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java rename to android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java b/android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java rename to android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java b/android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java rename to android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/database/AttributesDaoTest.java b/android-client-main/src/androidTest/java/tests/database/AttributesDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/database/AttributesDaoTest.java rename to android-client-main/src/androidTest/java/tests/database/AttributesDaoTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/database/DatabaseInitializationTest.java b/android-client-main/src/androidTest/java/tests/database/DatabaseInitializationTest.java similarity index 94% rename from android-client-main/src/androidTest/androidTest/java/tests/database/DatabaseInitializationTest.java rename to android-client-main/src/androidTest/java/tests/database/DatabaseInitializationTest.java index a0cac7e48..96e8ac851 100644 --- a/android-client-main/src/androidTest/androidTest/java/tests/database/DatabaseInitializationTest.java +++ b/android-client-main/src/androidTest/java/tests/database/DatabaseInitializationTest.java @@ -8,6 +8,7 @@ import androidx.test.platform.app.InstrumentationRegistry; +import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -20,6 +21,7 @@ import fake.HttpResponseMock; import fake.HttpResponseMockDispatcher; import fake.HttpStreamResponseMock; +import helper.DatabaseHelper; import helper.IntegrationHelper; import io.split.android.client.SplitClientConfig; import io.split.android.client.SplitFactory; @@ -34,6 +36,11 @@ public class DatabaseInitializationTest { @Before public void setUp() throws IOException { mContext = InstrumentationRegistry.getInstrumentation().getContext(); + // clear package data + String[] dbList = getDbList(mContext); + for (String db : dbList) { + DatabaseHelper.removeDatabaseFile(db); + } mHttpClientMock = new HttpClientMock(new HttpResponseMockDispatcher() { @Override public HttpResponseMock getResponse(URI uri, HttpMethod method, String body) { @@ -188,6 +195,10 @@ private static String[] getDbList(Context context) { throw new RuntimeException(e); } return Arrays.stream(context.databaseList()) +// .map(db -> { +// System.out.println("DB name: " + db); +// return db; +// }) .filter(db -> !db.endsWith("-journal") && !db.endsWith("-wal") && !db.endsWith("-shm")) .toArray(String[]::new); } diff --git a/android-client-main/src/androidTest/androidTest/java/tests/database/GeneralInfoDaoTest.java b/android-client-main/src/androidTest/java/tests/database/GeneralInfoDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/database/GeneralInfoDaoTest.java rename to android-client-main/src/androidTest/java/tests/database/GeneralInfoDaoTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/database/GenericDaoTest.java b/android-client-main/src/androidTest/java/tests/database/GenericDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/database/GenericDaoTest.java rename to android-client-main/src/androidTest/java/tests/database/GenericDaoTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/database/ImpressionDaoTest.java b/android-client-main/src/androidTest/java/tests/database/ImpressionDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/database/ImpressionDaoTest.java rename to android-client-main/src/androidTest/java/tests/database/ImpressionDaoTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java b/android-client-main/src/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java rename to android-client-main/src/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/database/MyLargeSegmentDaoTest.java b/android-client-main/src/androidTest/java/tests/database/MyLargeSegmentDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/database/MyLargeSegmentDaoTest.java rename to android-client-main/src/androidTest/java/tests/database/MyLargeSegmentDaoTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/database/MySegmentDaoTest.java b/android-client-main/src/androidTest/java/tests/database/MySegmentDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/database/MySegmentDaoTest.java rename to android-client-main/src/androidTest/java/tests/database/MySegmentDaoTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java b/android-client-main/src/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java rename to android-client-main/src/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/database/SplitDaoTest.java b/android-client-main/src/androidTest/java/tests/database/SplitDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/database/SplitDaoTest.java rename to android-client-main/src/androidTest/java/tests/database/SplitDaoTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/database/TrackDaoTest.java b/android-client-main/src/androidTest/java/tests/database/TrackDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/database/TrackDaoTest.java rename to android-client-main/src/androidTest/java/tests/database/TrackDaoTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/database/UniqueKeysDaoTest.java b/android-client-main/src/androidTest/java/tests/database/UniqueKeysDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/database/UniqueKeysDaoTest.java rename to android-client-main/src/androidTest/java/tests/database/UniqueKeysDaoTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/FlagsSpecInRequestTest.java b/android-client-main/src/androidTest/java/tests/integration/FlagsSpecInRequestTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/FlagsSpecInRequestTest.java rename to android-client-main/src/androidTest/java/tests/integration/FlagsSpecInRequestTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/InitialChangeNumberTest.java b/android-client-main/src/androidTest/java/tests/integration/InitialChangeNumberTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/InitialChangeNumberTest.java rename to android-client-main/src/androidTest/java/tests/integration/InitialChangeNumberTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/IntegrationTest.java b/android-client-main/src/androidTest/java/tests/integration/IntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/IntegrationTest.java rename to android-client-main/src/androidTest/java/tests/integration/IntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/LifecyleOnBGTest.java b/android-client-main/src/androidTest/java/tests/integration/LifecyleOnBGTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/LifecyleOnBGTest.java rename to android-client-main/src/androidTest/java/tests/integration/LifecyleOnBGTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/MySegmentUpdatedTest.java b/android-client-main/src/androidTest/java/tests/integration/MySegmentUpdatedTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/MySegmentUpdatedTest.java rename to android-client-main/src/androidTest/java/tests/integration/MySegmentUpdatedTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/MySegmentsServerErrorTest.java b/android-client-main/src/androidTest/java/tests/integration/MySegmentsServerErrorTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/MySegmentsServerErrorTest.java rename to android-client-main/src/androidTest/java/tests/integration/MySegmentsServerErrorTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/ProxyFactoryTest.java b/android-client-main/src/androidTest/java/tests/integration/ProxyFactoryTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/ProxyFactoryTest.java rename to android-client-main/src/androidTest/java/tests/integration/ProxyFactoryTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/SingleSyncTest.java b/android-client-main/src/androidTest/java/tests/integration/SingleSyncTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/SingleSyncTest.java rename to android-client-main/src/androidTest/java/tests/integration/SingleSyncTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java b/android-client-main/src/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java rename to android-client-main/src/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/SplitChangesServerErrorTest.java b/android-client-main/src/androidTest/java/tests/integration/SplitChangesServerErrorTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/SplitChangesServerErrorTest.java rename to android-client-main/src/androidTest/java/tests/integration/SplitChangesServerErrorTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/SplitChangesTest.java b/android-client-main/src/androidTest/java/tests/integration/SplitChangesTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/SplitChangesTest.java rename to android-client-main/src/androidTest/java/tests/integration/SplitChangesTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java b/android-client-main/src/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java rename to android-client-main/src/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java b/android-client-main/src/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java rename to android-client-main/src/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java b/android-client-main/src/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java rename to android-client-main/src/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/TrackTest.java b/android-client-main/src/androidTest/java/tests/integration/TrackTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/TrackTest.java rename to android-client-main/src/androidTest/java/tests/integration/TrackTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java b/android-client-main/src/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java rename to android-client-main/src/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/encryption/EncryptionTest.java b/android-client-main/src/androidTest/java/tests/integration/encryption/EncryptionTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/encryption/EncryptionTest.java rename to android-client-main/src/androidTest/java/tests/integration/encryption/EncryptionTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java b/android-client-main/src/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java rename to android-client-main/src/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/init/InitializationTest.java b/android-client-main/src/androidTest/java/tests/integration/init/InitializationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/init/InitializationTest.java rename to android-client-main/src/androidTest/java/tests/integration/init/InitializationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java b/android-client-main/src/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java rename to android-client-main/src/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java b/android-client-main/src/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java rename to android-client-main/src/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java b/android-client-main/src/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java rename to android-client-main/src/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/PrerequisitesTest.java b/android-client-main/src/androidTest/java/tests/integration/matcher/PrerequisitesTest.java similarity index 99% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/PrerequisitesTest.java rename to android-client-main/src/androidTest/java/tests/integration/matcher/PrerequisitesTest.java index 9a34f73c9..8701e460a 100644 --- a/android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/PrerequisitesTest.java +++ b/android-client-main/src/androidTest/java/tests/integration/matcher/PrerequisitesTest.java @@ -253,4 +253,3 @@ private String loadSplitChanges() { return IntegrationHelper.loadSplitChanges(mContext, "splitchanges_prerequisites.json"); } } - diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/SemverMatcherTest.java b/android-client-main/src/androidTest/java/tests/integration/matcher/SemverMatcherTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/SemverMatcherTest.java rename to android-client-main/src/androidTest/java/tests/integration/matcher/SemverMatcherTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java b/android-client-main/src/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java rename to android-client-main/src/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/pin/CertPinningTest.java b/android-client-main/src/androidTest/java/tests/integration/pin/CertPinningTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/pin/CertPinningTest.java rename to android-client-main/src/androidTest/java/tests/integration/pin/CertPinningTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java b/android-client-main/src/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java rename to android-client-main/src/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java b/android-client-main/src/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java rename to android-client-main/src/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java b/android-client-main/src/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java rename to android-client-main/src/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java b/android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java rename to android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java b/android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java rename to android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java b/android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java rename to android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java b/android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java rename to android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java b/android-client-main/src/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java rename to android-client-main/src/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java b/android-client-main/src/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java rename to android-client-main/src/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java b/android-client-main/src/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java rename to android-client-main/src/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java b/android-client-main/src/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java rename to android-client-main/src/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/shared/TestingData.java b/android-client-main/src/androidTest/java/tests/integration/shared/TestingData.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/shared/TestingData.java rename to android-client-main/src/androidTest/java/tests/integration/shared/TestingData.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/shared/TestingHelper.java b/android-client-main/src/androidTest/java/tests/integration/shared/TestingHelper.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/shared/TestingHelper.java rename to android-client-main/src/androidTest/java/tests/integration/shared/TestingHelper.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/AblyErrorTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/AblyErrorTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/AblyErrorTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/AblyErrorTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/ControlTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/ControlTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/ControlTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/ControlTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java b/android-client-main/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/OccupancyTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/OccupancyTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/OccupancyTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/OccupancyTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java b/android-client-main/src/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java rename to android-client-main/src/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java b/android-client-main/src/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java rename to android-client-main/src/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java b/android-client-main/src/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java rename to android-client-main/src/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java b/android-client-main/src/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java rename to android-client-main/src/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java b/android-client-main/src/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java rename to android-client-main/src/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt b/android-client-main/src/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt rename to android-client-main/src/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt b/android-client-main/src/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt rename to android-client-main/src/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt diff --git a/android-client-main/src/androidTest/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt b/android-client-main/src/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt rename to android-client-main/src/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt diff --git a/android-client-main/src/androidTest/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java b/android-client-main/src/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java rename to android-client-main/src/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/localhost/LocalhostTest.java b/android-client-main/src/androidTest/java/tests/localhost/LocalhostTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/localhost/LocalhostTest.java rename to android-client-main/src/androidTest/java/tests/localhost/LocalhostTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/service/CompressionTest.java b/android-client-main/src/androidTest/java/tests/service/CompressionTest.java similarity index 99% rename from android-client-main/src/androidTest/androidTest/java/tests/service/CompressionTest.java rename to android-client-main/src/androidTest/java/tests/service/CompressionTest.java index 6d1bd87fb..1d5dbd15c 100644 --- a/android-client-main/src/androidTest/androidTest/java/tests/service/CompressionTest.java +++ b/android-client-main/src/androidTest/java/tests/service/CompressionTest.java @@ -126,5 +126,3 @@ private List loadFileContent() { return Arrays.asList(content.split("\n")); } } - - diff --git a/android-client-main/src/androidTest/androidTest/java/tests/service/EventsManagerTest.java b/android-client-main/src/androidTest/java/tests/service/EventsManagerTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/service/EventsManagerTest.java rename to android-client-main/src/androidTest/java/tests/service/EventsManagerTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/service/EventsRequestTest.java b/android-client-main/src/androidTest/java/tests/service/EventsRequestTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/service/EventsRequestTest.java rename to android-client-main/src/androidTest/java/tests/service/EventsRequestTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/service/ImpressionsRequestTest.java b/android-client-main/src/androidTest/java/tests/service/ImpressionsRequestTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/service/ImpressionsRequestTest.java rename to android-client-main/src/androidTest/java/tests/service/ImpressionsRequestTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java b/android-client-main/src/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java rename to android-client-main/src/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/service/SdkUpdatePollingTest.java b/android-client-main/src/androidTest/java/tests/service/SdkUpdatePollingTest.java similarity index 99% rename from android-client-main/src/androidTest/androidTest/java/tests/service/SdkUpdatePollingTest.java rename to android-client-main/src/androidTest/java/tests/service/SdkUpdatePollingTest.java index e04afdbe4..178d2da99 100644 --- a/android-client-main/src/androidTest/androidTest/java/tests/service/SdkUpdatePollingTest.java +++ b/android-client-main/src/androidTest/java/tests/service/SdkUpdatePollingTest.java @@ -382,4 +382,4 @@ private Split parseEntity(SplitEntity entity) { return Json.fromJson(entity.getBody(), Split.class); } -} \ No newline at end of file +} diff --git a/android-client-main/src/androidTest/androidTest/java/tests/service/SseJwtTokenParserTest.java b/android-client-main/src/androidTest/java/tests/service/SseJwtTokenParserTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/service/SseJwtTokenParserTest.java rename to android-client-main/src/androidTest/java/tests/service/SseJwtTokenParserTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/service/UniqueKeysIntegrationTest.java b/android-client-main/src/androidTest/java/tests/service/UniqueKeysIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/service/UniqueKeysIntegrationTest.java rename to android-client-main/src/androidTest/java/tests/service/UniqueKeysIntegrationTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/service/UrlSanitizerTest.java b/android-client-main/src/androidTest/java/tests/service/UrlSanitizerTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/service/UrlSanitizerTest.java rename to android-client-main/src/androidTest/java/tests/service/UrlSanitizerTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/GeneralInfoStorageTest.java b/android-client-main/src/androidTest/java/tests/storage/GeneralInfoStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/GeneralInfoStorageTest.java rename to android-client-main/src/androidTest/java/tests/storage/GeneralInfoStorageTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java b/android-client-main/src/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java rename to android-client-main/src/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/LoadSplitTaskTest.java b/android-client-main/src/androidTest/java/tests/storage/LoadSplitTaskTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/LoadSplitTaskTest.java rename to android-client-main/src/androidTest/java/tests/storage/LoadSplitTaskTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/MySegmentsStorageTest.java b/android-client-main/src/androidTest/java/tests/storage/MySegmentsStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/MySegmentsStorageTest.java rename to android-client-main/src/androidTest/java/tests/storage/MySegmentsStorageTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentEventStorageTest.java b/android-client-main/src/androidTest/java/tests/storage/PersistentEventStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentEventStorageTest.java rename to android-client-main/src/androidTest/java/tests/storage/PersistentEventStorageTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java b/android-client-main/src/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java rename to android-client-main/src/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentImpressionStorageTest.java b/android-client-main/src/androidTest/java/tests/storage/PersistentImpressionStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentImpressionStorageTest.java rename to android-client-main/src/androidTest/java/tests/storage/PersistentImpressionStorageTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java b/android-client-main/src/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java rename to android-client-main/src/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java b/android-client-main/src/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java rename to android-client-main/src/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentSplitsStorageTest.java b/android-client-main/src/androidTest/java/tests/storage/PersistentSplitsStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/PersistentSplitsStorageTest.java rename to android-client-main/src/androidTest/java/tests/storage/PersistentSplitsStorageTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/SplitsStorageTest.java b/android-client-main/src/androidTest/java/tests/storage/SplitsStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/SplitsStorageTest.java rename to android-client-main/src/androidTest/java/tests/storage/SplitsStorageTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/CBCCipherTest.kt b/android-client-main/src/androidTest/java/tests/storage/cipher/CBCCipherTest.kt similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/CBCCipherTest.kt rename to android-client-main/src/androidTest/java/tests/storage/cipher/CBCCipherTest.kt diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/KeyManagerTest.java b/android-client-main/src/androidTest/java/tests/storage/cipher/KeyManagerTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/KeyManagerTest.java rename to android-client-main/src/androidTest/java/tests/storage/cipher/KeyManagerTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java b/android-client-main/src/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java rename to android-client-main/src/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java b/android-client-main/src/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java rename to android-client-main/src/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/workmanager/WMWorkersSetupTest.java b/android-client-main/src/androidTest/java/tests/workmanager/WMWorkersSetupTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/workmanager/WMWorkersSetupTest.java rename to android-client-main/src/androidTest/java/tests/workmanager/WMWorkersSetupTest.java diff --git a/android-client-main/src/androidTest/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java b/android-client-main/src/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java similarity index 100% rename from android-client-main/src/androidTest/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java rename to android-client-main/src/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java diff --git a/android-client-main/src/sharedTest/java/io/split/android/client/utils/logger/LogPrinterStub.java b/android-client-main/src/sharedTest/java/io/split/android/client/utils/logger/LogPrinterStub.java new file mode 100644 index 000000000..e8c53ef3d --- /dev/null +++ b/android-client-main/src/sharedTest/java/io/split/android/client/utils/logger/LogPrinterStub.java @@ -0,0 +1,66 @@ +package io.split.android.client.utils.logger; + +import android.util.Log; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentLinkedDeque; + +public class LogPrinterStub implements LogPrinter { + private final Set calls = new HashSet<>(); + private final Map> logs = new ConcurrentHashMap<>(); + + public LogPrinterStub() { + // Initialize for all Android log levels: VERBOSE(2) .. ASSERT(7) + for (int level = Log.VERBOSE; level <= Log.ASSERT; level++) { + logs.put(level, new ConcurrentLinkedDeque<>()); + } + } + + @Override + public void v(String tag, String msg, Throwable tr) { + logs.get(Log.VERBOSE).add(msg); + calls.add(Log.VERBOSE); + } + + @Override + public void d(String tag, String msg, Throwable tr) { + logs.get(Log.DEBUG).add(msg); + calls.add(Log.DEBUG); + } + + @Override + public void i(String tag, String msg, Throwable tr) { + logs.get(Log.INFO).add(msg); + calls.add(Log.INFO); + } + + @Override + public void w(String tag, String msg, Throwable tr) { + logs.get(Log.WARN).add(msg); + calls.add(Log.WARN); + } + + @Override + public void e(String tag, String msg, Throwable tr) { + logs.get(Log.ERROR).add(msg); + calls.add(Log.ERROR); + } + + @Override + public void wtf(String tag, String msg, Throwable tr) { + logs.get(Log.ASSERT).add(msg); + calls.add(Log.ASSERT); + } + + public boolean isCalled(Integer type) { + return calls.contains(type); + } + + public Map> getLoggedMessages() { + return new HashMap<>(logs); + } +} diff --git a/android-client-main/src/test/test/java/android/util/Base64.java b/android-client-main/src/test/java/android/util/Base64.java similarity index 100% rename from android-client-main/src/test/test/java/android/util/Base64.java rename to android-client-main/src/test/java/android/util/Base64.java diff --git a/android-client-main/src/test/test/java/io/split/android/BCryptTest.java b/android-client-main/src/test/java/io/split/android/BCryptTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/BCryptTest.java rename to android-client-main/src/test/java/io/split/android/BCryptTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/FolderForApiKeyTest.java b/android-client-main/src/test/java/io/split/android/FolderForApiKeyTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/FolderForApiKeyTest.java rename to android-client-main/src/test/java/io/split/android/FolderForApiKeyTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/SplitConfigurationsParsingTests.java b/android-client-main/src/test/java/io/split/android/SplitConfigurationsParsingTests.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/SplitConfigurationsParsingTests.java rename to android-client-main/src/test/java/io/split/android/SplitConfigurationsParsingTests.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/DestroyerTest.java b/android-client-main/src/test/java/io/split/android/client/DestroyerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/DestroyerTest.java rename to android-client-main/src/test/java/io/split/android/client/DestroyerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/EvaluationOptionsTest.java b/android-client-main/src/test/java/io/split/android/client/EvaluationOptionsTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/EvaluationOptionsTest.java rename to android-client-main/src/test/java/io/split/android/client/EvaluationOptionsTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/FactoryMonitorTest.java b/android-client-main/src/test/java/io/split/android/client/FactoryMonitorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/FactoryMonitorTest.java rename to android-client-main/src/test/java/io/split/android/client/FactoryMonitorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/FileStorageTest.java b/android-client-main/src/test/java/io/split/android/client/FileStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/FileStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/FileStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/FilterBuilderTest.java b/android-client-main/src/test/java/io/split/android/client/FilterBuilderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/FilterBuilderTest.java rename to android-client-main/src/test/java/io/split/android/client/FilterBuilderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/FilterGrouperTest.java b/android-client-main/src/test/java/io/split/android/client/FilterGrouperTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/FilterGrouperTest.java rename to android-client-main/src/test/java/io/split/android/client/FilterGrouperTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/FlagSetsFilterImplTest.java b/android-client-main/src/test/java/io/split/android/client/FlagSetsFilterImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/FlagSetsFilterImplTest.java rename to android-client-main/src/test/java/io/split/android/client/FlagSetsFilterImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/ImpressionsModeTest.java b/android-client-main/src/test/java/io/split/android/client/ImpressionsModeTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/ImpressionsModeTest.java rename to android-client-main/src/test/java/io/split/android/client/ImpressionsModeTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/MySegmentsUriBuildersTest.java b/android-client-main/src/test/java/io/split/android/client/MySegmentsUriBuildersTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/MySegmentsUriBuildersTest.java rename to android-client-main/src/test/java/io/split/android/client/MySegmentsUriBuildersTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/RolloutCacheConfigurationTest.java b/android-client-main/src/test/java/io/split/android/client/RolloutCacheConfigurationTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/RolloutCacheConfigurationTest.java rename to android-client-main/src/test/java/io/split/android/client/RolloutCacheConfigurationTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/SplitClientConfigTest.java b/android-client-main/src/test/java/io/split/android/client/SplitClientConfigTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/SplitClientConfigTest.java rename to android-client-main/src/test/java/io/split/android/client/SplitClientConfigTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/SplitClientImplAttributesTest.java b/android-client-main/src/test/java/io/split/android/client/SplitClientImplAttributesTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/SplitClientImplAttributesTest.java rename to android-client-main/src/test/java/io/split/android/client/SplitClientImplAttributesTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/SplitClientImplBaseTest.java b/android-client-main/src/test/java/io/split/android/client/SplitClientImplBaseTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/SplitClientImplBaseTest.java rename to android-client-main/src/test/java/io/split/android/client/SplitClientImplBaseTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java b/android-client-main/src/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java rename to android-client-main/src/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java b/android-client-main/src/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java rename to android-client-main/src/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/SplitClientImplLegacyTest.java b/android-client-main/src/test/java/io/split/android/client/SplitClientImplLegacyTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/SplitClientImplLegacyTest.java rename to android-client-main/src/test/java/io/split/android/client/SplitClientImplLegacyTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/SplitFactoryHelperTest.kt b/android-client-main/src/test/java/io/split/android/client/SplitFactoryHelperTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/SplitFactoryHelperTest.kt rename to android-client-main/src/test/java/io/split/android/client/SplitFactoryHelperTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/SplitManagerImplTest.java b/android-client-main/src/test/java/io/split/android/client/SplitManagerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/SplitManagerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/SplitManagerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/SyncConfigTest.java b/android-client-main/src/test/java/io/split/android/client/SyncConfigTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/SyncConfigTest.java rename to android-client-main/src/test/java/io/split/android/client/SyncConfigTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/TreatmentLabelsTest.java b/android-client-main/src/test/java/io/split/android/client/TreatmentLabelsTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/TreatmentLabelsTest.java rename to android-client-main/src/test/java/io/split/android/client/TreatmentLabelsTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java b/android-client-main/src/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java rename to android-client-main/src/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java b/android-client-main/src/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java rename to android-client-main/src/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java b/android-client-main/src/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java rename to android-client-main/src/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerTest.java b/android-client-main/src/test/java/io/split/android/client/TreatmentManagerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerTest.java rename to android-client-main/src/test/java/io/split/android/client/TreatmentManagerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java b/android-client-main/src/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java rename to android-client-main/src/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/UserConsentManagerTest.java b/android-client-main/src/test/java/io/split/android/client/UserConsentManagerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/UserConsentManagerTest.java rename to android-client-main/src/test/java/io/split/android/client/UserConsentManagerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java b/android-client-main/src/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java b/android-client-main/src/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/dtos/SplitDeserializationTest.java b/android-client-main/src/test/java/io/split/android/client/dtos/SplitDeserializationTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/dtos/SplitDeserializationTest.java rename to android-client-main/src/test/java/io/split/android/client/dtos/SplitDeserializationTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java b/android-client-main/src/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java rename to android-client-main/src/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/events/EventsManagerTest.java b/android-client-main/src/test/java/io/split/android/client/events/EventsManagerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/events/EventsManagerTest.java rename to android-client-main/src/test/java/io/split/android/client/events/EventsManagerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/events/PropertyValidatorTest.java b/android-client-main/src/test/java/io/split/android/client/events/PropertyValidatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/events/PropertyValidatorTest.java rename to android-client-main/src/test/java/io/split/android/client/events/PropertyValidatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java b/android-client-main/src/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java b/android-client-main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java rename to android-client-main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java b/android-client-main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java rename to android-client-main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java b/android-client-main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java rename to android-client-main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java b/android-client-main/src/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java rename to android-client-main/src/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java b/android-client-main/src/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java rename to android-client-main/src/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java b/android-client-main/src/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java rename to android-client-main/src/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java b/android-client-main/src/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java b/android-client-main/src/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java b/android-client-main/src/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java rename to android-client-main/src/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java b/android-client-main/src/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java rename to android-client-main/src/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java b/android-client-main/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java rename to android-client-main/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java b/android-client-main/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java rename to android-client-main/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java b/android-client-main/src/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java rename to android-client-main/src/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java b/android-client-main/src/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java b/android-client-main/src/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java rename to android-client-main/src/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java b/android-client-main/src/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java rename to android-client-main/src/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/CertificateCheckerImplTest.java b/android-client-main/src/test/java/io/split/android/client/network/CertificateCheckerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/CertificateCheckerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/network/CertificateCheckerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java b/android-client-main/src/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java rename to android-client-main/src/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java b/android-client-main/src/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java rename to android-client-main/src/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/ChainCleanerImplTest.java b/android-client-main/src/test/java/io/split/android/client/network/ChainCleanerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/ChainCleanerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/network/ChainCleanerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java b/android-client-main/src/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java rename to android-client-main/src/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/HttpClientTest.java b/android-client-main/src/test/java/io/split/android/client/network/HttpClientTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/HttpClientTest.java rename to android-client-main/src/test/java/io/split/android/client/network/HttpClientTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java b/android-client-main/src/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java rename to android-client-main/src/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java b/android-client-main/src/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java rename to android-client-main/src/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/HttpRequestHelperTest.java b/android-client-main/src/test/java/io/split/android/client/network/HttpRequestHelperTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/HttpRequestHelperTest.java rename to android-client-main/src/test/java/io/split/android/client/network/HttpRequestHelperTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java b/android-client-main/src/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java rename to android-client-main/src/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/HttpStreamResponseTest.java b/android-client-main/src/test/java/io/split/android/client/network/HttpStreamResponseTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/HttpStreamResponseTest.java rename to android-client-main/src/test/java/io/split/android/client/network/HttpStreamResponseTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/PinEncoderImplTest.java b/android-client-main/src/test/java/io/split/android/client/network/PinEncoderImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/PinEncoderImplTest.java rename to android-client-main/src/test/java/io/split/android/client/network/PinEncoderImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/ProxyConfigurationTest.java b/android-client-main/src/test/java/io/split/android/client/network/ProxyConfigurationTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/ProxyConfigurationTest.java rename to android-client-main/src/test/java/io/split/android/client/network/ProxyConfigurationTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java b/android-client-main/src/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java rename to android-client-main/src/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/RawHttpResponseParserTest.java b/android-client-main/src/test/java/io/split/android/client/network/RawHttpResponseParserTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/RawHttpResponseParserTest.java rename to android-client-main/src/test/java/io/split/android/client/network/RawHttpResponseParserTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/SdkTargetPathTest.java b/android-client-main/src/test/java/io/split/android/client/network/SdkTargetPathTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/SdkTargetPathTest.java rename to android-client-main/src/test/java/io/split/android/client/network/SdkTargetPathTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/SplitAuthenticatorTest.java b/android-client-main/src/test/java/io/split/android/client/network/SplitAuthenticatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/SplitAuthenticatorTest.java rename to android-client-main/src/test/java/io/split/android/client/network/SplitAuthenticatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java b/android-client-main/src/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java rename to android-client-main/src/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java b/android-client-main/src/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java rename to android-client-main/src/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java b/android-client-main/src/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java rename to android-client-main/src/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/network/TrustManagerProviderTest.java b/android-client-main/src/test/java/io/split/android/client/network/TrustManagerProviderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/network/TrustManagerProviderTest.java rename to android-client-main/src/test/java/io/split/android/client/network/TrustManagerProviderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/EventsRecorderTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/EventsRecorderTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/EventsRecorderTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/EventsRecorderTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/HttpFetcherTest.java b/android-client-main/src/test/java/io/split/android/client/service/HttpFetcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/HttpFetcherTest.java rename to android-client-main/src/test/java/io/split/android/client/service/HttpFetcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/HttpRecorderTest.java b/android-client-main/src/test/java/io/split/android/client/service/HttpRecorderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/HttpRecorderTest.java rename to android-client-main/src/test/java/io/split/android/client/service/HttpRecorderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/ImpressionHasherTest.java b/android-client-main/src/test/java/io/split/android/client/service/ImpressionHasherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/ImpressionHasherTest.java rename to android-client-main/src/test/java/io/split/android/client/service/ImpressionHasherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsCounterTest.java b/android-client-main/src/test/java/io/split/android/client/service/ImpressionsCounterTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsCounterTest.java rename to android-client-main/src/test/java/io/split/android/client/service/ImpressionsCounterTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java b/android-client-main/src/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java rename to android-client-main/src/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/LoadSplitsTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/LoadSplitsTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/LoadSplitsTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/LoadSplitsTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java b/android-client-main/src/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/SplitKillTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/SplitKillTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/SplitKillTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/SplitKillTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/SplitSyncTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/SplitSyncTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/SplitSyncTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/SplitSyncTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/SplitTaskExecutorTest.java b/android-client-main/src/test/java/io/split/android/client/service/SplitTaskExecutorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/SplitTaskExecutorTest.java rename to android-client-main/src/test/java/io/split/android/client/service/SplitTaskExecutorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/SplitUpdateTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/SplitUpdateTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/SplitUpdateTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/SplitUpdateTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java b/android-client-main/src/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/SplitsSyncHelperTest.java b/android-client-main/src/test/java/io/split/android/client/service/SplitsSyncHelperTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/SplitsSyncHelperTest.java rename to android-client-main/src/test/java/io/split/android/client/service/SplitsSyncHelperTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/SynchronizerTest.java b/android-client-main/src/test/java/io/split/android/client/service/SynchronizerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/SynchronizerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/SynchronizerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java b/android-client-main/src/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/events/EventsTrackerTest.java b/android-client-main/src/test/java/io/split/android/client/service/events/EventsTrackerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/events/EventsTrackerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/events/EventsTrackerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java b/android-client-main/src/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java rename to android-client-main/src/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java b/android-client-main/src/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java rename to android-client-main/src/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java b/android-client-main/src/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java rename to android-client-main/src/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt b/android-client-main/src/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt rename to android-client-main/src/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java b/android-client-main/src/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java b/android-client-main/src/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java rename to android-client-main/src/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt b/android-client-main/src/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt rename to android-client-main/src/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java b/android-client-main/src/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt b/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt rename to android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt b/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt rename to android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt b/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt rename to android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt b/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt rename to android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt b/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt rename to android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt b/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt rename to android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java b/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java rename to android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java b/android-client-main/src/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java b/android-client-main/src/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java rename to android-client-main/src/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java b/android-client-main/src/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java rename to android-client-main/src/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java b/android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java rename to android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java b/android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java rename to android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java b/android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java rename to android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java b/android-client-main/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java rename to android-client-main/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java b/android-client-main/src/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java rename to android-client-main/src/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java b/android-client-main/src/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java b/android-client-main/src/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java rename to android-client-main/src/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java b/android-client-main/src/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java rename to android-client-main/src/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java b/android-client-main/src/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java rename to android-client-main/src/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SseClientTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/SseClientTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SseClientTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/SseClientTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java b/android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java rename to android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt b/android-client-main/src/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt rename to android-client-main/src/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java b/android-client-main/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java rename to android-client-main/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java b/android-client-main/src/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java rename to android-client-main/src/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java b/android-client-main/src/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java rename to android-client-main/src/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java b/android-client-main/src/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java rename to android-client-main/src/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java b/android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java rename to android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java b/android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java rename to android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java b/android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java rename to android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java b/android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java rename to android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java b/android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java rename to android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java b/android-client-main/src/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java rename to android-client-main/src/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java b/android-client-main/src/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java b/android-client-main/src/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java b/android-client-main/src/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt b/android-client-main/src/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt rename to android-client-main/src/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt b/android-client-main/src/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt rename to android-client-main/src/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt b/android-client-main/src/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt rename to android-client-main/src/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt b/android-client-main/src/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt rename to android-client-main/src/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt b/android-client-main/src/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt rename to android-client-main/src/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt b/android-client-main/src/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt rename to android-client-main/src/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt b/android-client-main/src/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt rename to android-client-main/src/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java b/android-client-main/src/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java b/android-client-main/src/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java b/android-client-main/src/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/events/EventsStorageTest.java b/android-client-main/src/test/java/io/split/android/client/storage/events/EventsStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/events/EventsStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/events/EventsStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java b/android-client-main/src/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java b/android-client-main/src/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java b/android-client-main/src/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java b/android-client-main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java b/android-client-main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java b/android-client-main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java b/android-client-main/src/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java b/android-client-main/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java b/android-client-main/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java b/android-client-main/src/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java b/android-client-main/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java b/android-client-main/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java b/android-client-main/src/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java b/android-client-main/src/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java b/android-client-main/src/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/rbs/UpdaterTest.java b/android-client-main/src/test/java/io/split/android/client/storage/rbs/UpdaterTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/rbs/UpdaterTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/rbs/UpdaterTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java b/android-client-main/src/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java b/android-client-main/src/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java b/android-client-main/src/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java b/android-client-main/src/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java rename to android-client-main/src/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java b/android-client-main/src/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java rename to android-client-main/src/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java b/android-client-main/src/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java rename to android-client-main/src/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java b/android-client-main/src/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java rename to android-client-main/src/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java b/android-client-main/src/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java rename to android-client-main/src/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java b/android-client-main/src/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java rename to android-client-main/src/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java b/android-client-main/src/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java rename to android-client-main/src/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/utils/HttpProxySerializerTest.java b/android-client-main/src/test/java/io/split/android/client/utils/HttpProxySerializerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/utils/HttpProxySerializerTest.java rename to android-client-main/src/test/java/io/split/android/client/utils/HttpProxySerializerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/utils/JsonTest.java b/android-client-main/src/test/java/io/split/android/client/utils/JsonTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/utils/JsonTest.java rename to android-client-main/src/test/java/io/split/android/client/utils/JsonTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/utils/PartitionTest.java b/android-client-main/src/test/java/io/split/android/client/utils/PartitionTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/utils/PartitionTest.java rename to android-client-main/src/test/java/io/split/android/client/utils/PartitionTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/utils/RepeatTest.java b/android-client-main/src/test/java/io/split/android/client/utils/RepeatTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/utils/RepeatTest.java rename to android-client-main/src/test/java/io/split/android/client/utils/RepeatTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/utils/SplitClientImplFactory.java b/android-client-main/src/test/java/io/split/android/client/utils/SplitClientImplFactory.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/utils/SplitClientImplFactory.java rename to android-client-main/src/test/java/io/split/android/client/utils/SplitClientImplFactory.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java b/android-client-main/src/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java rename to android-client-main/src/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java b/android-client-main/src/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java rename to android-client-main/src/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java b/android-client-main/src/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java rename to android-client-main/src/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/validators/EventTypeNameHelper.java b/android-client-main/src/test/java/io/split/android/client/validators/EventTypeNameHelper.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/validators/EventTypeNameHelper.java rename to android-client-main/src/test/java/io/split/android/client/validators/EventTypeNameHelper.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/validators/EventValidatorTest.java b/android-client-main/src/test/java/io/split/android/client/validators/EventValidatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/validators/EventValidatorTest.java rename to android-client-main/src/test/java/io/split/android/client/validators/EventValidatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java b/android-client-main/src/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java rename to android-client-main/src/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/validators/KeyValidatorTest.java b/android-client-main/src/test/java/io/split/android/client/validators/KeyValidatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/validators/KeyValidatorTest.java rename to android-client-main/src/test/java/io/split/android/client/validators/KeyValidatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java b/android-client-main/src/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java rename to android-client-main/src/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/validators/SplitValidatorTest.java b/android-client-main/src/test/java/io/split/android/client/validators/SplitValidatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/validators/SplitValidatorTest.java rename to android-client-main/src/test/java/io/split/android/client/validators/SplitValidatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java b/android-client-main/src/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java rename to android-client-main/src/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java b/android-client-main/src/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java rename to android-client-main/src/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java b/android-client-main/src/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java rename to android-client-main/src/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/ConditionsTestUtil.java b/android-client-main/src/test/java/io/split/android/engine/ConditionsTestUtil.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/ConditionsTestUtil.java rename to android-client-main/src/test/java/io/split/android/engine/ConditionsTestUtil.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java b/android-client-main/src/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java rename to android-client-main/src/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/experiments/EvaluatorTest.java b/android-client-main/src/test/java/io/split/android/engine/experiments/EvaluatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/experiments/EvaluatorTest.java rename to android-client-main/src/test/java/io/split/android/engine/experiments/EvaluatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java b/android-client-main/src/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java rename to android-client-main/src/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java b/android-client-main/src/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java rename to android-client-main/src/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/experiments/SplitParserTest.java b/android-client-main/src/test/java/io/split/android/engine/experiments/SplitParserTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/experiments/SplitParserTest.java rename to android-client-main/src/test/java/io/split/android/engine/experiments/SplitParserTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java b/android-client-main/src/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java rename to android-client-main/src/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/TransformersTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/TransformersTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/TransformersTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/TransformersTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/SemverTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/semver/SemverTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/semver/SemverTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/semver/SemverTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java b/android-client-main/src/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java rename to android-client-main/src/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java b/android-client-main/src/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java rename to android-client-main/src/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/splitter/HashConsistencyTest.java b/android-client-main/src/test/java/io/split/android/engine/splitter/HashConsistencyTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/splitter/HashConsistencyTest.java rename to android-client-main/src/test/java/io/split/android/engine/splitter/HashConsistencyTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/splitter/HashingTest.java b/android-client-main/src/test/java/io/split/android/engine/splitter/HashingTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/splitter/HashingTest.java rename to android-client-main/src/test/java/io/split/android/engine/splitter/HashingTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/splitter/MyHash.java b/android-client-main/src/test/java/io/split/android/engine/splitter/MyHash.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/splitter/MyHash.java rename to android-client-main/src/test/java/io/split/android/engine/splitter/MyHash.java diff --git a/android-client-main/src/test/test/java/io/split/android/engine/splitter/SplitterTest.java b/android-client-main/src/test/java/io/split/android/engine/splitter/SplitterTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/engine/splitter/SplitterTest.java rename to android-client-main/src/test/java/io/split/android/engine/splitter/SplitterTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/fake/ExecutorServiceMock.java b/android-client-main/src/test/java/io/split/android/fake/ExecutorServiceMock.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/fake/ExecutorServiceMock.java rename to android-client-main/src/test/java/io/split/android/fake/ExecutorServiceMock.java diff --git a/android-client-main/src/test/test/java/io/split/android/fake/ImpressionListenerMock.java b/android-client-main/src/test/java/io/split/android/fake/ImpressionListenerMock.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/fake/ImpressionListenerMock.java rename to android-client-main/src/test/java/io/split/android/fake/ImpressionListenerMock.java diff --git a/android-client-main/src/test/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java b/android-client-main/src/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java rename to android-client-main/src/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java diff --git a/android-client-main/src/test/test/java/io/split/android/fake/SplitEventsManagerStub.java b/android-client-main/src/test/java/io/split/android/fake/SplitEventsManagerStub.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/fake/SplitEventsManagerStub.java rename to android-client-main/src/test/java/io/split/android/fake/SplitEventsManagerStub.java diff --git a/android-client-main/src/test/test/java/io/split/android/fake/SplitTaskExecutorStub.java b/android-client-main/src/test/java/io/split/android/fake/SplitTaskExecutorStub.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/fake/SplitTaskExecutorStub.java rename to android-client-main/src/test/java/io/split/android/fake/SplitTaskExecutorStub.java diff --git a/android-client-main/src/test/test/java/io/split/android/fake/SseClientMock.java b/android-client-main/src/test/java/io/split/android/fake/SseClientMock.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/fake/SseClientMock.java rename to android-client-main/src/test/java/io/split/android/fake/SseClientMock.java diff --git a/android-client-main/src/test/test/java/io/split/android/helpers/FileHelper.java b/android-client-main/src/test/java/io/split/android/helpers/FileHelper.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/helpers/FileHelper.java rename to android-client-main/src/test/java/io/split/android/helpers/FileHelper.java diff --git a/android-client-main/src/test/test/java/io/split/android/helpers/ResourcesFileStorage.java b/android-client-main/src/test/java/io/split/android/helpers/ResourcesFileStorage.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/helpers/ResourcesFileStorage.java rename to android-client-main/src/test/java/io/split/android/helpers/ResourcesFileStorage.java diff --git a/android-client-main/src/test/test/java/io/split/android/helpers/SplitHelper.java b/android-client-main/src/test/java/io/split/android/helpers/SplitHelper.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/helpers/SplitHelper.java rename to android-client-main/src/test/java/io/split/android/helpers/SplitHelper.java diff --git a/android-client-main/src/test/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java b/android-client-main/src/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java rename to android-client-main/src/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java diff --git a/android-client-main/src/test/test/java/io/split/android/http/URIBuilderTest.java b/android-client-main/src/test/java/io/split/android/http/URIBuilderTest.java similarity index 100% rename from android-client-main/src/test/test/java/io/split/android/http/URIBuilderTest.java rename to android-client-main/src/test/java/io/split/android/http/URIBuilderTest.java diff --git a/android-client-main/src/test/test/resources/README.txt b/android-client-main/src/test/resources/README.txt similarity index 100% rename from android-client-main/src/test/test/resources/README.txt rename to android-client-main/src/test/resources/README.txt diff --git a/android-client-main/src/test/test/resources/between_semver.csv b/android-client-main/src/test/resources/between_semver.csv similarity index 100% rename from android-client-main/src/test/test/resources/between_semver.csv rename to android-client-main/src/test/resources/between_semver.csv diff --git a/android-client-main/src/test/test/resources/equal_to_semver.csv b/android-client-main/src/test/resources/equal_to_semver.csv similarity index 100% rename from android-client-main/src/test/test/resources/equal_to_semver.csv rename to android-client-main/src/test/resources/equal_to_semver.csv diff --git a/android-client-main/src/test/test/resources/impressions_1.json b/android-client-main/src/test/resources/impressions_1.json similarity index 100% rename from android-client-main/src/test/test/resources/impressions_1.json rename to android-client-main/src/test/resources/impressions_1.json diff --git a/android-client-main/src/test/test/resources/invalid_semantic_versions.csv b/android-client-main/src/test/resources/invalid_semantic_versions.csv similarity index 100% rename from android-client-main/src/test/test/resources/invalid_semantic_versions.csv rename to android-client-main/src/test/resources/invalid_semantic_versions.csv diff --git a/android-client-main/src/test/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv b/android-client-main/src/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv similarity index 100% rename from android-client-main/src/test/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv rename to android-client-main/src/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv diff --git a/android-client-main/src/test/test/resources/legacy-hash-sample-data.csv b/android-client-main/src/test/resources/legacy-hash-sample-data.csv similarity index 100% rename from android-client-main/src/test/test/resources/legacy-hash-sample-data.csv rename to android-client-main/src/test/resources/legacy-hash-sample-data.csv diff --git a/android-client-main/src/test/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv b/android-client-main/src/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv similarity index 100% rename from android-client-main/src/test/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv rename to android-client-main/src/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv diff --git a/android-client-main/src/test/test/resources/murmur3-sample-data-non-alpha-numeric.csv b/android-client-main/src/test/resources/murmur3-sample-data-non-alpha-numeric.csv similarity index 100% rename from android-client-main/src/test/test/resources/murmur3-sample-data-non-alpha-numeric.csv rename to android-client-main/src/test/resources/murmur3-sample-data-non-alpha-numeric.csv diff --git a/android-client-main/src/test/test/resources/murmur3-sample-data-v2.csv b/android-client-main/src/test/resources/murmur3-sample-data-v2.csv similarity index 100% rename from android-client-main/src/test/test/resources/murmur3-sample-data-v2.csv rename to android-client-main/src/test/resources/murmur3-sample-data-v2.csv diff --git a/android-client-main/src/test/test/resources/murmur3-sample-data.csv b/android-client-main/src/test/resources/murmur3-sample-data.csv similarity index 100% rename from android-client-main/src/test/test/resources/murmur3-sample-data.csv rename to android-client-main/src/test/resources/murmur3-sample-data.csv diff --git a/android-client-main/src/test/test/resources/murmur3-sample-double-treatment-users.csv b/android-client-main/src/test/resources/murmur3-sample-double-treatment-users.csv similarity index 100% rename from android-client-main/src/test/test/resources/murmur3-sample-double-treatment-users.csv rename to android-client-main/src/test/resources/murmur3-sample-double-treatment-users.csv diff --git a/android-client-main/src/test/test/resources/murmur3_64_uuids.csv b/android-client-main/src/test/resources/murmur3_64_uuids.csv similarity index 100% rename from android-client-main/src/test/test/resources/murmur3_64_uuids.csv rename to android-client-main/src/test/resources/murmur3_64_uuids.csv diff --git a/android-client-main/src/test/test/resources/split_changes_1.json b/android-client-main/src/test/resources/split_changes_1.json similarity index 100% rename from android-client-main/src/test/test/resources/split_changes_1.json rename to android-client-main/src/test/resources/split_changes_1.json diff --git a/android-client-main/src/test/test/resources/split_changes_1_updated.json b/android-client-main/src/test/resources/split_changes_1_updated.json similarity index 100% rename from android-client-main/src/test/test/resources/split_changes_1_updated.json rename to android-client-main/src/test/resources/split_changes_1_updated.json diff --git a/android-client-main/src/test/test/resources/split_changes_legacy.json b/android-client-main/src/test/resources/split_changes_legacy.json similarity index 100% rename from android-client-main/src/test/test/resources/split_changes_legacy.json rename to android-client-main/src/test/resources/split_changes_legacy.json diff --git a/android-client-main/src/test/test/resources/split_changes_prerequisites.json b/android-client-main/src/test/resources/split_changes_prerequisites.json similarity index 100% rename from android-client-main/src/test/test/resources/split_changes_prerequisites.json rename to android-client-main/src/test/resources/split_changes_prerequisites.json diff --git a/android-client-main/src/test/test/resources/split_changes_small.json b/android-client-main/src/test/resources/split_changes_small.json similarity index 100% rename from android-client-main/src/test/test/resources/split_changes_small.json rename to android-client-main/src/test/resources/split_changes_small.json diff --git a/android-client-main/src/test/test/resources/split_changes_with_prerequisites.json b/android-client-main/src/test/resources/split_changes_with_prerequisites.json similarity index 100% rename from android-client-main/src/test/test/resources/split_changes_with_prerequisites.json rename to android-client-main/src/test/resources/split_changes_with_prerequisites.json diff --git a/android-client-main/src/test/test/resources/splits.yaml b/android-client-main/src/test/resources/splits.yaml similarity index 100% rename from android-client-main/src/test/test/resources/splits.yaml rename to android-client-main/src/test/resources/splits.yaml diff --git a/android-client-main/src/test/test/resources/splits_incorrect_value.yaml b/android-client-main/src/test/resources/splits_incorrect_value.yaml similarity index 100% rename from android-client-main/src/test/test/resources/splits_incorrect_value.yaml rename to android-client-main/src/test/resources/splits_incorrect_value.yaml diff --git a/android-client-main/src/test/test/resources/splits_missing_name.yaml b/android-client-main/src/test/resources/splits_missing_name.yaml similarity index 100% rename from android-client-main/src/test/test/resources/splits_missing_name.yaml rename to android-client-main/src/test/resources/splits_missing_name.yaml diff --git a/android-client-main/src/test/test/resources/splits_missing_treatment.yaml b/android-client-main/src/test/resources/splits_missing_treatment.yaml similarity index 100% rename from android-client-main/src/test/test/resources/splits_missing_treatment.yaml rename to android-client-main/src/test/resources/splits_missing_treatment.yaml diff --git a/android-client-main/src/test/test/resources/splits_no_yaml.yaml b/android-client-main/src/test/resources/splits_no_yaml.yaml similarity index 100% rename from android-client-main/src/test/test/resources/splits_no_yaml.yaml rename to android-client-main/src/test/resources/splits_no_yaml.yaml diff --git a/android-client-main/src/test/test/resources/tracks_1.json b/android-client-main/src/test/resources/tracks_1.json similarity index 100% rename from android-client-main/src/test/test/resources/tracks_1.json rename to android-client-main/src/test/resources/tracks_1.json diff --git a/android-client-main/src/test/test/resources/valid_semantic_versions.csv b/android-client-main/src/test/resources/valid_semantic_versions.csv similarity index 100% rename from android-client-main/src/test/test/resources/valid_semantic_versions.csv rename to android-client-main/src/test/resources/valid_semantic_versions.csv diff --git a/build.gradle b/build.gradle index 17fc83b61..07d4d5b24 100644 --- a/build.gradle +++ b/build.gradle @@ -86,6 +86,54 @@ repositories { mavenCentral() } +// Task to generate deps.txt with dependency tree +tasks.register('generateDepsFile') { + description = 'Generates deps.txt file with the dependency tree' + group = 'documentation' + + doLast { + def depsFile = file("${projectDir}/deps.txt") + def output = new StringBuilder() + + output.append("------------------------------------------------------------\n") + output.append("Project '${project.path}'\n") + output.append("------------------------------------------------------------\n\n") + + // For fused library, get dependencies from the included modules + output.append("Fused Library Dependencies (from included modules)\n") + output.append("=".repeat(60) + "\n\n") + + // Get dependencies from android-client-main (where the real dependencies are) + def mainProject = project(':android-client-main') + def config = mainProject.configurations.findByName('releaseRuntimeClasspath') + + if (config != null) { + output.append("releaseRuntimeClasspath - Runtime classpath of compilation 'release' (target (androidJvm)).\n") + config.resolvedConfiguration.firstLevelModuleDependencies.each { dep -> + output.append("+--- ${dep.moduleGroup}:${dep.moduleName}:${dep.moduleVersion}\n") + printDependencyTree(dep, output, "| ", true) + } + } + + depsFile.text = output.toString() + println "Generated deps.txt at ${depsFile.absolutePath}" + } +} + +void printDependencyTree(dependency, output, prefix, isLast) { + dependency.children.eachWithIndex { child, index -> + def isLastChild = (index == dependency.children.size() - 1) + def connector = isLastChild ? "\\--- " : "+--- " + def nextPrefix = isLastChild ? " " : "| " + + output.append("${prefix}${connector}${child.moduleGroup}:${child.moduleName}:${child.moduleVersion}\n") + + if (!child.children.isEmpty()) { + printDependencyTree(child, output, prefix + nextPrefix, isLastChild) + } + } +} + dependencies { // Include main module - contains all source code and will be bundled into the fused .aar include project(':android-client-main') diff --git a/deps.txt b/deps.txt index a680eefb8..f975a1ada 100644 --- a/deps.txt +++ b/deps.txt @@ -1,128 +1,1540 @@ - ------------------------------------------------------------ -Project ':android-client' +Project ':' ------------------------------------------------------------ -releaseRuntimeClasspath - Runtime classpath of compilation 'release' (target (androidJvm)). +Fused Library Dependencies (from included modules) +============================================================ + +releaseRuntimeClasspath - Runtime classpath of compilation 'release' (target (androidJvm)). ++--- io.split.client:android-client-logger:5.5.0-alpha.1 +| \--- androidx.annotation:annotation:1.2.0 +--- androidx.room:room-runtime:2.4.3 | +--- androidx.room:room-common:2.4.3 -| | \--- androidx.annotation:annotation:1.1.0 -> 1.2.0 +| | \--- androidx.annotation:annotation:1.2.0 | +--- androidx.sqlite:sqlite-framework:2.2.0 -| | +--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | \--- androidx.sqlite:sqlite:2.2.0 -| | \--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| +--- androidx.sqlite:sqlite:2.2.0 (*) -| +--- androidx.arch.core:core-runtime:2.0.1 -> 2.1.0 -| | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0 -| | \--- androidx.arch.core:core-common:2.1.0 -| | \--- androidx.annotation:annotation:1.1.0 -> 1.2.0 +| | +--- androidx.sqlite:sqlite:2.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | \--- androidx.annotation:annotation:1.2.0 +| +--- androidx.sqlite:sqlite:2.2.0 +| | \--- androidx.annotation:annotation:1.2.0 +| +--- androidx.arch.core:core-runtime:2.1.0 +| | +--- androidx.arch.core:core-common:2.1.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | \--- androidx.annotation:annotation:1.2.0 | \--- androidx.annotation:annotation-experimental:1.1.0 +--- androidx.work:work-runtime:2.7.1 -| +--- androidx.annotation:annotation-experimental:1.0.0 -> 1.1.0 -| +--- com.google.guava:listenablefuture:1.0 -| +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -| | +--- androidx.arch.core:core-runtime:2.1.0 (*) -| | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 -| | | +--- androidx.lifecycle:lifecycle-common:2.1.0 -> 2.5.1 -| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.2.0 -| | | +--- androidx.arch.core:core-common:2.1.0 (*) -| | | \--- androidx.arch.core:core-runtime:2.1.0 (*) -| | \--- androidx.arch.core:core-common:2.1.0 (*) -| +--- androidx.startup:startup-runtime:1.0.0 -> 1.1.1 -| | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0 -| | \--- androidx.tracing:tracing:1.0.0 -| | \--- androidx.annotation:annotation:1.1.0 -> 1.2.0 +| +--- androidx.room:room-runtime:2.4.3 +| | +--- androidx.room:room-common:2.4.3 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.sqlite:sqlite-framework:2.2.0 +| | | +--- androidx.sqlite:sqlite:2.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.sqlite:sqlite:2.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.arch.core:core-runtime:2.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | \--- androidx.annotation:annotation-experimental:1.1.0 +| +--- androidx.sqlite:sqlite-framework:2.2.0 +| | +--- androidx.sqlite:sqlite:2.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | \--- androidx.annotation:annotation:1.2.0 +| +--- androidx.sqlite:sqlite:2.2.0 +| | \--- androidx.annotation:annotation:1.2.0 | +--- androidx.core:core:1.6.0 -| | +--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.annotation:annotation-experimental:1.1.0 -| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.5.1 -| | | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0 -| | | +--- androidx.arch.core:core-common:2.1.0 (*) -| | | +--- androidx.arch.core:core-runtime:2.1.0 (*) -| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | +--- androidx.annotation:annotation:1.1.0 -> 1.2.0 -| | | \--- androidx.collection:collection:1.0.0 -| | | \--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | \--- androidx.collection:collection:1.0.0 (*) -| +--- androidx.room:room-runtime:2.2.5 -> 2.4.3 (*) -| +--- androidx.sqlite:sqlite:2.1.0 -> 2.2.0 (*) -| +--- androidx.sqlite:sqlite-framework:2.1.0 -> 2.2.0 (*) -| +--- androidx.core:core:1.1.0 -> 1.6.0 (*) -| \--- androidx.lifecycle:lifecycle-service:2.1.0 -| \--- androidx.lifecycle:lifecycle-runtime:2.1.0 -> 2.5.1 (*) +| | | +--- androidx.collection:collection:1.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.collection:collection:1.0.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.annotation:annotation:1.2.0 +| | \--- androidx.annotation:annotation-experimental:1.1.0 +| +--- androidx.startup:startup-runtime:1.1.1 +| | +--- androidx.tracing:tracing:1.0.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | \--- androidx.annotation:annotation:1.2.0 +| +--- androidx.lifecycle:lifecycle-service:2.1.0 +| | \--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | +--- androidx.arch.core:core-runtime:2.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.arch.core:core-common:2.1.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | \--- androidx.annotation:annotation:1.2.0 +| | \--- androidx.annotation:annotation:1.2.0 +| +--- androidx.lifecycle:lifecycle-livedata:2.1.0 +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 +| | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.arch.core:core-runtime:2.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | \--- androidx.arch.core:core-common:2.1.0 +| | \--- androidx.annotation:annotation:1.2.0 +| +--- androidx.annotation:annotation-experimental:1.1.0 +| \--- com.google.guava:listenablefuture:1.0 +--- androidx.lifecycle:lifecycle-process:2.5.1 -| +--- androidx.annotation:annotation:1.2.0 -| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) -| \--- androidx.startup:startup-runtime:1.1.1 (*) +| +--- androidx.startup:startup-runtime:1.1.1 +| | +--- androidx.tracing:tracing:1.0.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | \--- androidx.annotation:annotation:1.2.0 +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | +--- androidx.arch.core:core-runtime:2.1.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.arch.core:core-common:2.1.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | \--- androidx.annotation:annotation:1.2.0 +| | \--- androidx.annotation:annotation:1.2.0 +| \--- androidx.annotation:annotation:1.2.0 +--- androidx.annotation:annotation:1.2.0 +--- com.google.code.gson:gson:2.10.1 +--- org.yaml:snakeyaml:2.2 +--- com.google.android.gms:play-services-base:18.2.0 -| +--- androidx.collection:collection:1.0.0 (*) -| +--- androidx.core:core:1.2.0 -> 1.6.0 (*) +| +--- com.google.android.gms:play-services-tasks:18.0.2 +| | \--- com.google.android.gms:play-services-basement:18.1.0 +| | +--- androidx.fragment:fragment:1.0.0 +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.loader:loader:1.0.0 +| | | | | | +--- androidx.core:core:1.6.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.print:print:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | | +--- androidx.customview:customview:1.0.0 +| | | | | | +--- androidx.core:core:1.6.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 +| | | | | +--- androidx.customview:customview:1.0.0 +| | | | | | +--- androidx.core:core:1.6.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | | | +--- androidx.customview:customview:1.0.0 +| | | | | | +--- androidx.core:core:1.6.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.customview:customview:1.0.0 +| | | | | | +--- androidx.core:core:1.6.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.customview:customview:1.0.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | +--- androidx.loader:loader:1.0.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.core:core:1.6.0 +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.collection:collection:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.core:core:1.6.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | +--- androidx.collection:collection:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.collection:collection:1.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | \--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.2.0 +| +--- com.google.android.gms:play-services-basement:18.1.0 +| | +--- androidx.fragment:fragment:1.0.0 +| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 +| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | | +--- androidx.loader:loader:1.0.0 +| | | | | | +--- androidx.core:core:1.6.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.print:print:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.viewpager:viewpager:1.0.0 +| | | | | +--- androidx.customview:customview:1.0.0 +| | | | | | +--- androidx.core:core:1.6.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 +| | | | | +--- androidx.customview:customview:1.0.0 +| | | | | | +--- androidx.core:core:1.6.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 +| | | | | +--- androidx.customview:customview:1.0.0 +| | | | | | +--- androidx.core:core:1.6.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 +| | | | | +--- androidx.customview:customview:1.0.0 +| | | | | | +--- androidx.core:core:1.6.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.customview:customview:1.0.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | | +--- androidx.loader:loader:1.0.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.core:core:1.6.0 +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.collection:collection:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.core:core:1.6.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | +--- androidx.collection:collection:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.collection:collection:1.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | \--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.2.0 | +--- androidx.fragment:fragment:1.0.0 -| | +--- androidx.core:core:1.0.0 -> 1.6.0 (*) | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 -| | | +--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | | +--- androidx.core:core:1.0.0 -> 1.6.0 (*) | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 -| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | | | +--- androidx.core:core:1.0.0 -> 1.6.0 (*) -| | | | +--- androidx.documentfile:documentfile:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.2.0 | | | | +--- androidx.loader:loader:1.0.0 -| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | | | | +--- androidx.core:core:1.0.0 -> 1.6.0 (*) -| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.1.0 (*) -| | | | | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.2.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 +| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | | | \--- androidx.print:print:1.0.0 -| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | | +--- androidx.customview:customview:1.0.0 -| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | | | \--- androidx.core:core:1.0.0 -> 1.6.0 (*) +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.print:print:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 | | | +--- androidx.viewpager:viewpager:1.0.0 -| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | | | +--- androidx.core:core:1.0.0 -> 1.6.0 (*) -| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | | | +--- androidx.core:core:1.0.0 -> 1.6.0 (*) -| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | | | +--- androidx.core:core:1.0.0 -> 1.6.0 (*) -| | | | \--- androidx.customview:customview:1.0.0 (*) +| | | | +--- androidx.customview:customview:1.0.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 -| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | | | +--- androidx.core:core:1.0.0 -> 1.6.0 (*) -| | | | \--- androidx.customview:customview:1.0.0 (*) -| | | +--- androidx.interpolator:interpolator:1.0.0 -| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.2.0 +| | | | +--- androidx.customview:customview:1.0.0 +| | | | | +--- androidx.core:core:1.6.0 +| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.customview:customview:1.0.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | | | +--- androidx.core:core:1.0.0 -> 1.6.0 (*) -| | | | \--- androidx.interpolator:interpolator:1.0.0 (*) +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 -| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | | | \--- androidx.core:core:1.0.0 -> 1.6.0 (*) -| | | \--- androidx.cursoradapter:cursoradapter:1.0.0 -| | | \--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*) -| | +--- androidx.annotation:annotation:1.0.0 -> 1.2.0 -| | +--- androidx.loader:loader:1.0.0 (*) -| | \--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 (*) -| +--- com.google.android.gms:play-services-basement:18.1.0 -| | +--- androidx.collection:collection:1.0.0 (*) -| | +--- androidx.core:core:1.2.0 -> 1.6.0 (*) -| | \--- androidx.fragment:fragment:1.0.0 (*) -| \--- com.google.android.gms:play-services-tasks:18.0.2 -| \--- com.google.android.gms:play-services-basement:18.1.0 (*) -\--- androidx.multidex:multidex:2.0.1 - -(*) - Indicates repeated occurrences of a transitive dependency subtree. Gradle expands transitive dependency subtrees only once per project; repeat occurrences only display the root of the subtree, followed by this annotation. - -A web-based, searchable dependency report is available by adding the --scan option. +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.core:core:1.6.0 +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.collection:collection:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.cursoradapter:cursoradapter:1.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 +| | | +--- androidx.loader:loader:1.0.0 +| | | | +--- androidx.core:core:1.6.0 +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.core:core:1.6.0 +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.collection:collection:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | +--- androidx.documentfile:documentfile:1.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.print:print:1.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.loader:loader:1.0.0 +| | | +--- androidx.core:core:1.6.0 +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | +--- androidx.collection:collection:1.0.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.collection:collection:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.core:core:1.6.0 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | +--- androidx.collection:collection:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.collection:collection:1.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | \--- androidx.annotation:annotation:1.2.0 +| +--- androidx.core:core:1.6.0 +| | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 +| | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.2.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | +--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | +--- androidx.collection:collection:1.0.0 +| | | | \--- androidx.annotation:annotation:1.2.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.collection:collection:1.0.0 +| | | \--- androidx.annotation:annotation:1.2.0 +| | +--- androidx.annotation:annotation:1.2.0 +| | \--- androidx.annotation:annotation-experimental:1.1.0 +| \--- androidx.collection:collection:1.0.0 +| \--- androidx.annotation:annotation:1.2.0 ++--- androidx.multidex:multidex:2.0.1 From 2de606604d9dfc2e5630c24af789fe9c41e88292 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Tue, 4 Nov 2025 15:58:13 -0300 Subject: [PATCH 07/26] Remove unnecessary code --- .../java/tests/database/DatabaseInitializationTest.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/android-client-main/src/androidTest/java/tests/database/DatabaseInitializationTest.java b/android-client-main/src/androidTest/java/tests/database/DatabaseInitializationTest.java index 96e8ac851..c4061104c 100644 --- a/android-client-main/src/androidTest/java/tests/database/DatabaseInitializationTest.java +++ b/android-client-main/src/androidTest/java/tests/database/DatabaseInitializationTest.java @@ -36,11 +36,6 @@ public class DatabaseInitializationTest { @Before public void setUp() throws IOException { mContext = InstrumentationRegistry.getInstrumentation().getContext(); - // clear package data - String[] dbList = getDbList(mContext); - for (String db : dbList) { - DatabaseHelper.removeDatabaseFile(db); - } mHttpClientMock = new HttpClientMock(new HttpResponseMockDispatcher() { @Override public HttpResponseMock getResponse(URI uri, HttpMethod method, String body) { @@ -195,10 +190,6 @@ private static String[] getDbList(Context context) { throw new RuntimeException(e); } return Arrays.stream(context.databaseList()) -// .map(db -> { -// System.out.println("DB name: " + db); -// return db; -// }) .filter(db -> !db.endsWith("-journal") && !db.endsWith("-wal") && !db.endsWith("-shm")) .toArray(String[]::new); } From 4cf4c11d352851875d17e60393cf92b5b023ad28 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Wed, 5 Nov 2025 17:28:00 -0300 Subject: [PATCH 08/26] Publish working --- build.gradle | 136 +++++++++++++++++++++------------------------------ 1 file changed, 57 insertions(+), 79 deletions(-) diff --git a/build.gradle b/build.gradle index 07d4d5b24..5d46c5bcf 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,6 @@ +import com.vanniktech.maven.publish.AndroidFusedLibrary +import org.gradle.api.publish.maven.MavenPublication + buildscript { repositories { google() @@ -10,16 +13,15 @@ buildscript { // classpath 'com.android.tools.build:gradle:8.9.1' classpath 'com.android.tools.build:gradle:9.0.0-alpha13' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0' - classpath "com.vanniktech:gradle-maven-publish-plugin:0.33.0" + classpath "com.vanniktech:gradle-maven-publish-plugin:0.34.0" } } apply plugin: 'com.android.fused-library' -apply plugin: 'maven-publish' -// Temporarily removed signing and vanniktech plugins to test fused library build -// apply plugin: 'signing' -// apply plugin: 'com.vanniktech.maven.publish' +apply plugin: 'com.vanniktech.maven.publish' + // spec.gradle and jacoco.gradle removed - not compatible with fused library +// Note: Signing plugin applied conditionally to avoid conflicts with fused-library plugin group = 'io.split.client' @@ -135,11 +137,7 @@ void printDependencyTree(dependency, output, prefix, isLast) { } dependencies { - // Include main module - contains all source code and will be bundled into the fused .aar include project(':android-client-main') - - // Include logger module - will be bundled into the fused .aar - include project(':android-client-logger') } def splitPOM = { @@ -168,76 +166,56 @@ def splitPOM = { } } -// mavenPublishing temporarily disabled for POC - need to re-enable with fused library component -// mavenPublishing { -// coordinates("io.split.client", "android-client", splitVersion) -// pom(splitPOM) -// -// publishToMavenCentral(false) -// signAllPublications() -// } - // Note: sourcesJar and javadocJar tasks removed - fused library has no source sets // Tests are now in submodules -// Publishing configuration for fused library - temporarily disabled to check available tasks -// afterEvaluate { -// publishing { -// publications { -// release(MavenPublication) { -// groupId = 'io.split.client' -// artifactId = 'android-client' -// version = splitVersion -// -// // Add the fused library AAR -// artifact(tasks.named('bundleReleaseAar')) -// -// pom { -// name = 'Split Android SDK' -// description = 'Official Split Android SDK' -// url = 'https://github.com/splitio/android-client' -// -// licenses { -// license { -// name = 'The Apache License, Version 2.0' -// url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' -// } -// } -// -// developers { -// developer { -// id = 'sdks' -// email = 'sdks@split.io' -// } -// } -// -// scm { -// connection = 'scm:git:git@github.com:splitio/android-client.git' -// developerConnection = 'scm:git@github.com:splitio/android-client.git' -// url = 'https://github.com/splitio/android-client' -// } -// -// // Add runtime dependencies from android-client-main -// withXml { -// def dependenciesNode = asNode().appendNode('dependencies') -// -// // Get dependencies from android-client-main -// project(':android-client-main').configurations.api.allDependencies.each { dep -> -// if (dep.group != null && dep.name != 'unspecified') { -// def dependencyNode = dependenciesNode.appendNode('dependency') -// dependencyNode.appendNode('groupId', dep.group) -// dependencyNode.appendNode('artifactId', dep.name) -// dependencyNode.appendNode('version', dep.version) -// dependencyNode.appendNode('scope', 'runtime') -// } -// } -// } -// } -// } -// } -// -// repositories { -// mavenLocal() -// } -// } -// } +// Configure maven publish plugin - similar to old build.gradle but adapted for fused library +// The plugin should auto-detect Android Fused Library, but we configure coordinates and POM +mavenPublishing { + coordinates("io.split.client", "android-client", splitVersion) + pom(splitPOM) + publishToMavenCentral(false) + // Note: Plugin auto-detects AndroidFusedLibrary + // For AGP 9.0.0-alpha9+, fusedLibraryComponent already includes sources, + // but the plugin might still add emptySourcesJar, causing a conflict +} + +// Workaround: For AGP 9.0.0-alpha9+, fusedLibraryComponent already includes sources +// The maven publish plugin should not add emptySourcesJar for AGP >= alpha9, +// but if it does, we need to prevent the duplicate. The issue is that the plugin +// condition checks CURRENT_AGP_VERSION < AndroidPluginVersion(9, 0, 0).alpha(9), +// but for AGP 9.0.0-alpha13, this should be false, so withJavaSourcesJar shouldn't be called. +// However, if emptySourcesJar is still being created, we'll suppress publication of duplicate artifacts. +afterEvaluate { + // Check if we have both merged sources and empty sources + def emptySourcesJarTask = tasks.findByName("emptySourcesJar") + if (emptySourcesJarTask != null) { + // The plugin shouldn't have created this for AGP >= alpha9, but if it did, + // we need to ensure only one sources artifact is published + publishing.publications.withType(MavenPublication) { publication -> + if (publication.name == "maven") { + // Suppress the emptySourcesJar from being published + // Keep only the sources from fusedLibraryComponent + publication.artifacts.removeAll { artifact -> + // Remove artifacts that match the emptySourcesJar task output + try { + def artifactFile = artifact.file + if (artifactFile != null && artifactFile.exists()) { + def emptySourcesFile = emptySourcesJarTask.archiveFile.get().asFile + artifactFile == emptySourcesFile + } else { + // If we can't determine the file, check by classifier and if it's not from component + artifact.classifier == "sources" && artifact.extension == "jar" && + !publication.artifacts.any { + it != artifact && it.classifier == "sources" && + it.buildDependencies != null + } + } + } catch (Exception e) { + false + } + } + } + } + } +} From f2481d41a6d46ddc2f8ceabc7f064b8caa3f0b2f Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Wed, 5 Nov 2025 21:14:48 -0300 Subject: [PATCH 09/26] Signing task --- build.gradle | 195 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) diff --git a/build.gradle b/build.gradle index 5d46c5bcf..981fd6c1b 100644 --- a/build.gradle +++ b/build.gradle @@ -180,6 +180,201 @@ mavenPublishing { // but the plugin might still add emptySourcesJar, causing a conflict } +// Manual GPG signing task - Gradle signing plugin doesn't work with fused library +tasks.register('signArtifacts') { + description = 'Signs all Maven artifacts with GPG' + group = 'publishing' + + doLast { + // Task 2: Determine artifact directory path + def groupPath = project.group.toString().replace('.', '/') + def artifactId = 'android-client' + def versionStr = project.version.toString() + def artifactDir = file("${buildDir}/publishing/mavenCentral/${groupPath}/${artifactId}/${versionStr}") + + println "Signing artifacts in: ${artifactDir}" + + if (!artifactDir.exists()) { + println "WARNING: Artifact directory does not exist: ${artifactDir}" + println "Skipping signing. Run publishAllPublicationsToMavenCentralRepository first." + return + } + + // Task 4: Read GPG configuration from gradle.properties + def keyId = project.findProperty('signing.keyId') + def password = project.findProperty('signing.password') + + // Validate GPG configuration + if (!keyId) { + throw new GradleException("signing.keyId property is not set in gradle.properties") + } + if (!password) { + throw new GradleException("signing.password property is not set in gradle.properties") + } + + println "Using GPG key ID: ${keyId}" + println "Using default GPG keyring" + + // Task 3: Find all artifacts to sign + def artifactsToSign = [] + artifactDir.eachFile { file -> + def name = file.name + // Sign .aar, .jar, .pom, and .module files, but skip already signed .asc files + if ((name.endsWith('.aar') || name.endsWith('.jar') || name.endsWith('.pom') || name.endsWith('.module')) && !name.endsWith('.asc')) { + artifactsToSign << file + } + } + + if (artifactsToSign.isEmpty()) { + println "WARNING: No artifacts found to sign in ${artifactDir}" + return + } + + println "Found ${artifactsToSign.size()} artifact(s) to sign:" + artifactsToSign.each { println " - ${it.name}" } + + // Task 7: Find GPG executable + def gpgCommand = null + def gpgPaths = [ + '/opt/homebrew/bin/gpg', // macOS Homebrew on Apple Silicon - try first + '/usr/local/bin/gpg', + '/usr/bin/gpg', + '/opt/local/bin/gpg' // MacPorts + ] + + // First, check if files exist + for (path in gpgPaths) { + def gpgFile = new File(path) + if (gpgFile.exists() && gpgFile.canExecute()) { + gpgCommand = path + println "Found GPG at: ${gpgCommand}" + break + } + } + + // If not found in common paths, try using 'gpg' from PATH + if (gpgCommand == null) { + try { + def process = new ProcessBuilder(['gpg', '--version']) + .redirectErrorStream(true) + .start() + def exitCode = process.waitFor() + if (exitCode == 0) { + gpgCommand = 'gpg' + println "Found GPG in PATH" + } + } catch (Exception e) { + // GPG not in PATH + } + } + + if (gpgCommand == null) { + throw new GradleException("GPG is not installed or not found in common locations.\n" + + "Please install GPG:\n" + + " macOS: brew install gnupg\n" + + " Linux: apt-get install gnupg or yum install gnupg\n" + + "Searched in: ${gpgPaths.join(', ')}\n" + + "If GPG is installed elsewhere, you can configure the path in the task.") + } + + println "Using GPG: ${gpgCommand}" + + // Task 5: Sign each artifact + artifactsToSign.each { artifact -> + def ascFile = new File(artifact.parentFile, "${artifact.name}.asc") + + // Skip if already signed + if (ascFile.exists()) { + println "Signature already exists for ${artifact.name}, skipping" + return + } + + println "Signing: ${artifact.name}" + + try { + // Use ProcessBuilder for GPG execution (avoids Gradle exec issues) + // Note: Using default GPG keyring (GPG 2.1+ ignores --keyring option) + def cmd = [ + gpgCommand, + '--batch', + '--yes', + '--no-tty', + '--passphrase', password, + '--pinentry-mode', 'loopback', + '--local-user', keyId, + '--detach-sign', + '--armor', + artifact.absolutePath + ] + + // Set GPG_TTY to avoid agent issues + def processEnv = new ProcessBuilder().environment() + processEnv.put('GPG_TTY', '') + + def process = new ProcessBuilder(cmd) + .redirectErrorStream(true) + .start() + + def exitCode = process.waitFor() + + if (exitCode != 0) { + def output = process.inputStream.text + throw new GradleException("Failed to sign ${artifact.name}. Exit code: ${exitCode}\nOutput: ${output}") + } + + // Verify the signature was created + if (!ascFile.exists()) { + throw new GradleException("Signature file was not created for ${artifact.name}") + } + + println " ✓ Created signature: ${ascFile.name}" + + // Verify the signature + def verifyCmd = [ + gpgCommand, + '--verify', + ascFile.absolutePath, + artifact.absolutePath + ] + + def verifyProcess = new ProcessBuilder(verifyCmd) + .redirectErrorStream(true) + .start() + + def verifyExitCode = verifyProcess.waitFor() + + if (verifyExitCode == 0) { + println " ✓ Signature verified successfully" + } else { + println " ⚠ Warning: Could not verify signature" + } + + } catch (Exception e) { + throw new GradleException("Failed to sign artifact ${artifact.name}: ${e.message}", e) + } + } + + println "Successfully signed ${artifactsToSign.size()} artifact(s)" + } +} + +// Task 6: Configure task dependencies +// Make signArtifacts run after artifacts are published but before upload +afterEvaluate { + def signTask = tasks.findByName('signArtifacts') + def publishTask = tasks.findByName('publishAllPublicationsToMavenCentralRepository') + + if (signTask && publishTask) { + // signArtifacts depends on publishing (so artifacts exist) + signTask.dependsOn(publishTask) + + // Make publish task finalize with signing + publishTask.finalizedBy(signTask) + + println "Configured signArtifacts task to run after publishAllPublicationsToMavenCentralRepository" + } +} + // Workaround: For AGP 9.0.0-alpha9+, fusedLibraryComponent already includes sources // The maven publish plugin should not add emptySourcesJar for AGP >= alpha9, // but if it does, we need to prevent the duplicate. The issue is that the plugin From 015ef86006d16a60cb1a503939bf37903778bf9b Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Thu, 6 Nov 2025 11:39:07 -0300 Subject: [PATCH 10/26] Change version; expose SplitLogLevel --- .../client/utils/logger/SplitLogLevel.java | 40 +++++++++++++++++++ build.gradle | 3 +- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 android-client-main/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java b/android-client-main/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java new file mode 100644 index 000000000..a9fca13ee --- /dev/null +++ b/android-client-main/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java @@ -0,0 +1,40 @@ +package io.split.android.client.utils.logger; + +public class SplitLogLevel { + + /** + * Priority constant for the println method; use Logger.v. + */ + public static final int VERBOSE = 2; + + /** + * Priority constant for the println method; use Logger.d. + */ + public static final int DEBUG = 3; + + /** + * Priority constant for the println method; use Logger.i. + */ + public static final int INFO = 4; + + /** + * Priority constant for the println method; use Loggger.w. + */ + public static final int WARNING = 5; + + /** + * Priority constant for the println method; use Logger.e. + */ + public static final int ERROR = 6; + + /** + * Priority constant for the println method; use Logger.wtf. + */ + public static final int ASSERT = 7; + + /** + * Turns off logging + */ + public static final int NONE = -100; + +} diff --git a/build.gradle b/build.gradle index 981fd6c1b..cb7fb6667 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,7 @@ apply plugin: 'com.vanniktech.maven.publish' group = 'io.split.client' ext { - splitVersion = '5.5.0-alpha.1' + splitVersion = '5.4.3-rc1' jacocoVersion = '0.8.8' } @@ -138,6 +138,7 @@ void printDependencyTree(dependency, output, prefix, isLast) { dependencies { include project(':android-client-main') + include project(':android-client-logger') } def splitPOM = { From eb4e6fb8405053ab0f1267eee8336c70389e3659 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Thu, 6 Nov 2025 11:41:52 -0300 Subject: [PATCH 11/26] Rename internal log level --- .../logger/{SplitLogLevel.java => Level.java} | 2 +- .../android/client/utils/logger/Logger.java | 42 ++++---- .../client/utils/logger/LoggerTest.java | 98 +++++++++---------- 3 files changed, 71 insertions(+), 71 deletions(-) rename android-client-logger/src/main/java/io/split/android/client/utils/logger/{SplitLogLevel.java => Level.java} (96%) diff --git a/android-client-logger/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java b/android-client-logger/src/main/java/io/split/android/client/utils/logger/Level.java similarity index 96% rename from android-client-logger/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java rename to android-client-logger/src/main/java/io/split/android/client/utils/logger/Level.java index a9fca13ee..ddaa44475 100644 --- a/android-client-logger/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java +++ b/android-client-logger/src/main/java/io/split/android/client/utils/logger/Level.java @@ -1,6 +1,6 @@ package io.split.android.client.utils.logger; -public class SplitLogLevel { +class Level { /** * Priority constant for the println method; use Logger.v. diff --git a/android-client-logger/src/main/java/io/split/android/client/utils/logger/Logger.java b/android-client-logger/src/main/java/io/split/android/client/utils/logger/Logger.java index 9d02c8103..ce2f800a7 100644 --- a/android-client-logger/src/main/java/io/split/android/client/utils/logger/Logger.java +++ b/android-client-logger/src/main/java/io/split/android/client/utils/logger/Logger.java @@ -7,7 +7,7 @@ public class Logger { private static final String TAG = "SplitSDK"; - private int mLevel = SplitLogLevel.NONE; + private int mLevel = Level.NONE; private static volatile Logger instance; private LogPrinter mLogPrinter = new LogPrinterImpl(); @@ -35,33 +35,33 @@ public void setPrinter(LogPrinter printer) { private void log(int priority, String msg, Throwable tr) { - if (mLevel == SplitLogLevel.NONE || priority < SplitLogLevel.VERBOSE || + if (mLevel == Level.NONE || priority < Level.VERBOSE || mLevel > priority) { return; } switch (priority) { - case SplitLogLevel.VERBOSE: + case Level.VERBOSE: mLogPrinter.v(TAG, msg, tr); break; - case SplitLogLevel.DEBUG: + case Level.DEBUG: mLogPrinter.d(TAG, msg, tr); break; - case SplitLogLevel.INFO: + case Level.INFO: mLogPrinter.i(TAG, msg, tr); break; - case SplitLogLevel.WARNING: + case Level.WARNING: mLogPrinter.w(TAG, msg, tr); break; - case SplitLogLevel.ERROR: + case Level.ERROR: mLogPrinter.e(TAG, msg, tr); break; - case SplitLogLevel.ASSERT: + case Level.ASSERT: mLogPrinter.wtf(TAG, msg, tr); break; } @@ -79,11 +79,11 @@ public static void v(String msg, Object... args) { } public static void v(String msg) { - instance().log(SplitLogLevel.VERBOSE, msg, null); + instance().log(Level.VERBOSE, msg, null); } public static void v(String msg, Throwable tr) { - instance().log(SplitLogLevel.VERBOSE, msg, tr); + instance().log(Level.VERBOSE, msg, tr); } public static void d(String msg, Object... args) { @@ -91,11 +91,11 @@ public static void d(String msg, Object... args) { } public static void d(String msg) { - instance().log(SplitLogLevel.DEBUG, msg, null); + instance().log(Level.DEBUG, msg, null); } public static void d(String msg, Throwable tr) { - instance().log(SplitLogLevel.DEBUG, msg, tr); + instance().log(Level.DEBUG, msg, tr); } public static void i(String msg, Object... args) { @@ -103,11 +103,11 @@ public static void i(String msg, Object... args) { } public static void i(String msg) { - instance().log(SplitLogLevel.INFO, msg, null); + instance().log(Level.INFO, msg, null); } public static void i(String msg, Throwable tr) { - instance().log(SplitLogLevel.INFO, msg, tr); + instance().log(Level.INFO, msg, tr); } public static void w(String msg, Object... args) { @@ -119,11 +119,11 @@ public static void w(Throwable tr, String msg, Object... args) { } public static void w(String msg) { - instance().log(SplitLogLevel.WARNING, msg, null); + instance().log(Level.WARNING, msg, null); } public static void w(String msg, Throwable tr) { - instance().log(SplitLogLevel.WARNING, msg, tr); + instance().log(Level.WARNING, msg, tr); } public static void e(String msg, Object... args) { @@ -135,15 +135,15 @@ public static void e(Throwable tr, String msg, Object... args) { } public static void e(String msg) { - instance().log(SplitLogLevel.ERROR, msg, null); + instance().log(Level.ERROR, msg, null); } public static void e(String msg, Throwable tr) { - instance().log(SplitLogLevel.ERROR, msg, tr); + instance().log(Level.ERROR, msg, tr); } public static void e(Throwable tr) { - instance().log(SplitLogLevel.ERROR, "", tr); + instance().log(Level.ERROR, "", tr); } public static void wtf(String msg, Object... args) { @@ -151,10 +151,10 @@ public static void wtf(String msg, Object... args) { } public static void wtf(String msg) { - instance().log(SplitLogLevel.ASSERT, msg, null); + instance().log(Level.ASSERT, msg, null); } public static void wtf(String msg, Throwable tr) { - instance().log(SplitLogLevel.ASSERT, msg, tr); + instance().log(Level.ASSERT, msg, tr); } } diff --git a/android-client-logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java b/android-client-logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java index 8de659260..412ec285d 100644 --- a/android-client-logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java +++ b/android-client-logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java @@ -16,100 +16,100 @@ public void setUp() { @Test public void testNone() { - Logger.instance().setLevel(SplitLogLevel.NONE); + Logger.instance().setLevel(Level.NONE); logAll(); - Assert.assertFalse(printer.isCalled(SplitLogLevel.VERBOSE)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.DEBUG)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.INFO)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.WARNING)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.ERROR)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.ASSERT)); + Assert.assertFalse(printer.isCalled(Level.VERBOSE)); + Assert.assertFalse(printer.isCalled(Level.DEBUG)); + Assert.assertFalse(printer.isCalled(Level.INFO)); + Assert.assertFalse(printer.isCalled(Level.WARNING)); + Assert.assertFalse(printer.isCalled(Level.ERROR)); + Assert.assertFalse(printer.isCalled(Level.ASSERT)); } @Test public void testVerbose() { - Logger.instance().setLevel(SplitLogLevel.VERBOSE); + Logger.instance().setLevel(Level.VERBOSE); logAll(); - Assert.assertTrue(printer.isCalled(SplitLogLevel.VERBOSE)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.DEBUG)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.INFO)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.WARNING)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.ERROR)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.ASSERT)); + Assert.assertTrue(printer.isCalled(Level.VERBOSE)); + Assert.assertTrue(printer.isCalled(Level.DEBUG)); + Assert.assertTrue(printer.isCalled(Level.INFO)); + Assert.assertTrue(printer.isCalled(Level.WARNING)); + Assert.assertTrue(printer.isCalled(Level.ERROR)); + Assert.assertTrue(printer.isCalled(Level.ASSERT)); } @Test public void testDebug() { - Logger.instance().setLevel(SplitLogLevel.DEBUG); + Logger.instance().setLevel(Level.DEBUG); logAll(); - Assert.assertFalse(printer.isCalled(SplitLogLevel.VERBOSE)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.DEBUG)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.INFO)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.WARNING)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.ERROR)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.ASSERT)); + Assert.assertFalse(printer.isCalled(Level.VERBOSE)); + Assert.assertTrue(printer.isCalled(Level.DEBUG)); + Assert.assertTrue(printer.isCalled(Level.INFO)); + Assert.assertTrue(printer.isCalled(Level.WARNING)); + Assert.assertTrue(printer.isCalled(Level.ERROR)); + Assert.assertTrue(printer.isCalled(Level.ASSERT)); } @Test public void testInfo() { - Logger.instance().setLevel(SplitLogLevel.INFO); + Logger.instance().setLevel(Level.INFO); logAll(); - Assert.assertFalse(printer.isCalled(SplitLogLevel.VERBOSE)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.DEBUG)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.INFO)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.WARNING)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.ERROR)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.ASSERT)); + Assert.assertFalse(printer.isCalled(Level.VERBOSE)); + Assert.assertFalse(printer.isCalled(Level.DEBUG)); + Assert.assertTrue(printer.isCalled(Level.INFO)); + Assert.assertTrue(printer.isCalled(Level.WARNING)); + Assert.assertTrue(printer.isCalled(Level.ERROR)); + Assert.assertTrue(printer.isCalled(Level.ASSERT)); } @Test public void testWarning() { - Logger.instance().setLevel(SplitLogLevel.WARNING); + Logger.instance().setLevel(Level.WARNING); logAll(); - Assert.assertFalse(printer.isCalled(SplitLogLevel.VERBOSE)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.DEBUG)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.INFO)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.WARNING)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.ERROR)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.ASSERT)); + Assert.assertFalse(printer.isCalled(Level.VERBOSE)); + Assert.assertFalse(printer.isCalled(Level.DEBUG)); + Assert.assertFalse(printer.isCalled(Level.INFO)); + Assert.assertTrue(printer.isCalled(Level.WARNING)); + Assert.assertTrue(printer.isCalled(Level.ERROR)); + Assert.assertTrue(printer.isCalled(Level.ASSERT)); } @Test public void testError() { - Logger.instance().setLevel(SplitLogLevel.ERROR); + Logger.instance().setLevel(Level.ERROR); logAll(); - Assert.assertFalse(printer.isCalled(SplitLogLevel.VERBOSE)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.DEBUG)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.INFO)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.WARNING)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.ERROR)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.ASSERT)); + Assert.assertFalse(printer.isCalled(Level.VERBOSE)); + Assert.assertFalse(printer.isCalled(Level.DEBUG)); + Assert.assertFalse(printer.isCalled(Level.INFO)); + Assert.assertFalse(printer.isCalled(Level.WARNING)); + Assert.assertTrue(printer.isCalled(Level.ERROR)); + Assert.assertTrue(printer.isCalled(Level.ASSERT)); } @Test public void testAssert() { - Logger.instance().setLevel(SplitLogLevel.ASSERT); + Logger.instance().setLevel(Level.ASSERT); logAll(); - Assert.assertFalse(printer.isCalled(SplitLogLevel.VERBOSE)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.DEBUG)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.INFO)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.WARNING)); - Assert.assertFalse(printer.isCalled(SplitLogLevel.ERROR)); - Assert.assertTrue(printer.isCalled(SplitLogLevel.ASSERT)); + Assert.assertFalse(printer.isCalled(Level.VERBOSE)); + Assert.assertFalse(printer.isCalled(Level.DEBUG)); + Assert.assertFalse(printer.isCalled(Level.INFO)); + Assert.assertFalse(printer.isCalled(Level.WARNING)); + Assert.assertFalse(printer.isCalled(Level.ERROR)); + Assert.assertTrue(printer.isCalled(Level.ASSERT)); } void logAll() { From 0fddefce5da074614a348475b6db0ae4543871e0 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Mon, 10 Nov 2025 13:10:41 -0300 Subject: [PATCH 12/26] Restore log level --- .../android/client/utils/logger/Level.java | 40 ------------------ .../android/client/utils/logger/Logger.java | 42 +++++++++---------- .../client/utils/logger/SplitLogLevel.java | 0 3 files changed, 21 insertions(+), 61 deletions(-) delete mode 100644 android-client-logger/src/main/java/io/split/android/client/utils/logger/Level.java rename {android-client-main => android-client-logger}/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java (100%) diff --git a/android-client-logger/src/main/java/io/split/android/client/utils/logger/Level.java b/android-client-logger/src/main/java/io/split/android/client/utils/logger/Level.java deleted file mode 100644 index ddaa44475..000000000 --- a/android-client-logger/src/main/java/io/split/android/client/utils/logger/Level.java +++ /dev/null @@ -1,40 +0,0 @@ -package io.split.android.client.utils.logger; - -class Level { - - /** - * Priority constant for the println method; use Logger.v. - */ - public static final int VERBOSE = 2; - - /** - * Priority constant for the println method; use Logger.d. - */ - public static final int DEBUG = 3; - - /** - * Priority constant for the println method; use Logger.i. - */ - public static final int INFO = 4; - - /** - * Priority constant for the println method; use Loggger.w. - */ - public static final int WARNING = 5; - - /** - * Priority constant for the println method; use Logger.e. - */ - public static final int ERROR = 6; - - /** - * Priority constant for the println method; use Logger.wtf. - */ - public static final int ASSERT = 7; - - /** - * Turns off logging - */ - public static final int NONE = -100; - -} diff --git a/android-client-logger/src/main/java/io/split/android/client/utils/logger/Logger.java b/android-client-logger/src/main/java/io/split/android/client/utils/logger/Logger.java index ce2f800a7..9d02c8103 100644 --- a/android-client-logger/src/main/java/io/split/android/client/utils/logger/Logger.java +++ b/android-client-logger/src/main/java/io/split/android/client/utils/logger/Logger.java @@ -7,7 +7,7 @@ public class Logger { private static final String TAG = "SplitSDK"; - private int mLevel = Level.NONE; + private int mLevel = SplitLogLevel.NONE; private static volatile Logger instance; private LogPrinter mLogPrinter = new LogPrinterImpl(); @@ -35,33 +35,33 @@ public void setPrinter(LogPrinter printer) { private void log(int priority, String msg, Throwable tr) { - if (mLevel == Level.NONE || priority < Level.VERBOSE || + if (mLevel == SplitLogLevel.NONE || priority < SplitLogLevel.VERBOSE || mLevel > priority) { return; } switch (priority) { - case Level.VERBOSE: + case SplitLogLevel.VERBOSE: mLogPrinter.v(TAG, msg, tr); break; - case Level.DEBUG: + case SplitLogLevel.DEBUG: mLogPrinter.d(TAG, msg, tr); break; - case Level.INFO: + case SplitLogLevel.INFO: mLogPrinter.i(TAG, msg, tr); break; - case Level.WARNING: + case SplitLogLevel.WARNING: mLogPrinter.w(TAG, msg, tr); break; - case Level.ERROR: + case SplitLogLevel.ERROR: mLogPrinter.e(TAG, msg, tr); break; - case Level.ASSERT: + case SplitLogLevel.ASSERT: mLogPrinter.wtf(TAG, msg, tr); break; } @@ -79,11 +79,11 @@ public static void v(String msg, Object... args) { } public static void v(String msg) { - instance().log(Level.VERBOSE, msg, null); + instance().log(SplitLogLevel.VERBOSE, msg, null); } public static void v(String msg, Throwable tr) { - instance().log(Level.VERBOSE, msg, tr); + instance().log(SplitLogLevel.VERBOSE, msg, tr); } public static void d(String msg, Object... args) { @@ -91,11 +91,11 @@ public static void d(String msg, Object... args) { } public static void d(String msg) { - instance().log(Level.DEBUG, msg, null); + instance().log(SplitLogLevel.DEBUG, msg, null); } public static void d(String msg, Throwable tr) { - instance().log(Level.DEBUG, msg, tr); + instance().log(SplitLogLevel.DEBUG, msg, tr); } public static void i(String msg, Object... args) { @@ -103,11 +103,11 @@ public static void i(String msg, Object... args) { } public static void i(String msg) { - instance().log(Level.INFO, msg, null); + instance().log(SplitLogLevel.INFO, msg, null); } public static void i(String msg, Throwable tr) { - instance().log(Level.INFO, msg, tr); + instance().log(SplitLogLevel.INFO, msg, tr); } public static void w(String msg, Object... args) { @@ -119,11 +119,11 @@ public static void w(Throwable tr, String msg, Object... args) { } public static void w(String msg) { - instance().log(Level.WARNING, msg, null); + instance().log(SplitLogLevel.WARNING, msg, null); } public static void w(String msg, Throwable tr) { - instance().log(Level.WARNING, msg, tr); + instance().log(SplitLogLevel.WARNING, msg, tr); } public static void e(String msg, Object... args) { @@ -135,15 +135,15 @@ public static void e(Throwable tr, String msg, Object... args) { } public static void e(String msg) { - instance().log(Level.ERROR, msg, null); + instance().log(SplitLogLevel.ERROR, msg, null); } public static void e(String msg, Throwable tr) { - instance().log(Level.ERROR, msg, tr); + instance().log(SplitLogLevel.ERROR, msg, tr); } public static void e(Throwable tr) { - instance().log(Level.ERROR, "", tr); + instance().log(SplitLogLevel.ERROR, "", tr); } public static void wtf(String msg, Object... args) { @@ -151,10 +151,10 @@ public static void wtf(String msg, Object... args) { } public static void wtf(String msg) { - instance().log(Level.ASSERT, msg, null); + instance().log(SplitLogLevel.ASSERT, msg, null); } public static void wtf(String msg, Throwable tr) { - instance().log(Level.ASSERT, msg, tr); + instance().log(SplitLogLevel.ASSERT, msg, tr); } } diff --git a/android-client-main/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java b/android-client-logger/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java rename to android-client-logger/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java From 4cac101b6a7756c1509a878ad6054c765b4b206b Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Mon, 10 Nov 2025 13:37:42 -0300 Subject: [PATCH 13/26] Update Logger tests --- .../client/utils/logger/LoggerTest.java | 98 +++++++++---------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/android-client-logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java b/android-client-logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java index 412ec285d..8de659260 100644 --- a/android-client-logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java +++ b/android-client-logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java @@ -16,100 +16,100 @@ public void setUp() { @Test public void testNone() { - Logger.instance().setLevel(Level.NONE); + Logger.instance().setLevel(SplitLogLevel.NONE); logAll(); - Assert.assertFalse(printer.isCalled(Level.VERBOSE)); - Assert.assertFalse(printer.isCalled(Level.DEBUG)); - Assert.assertFalse(printer.isCalled(Level.INFO)); - Assert.assertFalse(printer.isCalled(Level.WARNING)); - Assert.assertFalse(printer.isCalled(Level.ERROR)); - Assert.assertFalse(printer.isCalled(Level.ASSERT)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.VERBOSE)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.DEBUG)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.INFO)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.WARNING)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.ERROR)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.ASSERT)); } @Test public void testVerbose() { - Logger.instance().setLevel(Level.VERBOSE); + Logger.instance().setLevel(SplitLogLevel.VERBOSE); logAll(); - Assert.assertTrue(printer.isCalled(Level.VERBOSE)); - Assert.assertTrue(printer.isCalled(Level.DEBUG)); - Assert.assertTrue(printer.isCalled(Level.INFO)); - Assert.assertTrue(printer.isCalled(Level.WARNING)); - Assert.assertTrue(printer.isCalled(Level.ERROR)); - Assert.assertTrue(printer.isCalled(Level.ASSERT)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.VERBOSE)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.DEBUG)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.INFO)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.WARNING)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.ERROR)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.ASSERT)); } @Test public void testDebug() { - Logger.instance().setLevel(Level.DEBUG); + Logger.instance().setLevel(SplitLogLevel.DEBUG); logAll(); - Assert.assertFalse(printer.isCalled(Level.VERBOSE)); - Assert.assertTrue(printer.isCalled(Level.DEBUG)); - Assert.assertTrue(printer.isCalled(Level.INFO)); - Assert.assertTrue(printer.isCalled(Level.WARNING)); - Assert.assertTrue(printer.isCalled(Level.ERROR)); - Assert.assertTrue(printer.isCalled(Level.ASSERT)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.VERBOSE)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.DEBUG)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.INFO)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.WARNING)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.ERROR)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.ASSERT)); } @Test public void testInfo() { - Logger.instance().setLevel(Level.INFO); + Logger.instance().setLevel(SplitLogLevel.INFO); logAll(); - Assert.assertFalse(printer.isCalled(Level.VERBOSE)); - Assert.assertFalse(printer.isCalled(Level.DEBUG)); - Assert.assertTrue(printer.isCalled(Level.INFO)); - Assert.assertTrue(printer.isCalled(Level.WARNING)); - Assert.assertTrue(printer.isCalled(Level.ERROR)); - Assert.assertTrue(printer.isCalled(Level.ASSERT)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.VERBOSE)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.DEBUG)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.INFO)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.WARNING)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.ERROR)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.ASSERT)); } @Test public void testWarning() { - Logger.instance().setLevel(Level.WARNING); + Logger.instance().setLevel(SplitLogLevel.WARNING); logAll(); - Assert.assertFalse(printer.isCalled(Level.VERBOSE)); - Assert.assertFalse(printer.isCalled(Level.DEBUG)); - Assert.assertFalse(printer.isCalled(Level.INFO)); - Assert.assertTrue(printer.isCalled(Level.WARNING)); - Assert.assertTrue(printer.isCalled(Level.ERROR)); - Assert.assertTrue(printer.isCalled(Level.ASSERT)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.VERBOSE)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.DEBUG)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.INFO)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.WARNING)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.ERROR)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.ASSERT)); } @Test public void testError() { - Logger.instance().setLevel(Level.ERROR); + Logger.instance().setLevel(SplitLogLevel.ERROR); logAll(); - Assert.assertFalse(printer.isCalled(Level.VERBOSE)); - Assert.assertFalse(printer.isCalled(Level.DEBUG)); - Assert.assertFalse(printer.isCalled(Level.INFO)); - Assert.assertFalse(printer.isCalled(Level.WARNING)); - Assert.assertTrue(printer.isCalled(Level.ERROR)); - Assert.assertTrue(printer.isCalled(Level.ASSERT)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.VERBOSE)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.DEBUG)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.INFO)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.WARNING)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.ERROR)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.ASSERT)); } @Test public void testAssert() { - Logger.instance().setLevel(Level.ASSERT); + Logger.instance().setLevel(SplitLogLevel.ASSERT); logAll(); - Assert.assertFalse(printer.isCalled(Level.VERBOSE)); - Assert.assertFalse(printer.isCalled(Level.DEBUG)); - Assert.assertFalse(printer.isCalled(Level.INFO)); - Assert.assertFalse(printer.isCalled(Level.WARNING)); - Assert.assertFalse(printer.isCalled(Level.ERROR)); - Assert.assertTrue(printer.isCalled(Level.ASSERT)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.VERBOSE)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.DEBUG)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.INFO)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.WARNING)); + Assert.assertFalse(printer.isCalled(SplitLogLevel.ERROR)); + Assert.assertTrue(printer.isCalled(SplitLogLevel.ASSERT)); } void logAll() { From 1e0c0a192c048a932408e32b8789406ee153e2b4 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Mon, 10 Nov 2025 13:58:20 -0300 Subject: [PATCH 14/26] Rename internal modules --- build.gradle | 8 ++++---- {android-client-logger => logger}/.gitignore | 0 {android-client-logger => logger}/build.gradle | 0 .../src/main/AndroidManifest.xml | 0 .../io/split/android/client/utils/logger/LogPrinter.java | 0 .../split/android/client/utils/logger/LogPrinterImpl.java | 0 .../java/io/split/android/client/utils/logger/Logger.java | 0 .../split/android/client/utils/logger/SplitLogLevel.java | 0 .../split/android/client/utils/logger/LogPrinterStub.java | 0 .../io/split/android/client/utils/logger/LoggerTest.java | 0 {android-client-main => main}/.gitignore | 0 {android-client-main => main}/build.gradle | 4 +--- {android-client-main => main}/build.gradle.tmp | 0 {android-client-main => main}/consumer-rules.pro | 0 .../src/androidTest/AndroidManifest.xml | 0 .../androidTest/assets/attributes_test_split_change.json | 0 .../src/androidTest/assets/bucket_split_test.json | 0 .../src/androidTest/assets/lorem_ipsum.txt | 0 .../src/androidTest/assets/push_msg-ably_error_40012.txt | 0 .../src/androidTest/assets/push_msg-ably_error_40142.txt | 0 .../src/androidTest/assets/push_msg-control.txt | 0 .../androidTest/assets/push_msg-largesegment_update.txt | 0 .../src/androidTest/assets/push_msg-occupancy.txt | 0 .../src/androidTest/assets/push_msg-segment_updV2.txt | 0 .../src/androidTest/assets/push_msg-segment_update.txt | 0 .../assets/push_msg-segment_update_empty_payload.txt | 0 .../assets/push_msg-segment_update_payload.txt | 0 .../assets/push_msg-segment_update_payload_generic.txt | 0 .../src/androidTest/assets/push_msg-split_kill.txt | 0 .../src/androidTest/assets/push_msg-split_kill_old.txt | 0 .../androidTest/assets/push_msg-split_update-chgnum.txt | 0 .../src/androidTest/assets/push_msg-split_update.txt | 0 .../assets/push_msg-split_update_old_change_nb.txt | 0 .../src/androidTest/assets/push_token-expired.txt | 0 .../src/androidTest/assets/simple_split.json | 0 .../src/androidTest/assets/split.json | 0 .../src/androidTest/assets/split_changes_1.json | 0 .../src/androidTest/assets/split_changes_flag_set-0.json | 0 .../src/androidTest/assets/split_changes_flag_set-1.json | 0 .../src/androidTest/assets/split_changes_flag_set-2.json | 0 .../src/androidTest/assets/split_changes_imp_toggle.json | 0 .../assets/split_changes_large_segments-0.json | 0 .../src/androidTest/assets/split_changes_legacy.json | 0 .../src/androidTest/assets/split_changes_rbs.json | 0 .../src/androidTest/assets/split_changes_semver.json | 0 .../src/androidTest/assets/split_dependency.json | 0 .../src/androidTest/assets/splitchanges_int_test.json | 0 .../androidTest/assets/splitchanges_prerequisites.json | 0 .../assets/splitchanges_unsupported_matcher.json | 0 .../src/androidTest/assets/splits.yaml | 0 .../src/androidTest/assets/splits1.properties | 0 .../src/androidTest/assets/splits_test.properties | 0 .../src/androidTest/assets/splits_yml.yml | 0 .../src/androidTest/java/fake/HttpClientMock.java | 0 .../src/androidTest/java/fake/HttpClientStub.java | 0 .../src/androidTest/java/fake/HttpRequestMock.java | 0 .../src/androidTest/java/fake/HttpRequestStub.java | 0 .../src/androidTest/java/fake/HttpResponseMock.java | 0 .../androidTest/java/fake/HttpResponseMockDispatcher.java | 0 .../src/androidTest/java/fake/HttpResponseStub.java | 0 .../src/androidTest/java/fake/HttpStreamRequestMock.java | 0 .../src/androidTest/java/fake/HttpStreamResponseMock.java | 0 .../src/androidTest/java/fake/LifecycleManagerStub.java | 0 .../src/androidTest/java/fake/SplitClientStub.java | 0 .../java/fake/SplitEventExecutorResourcesMock.java | 0 .../src/androidTest/java/fake/SyncManagerStub.java | 0 .../src/androidTest/java/fake/SynchronizerSpyImpl.java | 0 .../src/androidTest/java/helper/DataSample.kt | 0 .../src/androidTest/java/helper/DatabaseHelper.java | 0 .../src/androidTest/java/helper/FileHelper.java | 0 .../androidTest/java/helper/ImpressionListenerHelper.java | 0 .../src/androidTest/java/helper/IntegrationHelper.java | 0 .../src/androidTest/java/helper/SplitEventTaskHelper.java | 0 .../java/helper/TestableSplitConfigBuilder.java | 0 .../impressions/ImpressionPropertiesIntegrationTest.java | 0 .../client/service/impressions/ImpressionUtilsTest.java | 0 .../impressions/observer/DedupeIntegrationTest.java | 0 .../ImpressionsObserverCacheImplIntegrationTest.java | 0 .../impressions/observer/ImpressionsObserverTest.java | 0 .../impressions/observer/ListenableLruCacheTest.java | 0 .../java/tests/database/AttributesDaoTest.java | 0 .../java/tests/database/DatabaseInitializationTest.java | 0 .../java/tests/database/GeneralInfoDaoTest.java | 0 .../androidTest/java/tests/database/GenericDaoTest.java | 0 .../java/tests/database/ImpressionDaoTest.java | 0 .../tests/database/ImpressionsObserverCacheDaoTest.java | 0 .../java/tests/database/MyLargeSegmentDaoTest.java | 0 .../androidTest/java/tests/database/MySegmentDaoTest.java | 0 .../java/tests/database/RuleBasedSegmentDaoTest.java | 0 .../src/androidTest/java/tests/database/SplitDaoTest.java | 0 .../src/androidTest/java/tests/database/TrackDaoTest.java | 0 .../java/tests/database/UniqueKeysDaoTest.java | 0 .../java/tests/integration/FlagsSpecInRequestTest.java | 0 .../java/tests/integration/InitialChangeNumberTest.java | 0 .../java/tests/integration/IntegrationTest.java | 0 .../java/tests/integration/LifecyleOnBGTest.java | 0 .../java/tests/integration/MySegmentUpdatedTest.java | 0 .../java/tests/integration/MySegmentsServerErrorTest.java | 0 .../java/tests/integration/ProxyFactoryTest.java | 0 .../java/tests/integration/SingleSyncTest.java | 0 .../java/tests/integration/SplitChangesCdnBypassTest.java | 0 .../tests/integration/SplitChangesServerErrorTest.java | 0 .../java/tests/integration/SplitChangesTest.java | 0 .../tests/integration/SplitFactoryFreshInstallTest.java | 0 .../tests/integration/SplitFetchSpecificSplitTest.java | 0 .../tests/integration/SplitsTwoDifferentApiKeyTest.java | 0 .../src/androidTest/java/tests/integration/TrackTest.java | 0 .../integration/attributes/AttributesIntegrationTest.java | 0 .../java/tests/integration/encryption/EncryptionTest.java | 0 .../integration/fallback/FallbackTreatmentsTest.java | 0 .../java/tests/integration/init/InitializationTest.java | 0 .../integration/largesegments/LargeSegmentTestHelper.java | 0 .../largesegments/LargeSegmentsStreamingTest.java | 0 .../integration/largesegments/LargeSegmentsTest.java | 0 .../java/tests/integration/matcher/PrerequisitesTest.java | 0 .../java/tests/integration/matcher/SemverMatcherTest.java | 0 .../tests/integration/matcher/UnsupportedMatcherTest.java | 0 .../java/tests/integration/pin/CertPinningTest.java | 0 .../integration/rbs/OutdatedProxyIntegrationTest.java | 0 .../integration/rbs/RuleBasedSegmentsIntegrationTest.java | 0 .../rollout/RolloutCacheManagerIntegrationTest.java | 0 .../tests/integration/sets/FlagSetsEvaluationTest.java | 0 .../integration/sets/FlagSetsMultipleFactoryTest.java | 0 .../java/tests/integration/sets/FlagSetsPollingTest.java | 0 .../tests/integration/sets/FlagSetsStreamingTest.java | 0 .../tests/integration/shared/BaseSharedClientsTest.java | 0 .../integration/shared/InterdependentSplitsTest.java | 0 .../integration/shared/MySegmentsBeforeSplitsTest.java | 0 .../integration/shared/SharedClientsIntegrationTest.java | 0 .../java/tests/integration/shared/TestingData.java | 0 .../java/tests/integration/shared/TestingHelper.java | 0 .../tests/integration/streaming/AblyErrorBaseTest.java | 0 .../java/tests/integration/streaming/AblyErrorTest.java | 0 .../tests/integration/streaming/CleanUpDatabaseTest.java | 0 .../java/tests/integration/streaming/ControlTest.java | 0 .../tests/integration/streaming/ImpressionsCountTest.java | 0 .../streaming/MySegmentsChangeV2MultiClientTest.java | 0 .../integration/streaming/MySegmentsChangeV2Test.java | 0 .../integration/streaming/MySegmentsSyncProcessTest.java | 0 .../tests/integration/streaming/OccupancyBaseTest.java | 0 .../java/tests/integration/streaming/OccupancyTest.java | 0 .../integration/streaming/SdkUpdateStreamingTest.java | 0 .../streaming/SplitChangeNotificationIntegrationTest.java | 0 .../integration/streaming/SplitsKillProcessTest.java | 0 .../integration/streaming/SplitsSyncProcessTest.java | 0 .../tests/integration/streaming/SseAuthFail4xxTest.java | 0 .../tests/integration/streaming/SseAuthFail5xxTest.java | 0 .../streaming/SseConnectionExpiredTokenTest.java | 0 .../integration/streaming/SseConnectionFail5xxTest.java | 0 .../streaming/StreamingDisabledInConfigTest.java | 0 .../integration/streaming/StreamingDisabledTest.java | 0 .../streaming/StreamingInitializationTest.java | 0 .../streaming/SyncGuardianIntegrationTest.java | 0 .../integration/telemetry/TelemetryIntegrationTest.java | 0 .../integration/telemetry/TelemetryOccupancyTest.java | 0 .../telemetry/TelemetryStreamingErrorTest.java | 0 .../tests/integration/toggle/ImpressionsToggleTest.java | 0 .../integration/userconsent/UserConsentModeDebugTest.kt | 0 .../integration/userconsent/UserConsentModeNoneTest.kt | 0 .../userconsent/UserConsentModeOptimizedTest.kt | 0 .../localhost/LocalhostPropertiesFileParserTest.java | 0 .../androidTest/java/tests/localhost/LocalhostTest.java | 0 .../androidTest/java/tests/service/CompressionTest.java | 0 .../androidTest/java/tests/service/EventsManagerTest.java | 0 .../androidTest/java/tests/service/EventsRequestTest.java | 0 .../java/tests/service/ImpressionsRequestTest.java | 0 .../java/tests/service/MySegmentV2PayloadDecoderTest.java | 0 .../java/tests/service/SdkUpdatePollingTest.java | 0 .../java/tests/service/SseJwtTokenParserTest.java | 0 .../java/tests/service/UniqueKeysIntegrationTest.java | 0 .../androidTest/java/tests/service/UrlSanitizerTest.java | 0 .../java/tests/storage/GeneralInfoStorageTest.java | 0 .../java/tests/storage/LoadMySegmentsTaskTest.java | 0 .../androidTest/java/tests/storage/LoadSplitTaskTest.java | 0 .../java/tests/storage/MySegmentsStorageTest.java | 0 .../java/tests/storage/PersistentEventStorageTest.java | 0 .../storage/PersistentImpressionCountStorageTest.java | 0 .../tests/storage/PersistentImpressionStorageTest.java | 0 .../storage/PersistentMyLargeSegmentStorageTest.java | 0 .../tests/storage/PersistentMySegmentStorageTest.java | 0 .../java/tests/storage/PersistentSplitsStorageTest.java | 0 .../androidTest/java/tests/storage/SplitsStorageTest.java | 0 .../java/tests/storage/cipher/CBCCipherTest.kt | 0 .../java/tests/storage/cipher/KeyManagerTest.java | 0 .../storage/cipher/provider/LegacyKeyProviderTest.java | 0 .../cipher/provider/SecureKeyStorageProviderTest.java | 0 .../java/tests/workmanager/WMWorkersSetupTest.java | 0 .../java/tests/workmanager/WorkManagerWrapperTest.java | 0 .../src/main/AndroidManifest.xml | 0 .../android/client/AlwaysReturnControlSplitClient.java | 0 .../src/main/java/io/split/android/client/Destroyer.java | 0 .../java/io/split/android/client/EvaluationOptions.java | 0 .../java/io/split/android/client/EvaluationResult.java | 0 .../src/main/java/io/split/android/client/Evaluator.java | 0 .../main/java/io/split/android/client/EvaluatorImpl.java | 0 .../main/java/io/split/android/client/EventsTracker.java | 0 .../java/io/split/android/client/EventsTrackerImpl.java | 0 .../java/io/split/android/client/FeatureFlagFilter.java | 0 .../main/java/io/split/android/client/FilterBuilder.java | 0 .../main/java/io/split/android/client/FilterGrouper.java | 0 .../main/java/io/split/android/client/FlagSetsFilter.java | 0 .../java/io/split/android/client/FlagSetsFilterImpl.java | 0 .../io/split/android/client/ProcessedEventProperties.java | 0 .../io/split/android/client/PropertyValidatorImpl.java | 0 .../android/client/RetryBackoffCounterTimerFactory.java | 0 .../split/android/client/RolloutCacheConfiguration.java | 0 .../java/io/split/android/client/ServiceEndpoints.java | 0 .../main/java/io/split/android/client/SplitClient.java | 0 .../java/io/split/android/client/SplitClientConfig.java | 0 .../java/io/split/android/client/SplitClientFactory.java | 0 .../io/split/android/client/SplitClientFactoryImpl.java | 0 .../java/io/split/android/client/SplitClientImpl.java | 0 .../main/java/io/split/android/client/SplitFactory.java | 0 .../java/io/split/android/client/SplitFactoryBuilder.java | 0 .../java/io/split/android/client/SplitFactoryHelper.java | 0 .../java/io/split/android/client/SplitFactoryImpl.java | 0 .../main/java/io/split/android/client/SplitFilter.java | 0 .../main/java/io/split/android/client/SplitManager.java | 0 .../java/io/split/android/client/SplitManagerImpl.java | 0 .../main/java/io/split/android/client/SplitResult.java | 0 .../src/main/java/io/split/android/client/SyncConfig.java | 0 .../main/java/io/split/android/client/TestingConfig.java | 0 .../java/io/split/android/client/TreatmentLabels.java | 0 .../java/io/split/android/client/UserConsentManager.java | 0 .../io/split/android/client/UserConsentManagerImpl.java | 0 .../src/main/java/io/split/android/client/api/Key.java | 0 .../main/java/io/split/android/client/api/SplitView.java | 0 .../android/client/attributes/AttributesManager.java | 0 .../client/attributes/AttributesManagerFactory.java | 0 .../client/attributes/AttributesManagerFactoryImpl.java | 0 .../android/client/attributes/AttributesManagerImpl.java | 0 .../split/android/client/attributes/AttributesMerger.java | 0 .../android/client/attributes/AttributesMergerImpl.java | 0 .../io/split/android/client/common/CompressionType.java | 0 .../android/client/common/CompressionUtilProvider.java | 0 .../main/java/io/split/android/client/dtos/Algorithm.java | 0 .../io/split/android/client/dtos/AllSegmentsChange.java | 0 .../io/split/android/client/dtos/BetweenMatcherData.java | 0 .../android/client/dtos/BetweenStringMatcherData.java | 0 .../java/io/split/android/client/dtos/ChunkHeader.java | 0 .../main/java/io/split/android/client/dtos/Condition.java | 0 .../java/io/split/android/client/dtos/ConditionType.java | 0 .../main/java/io/split/android/client/dtos/Counter.java | 0 .../main/java/io/split/android/client/dtos/DataType.java | 0 .../split/android/client/dtos/DependencyMatcherData.java | 0 .../android/client/dtos/DeprecatedKeyImpression.java | 0 .../src/main/java/io/split/android/client/dtos/Event.java | 0 .../main/java/io/split/android/client/dtos/Excluded.java | 0 .../io/split/android/client/dtos/ExcludedSegment.java | 0 .../main/java/io/split/android/client/dtos/Helper.java | 0 .../java/io/split/android/client/dtos/HttpProxyDto.java | 0 .../java/io/split/android/client/dtos/Identifiable.java | 0 .../java/io/split/android/client/dtos/KeyImpression.java | 0 .../java/io/split/android/client/dtos/KeySelector.java | 0 .../main/java/io/split/android/client/dtos/Matcher.java | 0 .../io/split/android/client/dtos/MatcherCombiner.java | 0 .../java/io/split/android/client/dtos/MatcherGroup.java | 0 .../java/io/split/android/client/dtos/MatcherType.java | 0 .../main/java/io/split/android/client/dtos/Partition.java | 0 .../java/io/split/android/client/dtos/Prerequisite.java | 0 .../io/split/android/client/dtos/RuleBasedSegment.java | 0 .../split/android/client/dtos/RuleBasedSegmentChange.java | 0 .../main/java/io/split/android/client/dtos/Segment.java | 0 .../io/split/android/client/dtos/SegmentResponse.java | 0 .../java/io/split/android/client/dtos/SegmentsChange.java | 0 .../io/split/android/client/dtos/SerializableEvent.java | 0 .../src/main/java/io/split/android/client/dtos/Split.java | 0 .../java/io/split/android/client/dtos/SplitChange.java | 0 .../main/java/io/split/android/client/dtos/Status.java | 0 .../split/android/client/dtos/TargetingRulesChange.java | 0 .../io/split/android/client/dtos/TestImpressions.java | 0 .../src/main/java/io/split/android/client/dtos/URN.java | 0 .../android/client/dtos/UnaryNumericMatcherData.java | 0 .../client/dtos/UserDefinedLargeSegmentMatcherData.java | 0 .../client/dtos/UserDefinedSegmentMatcherData.java | 0 .../split/android/client/dtos/WhitelistMatcherData.java | 0 .../io/split/android/client/events/BaseEventsManager.java | 0 .../android/client/events/EventsManagerCoordinator.java | 0 .../android/client/events/EventsManagerRegistry.java | 0 .../split/android/client/events/ISplitEventsManager.java | 0 .../android/client/events/ListenableEventsManager.java | 0 .../java/io/split/android/client/events/SplitEvent.java | 0 .../io/split/android/client/events/SplitEventTask.java | 0 .../SplitEventTaskMethodNotImplementedException.java | 0 .../split/android/client/events/SplitEventsManager.java | 0 .../split/android/client/events/SplitInternalEvent.java | 0 .../client/events/executors/ClientEventSplitTask.java | 0 .../client/events/executors/SplitEventExecutor.java | 0 .../events/executors/SplitEventExecutorFactory.java | 0 .../events/executors/SplitEventExecutorResources.java | 0 .../events/executors/SplitEventExecutorResourcesImpl.java | 0 .../events/executors/SplitEventExecutorWithClient.java | 0 .../client/exceptions/ChangeNumberExceptionWrapper.java | 0 .../client/exceptions/MySegmentsParsingException.java | 0 .../client/exceptions/ParentIsControlException.java | 0 .../client/exceptions/SplitInstantiationException.java | 0 .../io/split/android/client/factory/FactoryMonitor.java | 0 .../split/android/client/factory/FactoryMonitorImpl.java | 0 .../split/android/client/fallback/FallbackTreatment.java | 0 .../client/fallback/FallbackTreatmentsCalculator.java | 0 .../client/fallback/FallbackTreatmentsCalculatorImpl.java | 0 .../client/fallback/FallbackTreatmentsConfiguration.java | 0 .../split/android/client/fallback/FallbacksSanitizer.java | 0 .../android/client/fallback/FallbacksSanitizerImpl.java | 0 .../android/client/impressions/DecoratedImpression.java | 0 .../client/impressions/DecoratedImpressionListener.java | 0 .../io/split/android/client/impressions/Impression.java | 0 .../android/client/impressions/ImpressionListener.java | 0 .../android/client/impressions/ImpressionLoggingTask.java | 0 .../client/impressions/SyncImpressionListener.java | 0 .../android/client/lifecycle/SplitLifecycleAware.java | 0 .../android/client/lifecycle/SplitLifecycleManager.java | 0 .../client/lifecycle/SplitLifecycleManagerImpl.java | 0 .../android/client/localhost/LocalhostFileParser.java | 0 .../client/localhost/LocalhostImpressionsListener.java | 0 .../localhost/LocalhostMySegmentsStorageContainer.java | 0 .../client/localhost/LocalhostPropertiesFileParser.java | 0 .../localhost/LocalhostRuleBasedSegmentsStorage.java | 0 .../LocalhostRuleBasedSegmentsStorageProvider.java | 0 .../android/client/localhost/LocalhostSplitClient.java | 0 .../android/client/localhost/LocalhostSplitFactory.java | 0 .../android/client/localhost/LocalhostSplitsStorage.java | 0 .../android/client/localhost/LocalhostSynchronizer.java | 0 .../android/client/localhost/LocalhostYamlFileParser.java | 0 .../io/split/android/client/localhost/SplitHelper.java | 0 .../shared/LocalhostSplitClientContainerImpl.java | 0 .../java/io/split/android/client/network/Algorithm.java | 0 .../android/client/network/AuthenticatedRequest.java | 0 .../io/split/android/client/network/Authenticator.java | 0 .../io/split/android/client/network/Base64Decoder.java | 0 .../io/split/android/client/network/Base64Encoder.java | 0 .../io/split/android/client/network/BaseHttpResponse.java | 0 .../android/client/network/BaseHttpResponseImpl.java | 0 .../android/client/network/BasicCredentialsProvider.java | 0 .../android/client/network/BearerCredentialsProvider.java | 0 .../split/android/client/network/CertificateChecker.java | 0 .../android/client/network/CertificateCheckerHelper.java | 0 .../android/client/network/CertificateCheckerImpl.java | 0 .../io/split/android/client/network/CertificatePin.java | 0 .../client/network/CertificatePinningConfiguration.java | 0 .../network/CertificatePinningConfigurationProvider.java | 0 .../client/network/CertificatePinningFailureListener.java | 0 .../io/split/android/client/network/ChainCleaner.java | 0 .../io/split/android/client/network/ChainCleanerImpl.java | 0 .../android/client/network/DefaultBase64Decoder.java | 0 .../android/client/network/DefaultBase64Encoder.java | 0 .../android/client/network/DevelopmentSslConfig.java | 0 .../java/io/split/android/client/network/HttpClient.java | 0 .../io/split/android/client/network/HttpClientImpl.java | 0 .../io/split/android/client/network/HttpException.java | 0 .../java/io/split/android/client/network/HttpMethod.java | 0 .../android/client/network/HttpOverTunnelExecutor.java | 0 .../java/io/split/android/client/network/HttpProxy.java | 0 .../java/io/split/android/client/network/HttpRequest.java | 0 .../split/android/client/network/HttpRequestHelper.java | 0 .../io/split/android/client/network/HttpRequestImpl.java | 0 .../io/split/android/client/network/HttpResponse.java | 0 .../client/network/HttpResponseConnectionAdapter.java | 0 .../io/split/android/client/network/HttpResponseImpl.java | 0 .../split/android/client/network/HttpStreamRequest.java | 0 .../android/client/network/HttpStreamRequestImpl.java | 0 .../split/android/client/network/HttpStreamResponse.java | 0 .../android/client/network/HttpStreamResponseImpl.java | 0 .../io/split/android/client/network/LegacyTlsUpdater.java | 0 .../io/split/android/client/network/PercentEscaper.java | 0 .../java/io/split/android/client/network/PinEncoder.java | 0 .../io/split/android/client/network/PinEncoderImpl.java | 0 .../client/network/ProxyCacertConnectionHandler.java | 0 .../split/android/client/network/ProxyConfiguration.java | 0 .../android/client/network/ProxyCredentialsProvider.java | 0 .../client/network/ProxySslSocketFactoryProvider.java | 0 .../client/network/ProxySslSocketFactoryProviderImpl.java | 0 .../android/client/network/RawHttpResponseParser.java | 0 .../io/split/android/client/network/SdkTargetPath.java | 0 .../android/client/network/SplitAuthenticatedRequest.java | 0 .../split/android/client/network/SplitAuthenticator.java | 0 .../android/client/network/SplitBasicAuthenticator.java | 0 .../android/client/network/SplitHttpHeadersBuilder.java | 0 .../client/network/SplitUrlConnectionAuthenticator.java | 0 .../android/client/network/SslProxyTunnelEstablisher.java | 0 .../android/client/network/Tls12OnlySocketFactory.java | 0 .../android/client/network/TrustManagerProvider.java | 0 .../java/io/split/android/client/network/URIBuilder.java | 0 .../io/split/android/client/network/UnicodeEscaper.java | 0 .../java/io/split/android/client/network/UrlEscapers.java | 0 .../io/split/android/client/network/UrlSanitizer.java | 0 .../io/split/android/client/network/UrlSanitizerImpl.java | 0 .../split/android/client/service/CleanUpDatabaseTask.java | 0 .../io/split/android/client/service/ServiceConstants.java | 0 .../io/split/android/client/service/ServiceFactory.java | 0 .../io/split/android/client/service/SplitApiFacade.java | 0 .../client/service/attributes/AttributeTaskFactory.java | 0 .../service/attributes/AttributeTaskFactoryImpl.java | 0 .../ClearAttributesInPersistentStorageTask.java | 0 .../client/service/attributes/LoadAttributesTask.java | 0 .../UpdateAttributesInPersistentStorageTask.java | 0 .../android/client/service/events/EventsRecorderTask.java | 0 .../client/service/events/EventsRecorderTaskConfig.java | 0 .../service/events/EventsRequestBodySerializer.java | 0 .../client/service/executor/SplitBaseTaskExecutor.java | 0 .../service/executor/SplitClientEventTaskExecutor.java | 0 .../service/executor/SplitSingleThreadTaskExecutor.java | 0 .../split/android/client/service/executor/SplitTask.java | 0 .../client/service/executor/SplitTaskBatchItem.java | 0 .../client/service/executor/SplitTaskBatchWrapper.java | 0 .../client/service/executor/SplitTaskExecutionInfo.java | 0 .../service/executor/SplitTaskExecutionListener.java | 0 .../client/service/executor/SplitTaskExecutionStatus.java | 0 .../client/service/executor/SplitTaskExecutor.java | 0 .../client/service/executor/SplitTaskExecutorImpl.java | 0 .../android/client/service/executor/SplitTaskFactory.java | 0 .../client/service/executor/SplitTaskFactoryImpl.java | 0 .../client/service/executor/SplitTaskSerialWrapper.java | 0 .../android/client/service/executor/SplitTaskType.java | 0 .../android/client/service/executor/TaskWrapper.java | 0 .../client/service/executor/ThreadFactoryBuilder.java | 0 .../service/executor/parallel/SplitDeferredTaskItem.java | 0 .../executor/parallel/SplitParallelTaskExecutor.java | 0 .../parallel/SplitParallelTaskExecutorFactory.java | 0 .../parallel/SplitParallelTaskExecutorFactoryImpl.java | 0 .../executor/parallel/SplitParallelTaskExecutorImpl.java | 0 .../io/split/android/client/service/http/HttpFetcher.java | 0 .../android/client/service/http/HttpFetcherException.java | 0 .../android/client/service/http/HttpFetcherImpl.java | 0 .../android/client/service/http/HttpGeneralException.java | 0 .../split/android/client/service/http/HttpRecorder.java | 0 .../client/service/http/HttpRecorderException.java | 0 .../android/client/service/http/HttpRecorderImpl.java | 0 .../client/service/http/HttpRequestBodySerializer.java | 0 .../android/client/service/http/HttpResponseParser.java | 0 .../client/service/http/HttpResponseParserException.java | 0 .../client/service/http/HttpSseAuthTokenFetcher.java | 0 .../io/split/android/client/service/http/HttpStatus.java | 0 .../service/http/mysegments/MySegmentsFetcherFactory.java | 0 .../http/mysegments/MySegmentsFetcherFactoryImpl.java | 0 .../client/service/impressions/ImpressionHasher.java | 0 .../client/service/impressions/ImpressionManager.java | 0 .../service/impressions/ImpressionManagerConfig.java | 0 .../impressions/ImpressionManagerRetryTimerProvider.java | 0 .../ImpressionManagerRetryTimerProviderImpl.java | 0 .../client/service/impressions/ImpressionUtils.java | 0 .../client/service/impressions/ImpressionsCount.java | 0 .../service/impressions/ImpressionsCountPerFeature.java | 0 .../service/impressions/ImpressionsCountRecorderTask.java | 0 .../ImpressionsCountRequestBodySerializer.java | 0 .../client/service/impressions/ImpressionsCounter.java | 0 .../client/service/impressions/ImpressionsMode.java | 0 .../service/impressions/ImpressionsRecorderTask.java | 0 .../impressions/ImpressionsRecorderTaskConfig.java | 0 .../impressions/ImpressionsRequestBodySerializer.java | 0 .../service/impressions/ImpressionsTaskFactory.java | 0 .../service/impressions/KeyImpressionSerializer.java | 0 .../client/service/impressions/MemoizedSupplier.java | 0 .../service/impressions/SaveImpressionsCountTask.java | 0 .../service/impressions/StrategyImpressionManager.java | 0 .../service/impressions/observer/ImpressionsObserver.java | 0 .../impressions/observer/ImpressionsObserverCache.java | 0 .../observer/ImpressionsObserverCacheImpl.java | 0 .../impressions/observer/ImpressionsObserverImpl.java | 0 .../service/impressions/observer/ListenableLruCache.java | 0 .../impressions/observer/PeriodicPersistenceTask.java | 0 .../PersistentImpressionsObserverCacheStorage.java | 0 .../SqlitePersistentImpressionsObserverCacheStorage.java | 0 .../service/impressions/strategy/DebugStrategy.java | 0 .../client/service/impressions/strategy/DebugTracker.java | 0 .../impressions/strategy/ImpressionStrategyConfig.java | 0 .../impressions/strategy/ImpressionStrategyProvider.java | 0 .../client/service/impressions/strategy/NoneStrategy.java | 0 .../client/service/impressions/strategy/NoneTracker.java | 0 .../service/impressions/strategy/OptimizedStrategy.java | 0 .../service/impressions/strategy/OptimizedTracker.java | 0 .../service/impressions/strategy/PeriodicTracker.java | 0 .../service/impressions/strategy/ProcessStrategy.java | 0 .../client/service/impressions/strategy/Utils.java | 0 .../android/client/service/impressions/unique/MTK.java | 0 .../impressions/unique/MTKRequestBodySerializer.java | 0 .../impressions/unique/SaveUniqueImpressionsTask.java | 0 .../client/service/impressions/unique/UniqueKey.java | 0 .../impressions/unique/UniqueKeysRecorderTask.java | 0 .../impressions/unique/UniqueKeysRecorderTaskConfig.java | 0 .../service/impressions/unique/UniqueKeysTracker.java | 0 .../service/impressions/unique/UniqueKeysTrackerImpl.java | 0 .../service/mysegments/AllSegmentsResponseParser.java | 0 .../client/service/mysegments/LoadMySegmentsTask.java | 0 .../service/mysegments/LoadMySegmentsTaskConfig.java | 0 .../client/service/mysegments/MySegmentUpdateParams.java | 0 .../client/service/mysegments/MySegmentsBulkSyncTask.java | 0 .../client/service/mysegments/MySegmentsSyncTask.java | 0 .../service/mysegments/MySegmentsSyncTaskConfig.java | 0 .../client/service/mysegments/MySegmentsTaskFactory.java | 0 .../mysegments/MySegmentsTaskFactoryConfiguration.java | 0 .../service/mysegments/MySegmentsTaskFactoryImpl.java | 0 .../service/mysegments/MySegmentsTaskFactoryProvider.java | 0 .../mysegments/MySegmentsTaskFactoryProviderImpl.java | 0 .../client/service/mysegments/MySegmentsUpdateTask.java | 0 .../service/mysegments/MySegmentsUpdateTaskConfig.java | 0 .../client/service/rules/LoadRuleBasedSegmentsTask.java | 0 .../service/rules/ProcessedRuleBasedSegmentChange.java | 0 .../service/rules/RuleBasedSegmentChangeProcessor.java | 0 .../service/rules/RuleBasedSegmentInPlaceUpdateTask.java | 0 .../service/rules/TargetingRulesResponseParser.java | 0 .../client/service/splits/FeatureFlagProcessStrategy.java | 0 .../client/service/splits/FilterSplitsInCacheTask.java | 0 .../android/client/service/splits/LoadSplitsTask.java | 0 .../client/service/splits/OutdatedSplitProxyHandler.java | 0 .../service/splits/RuleBasedSegmentInPlaceUpdateTask.java | 0 .../client/service/splits/SplitChangeProcessor.java | 0 .../client/service/splits/SplitChangeResponseParser.java | 0 .../client/service/splits/SplitInPlaceUpdateTask.java | 0 .../android/client/service/splits/SplitKillTask.java | 0 .../android/client/service/splits/SplitsSyncHelper.java | 0 .../android/client/service/splits/SplitsSyncTask.java | 0 .../android/client/service/splits/SplitsUpdateTask.java | 0 .../client/service/splits/TargetingRulesCache.java | 0 .../SseAuthenticationResponseParser.java | 0 .../android/client/service/sseclient/BackoffCounter.java | 0 .../client/service/sseclient/EventStreamParser.java | 0 .../service/sseclient/FixedIntervalBackoffCounter.java | 0 .../service/sseclient/InvalidJwtTokenException.java | 0 .../client/service/sseclient/ReconnectBackoffCounter.java | 0 .../android/client/service/sseclient/SseAuthToken.java | 0 .../service/sseclient/SseAuthenticationResponse.java | 0 .../android/client/service/sseclient/SseJwtParser.java | 0 .../android/client/service/sseclient/SseJwtToken.java | 0 .../feedbackchannel/BroadcastedEventListener.java | 0 .../sseclient/feedbackchannel/DelayStatusEvent.java | 0 .../feedbackchannel/PushManagerEventBroadcaster.java | 0 .../sseclient/feedbackchannel/PushStatusEvent.java | 0 .../sseclient/notifications/ControlNotification.java | 0 .../service/sseclient/notifications/HashingAlgorithm.java | 0 .../sseclient/notifications/IncomingNotification.java | 0 .../sseclient/notifications/IncomingNotificationType.java | 0 .../notifications/InstantUpdateChangeNotification.java | 0 .../client/service/sseclient/notifications/KeyList.java | 0 .../sseclient/notifications/MembershipNotification.java | 0 .../sseclient/notifications/MySegmentUpdateStrategy.java | 0 .../notifications/MySegmentsV2PayloadDecoder.java | 0 .../sseclient/notifications/NotificationParser.java | 0 .../sseclient/notifications/NotificationProcessor.java | 0 .../service/sseclient/notifications/NotificationType.java | 0 .../sseclient/notifications/OccupancyNotification.java | 0 .../service/sseclient/notifications/RawNotification.java | 0 .../notifications/RuleBasedSegmentChangeNotification.java | 0 .../sseclient/notifications/SplitKillNotification.java | 0 .../sseclient/notifications/SplitsChangeNotification.java | 0 .../service/sseclient/notifications/StreamingError.java | 0 .../memberships/MembershipsNotificationProcessor.java | 0 .../memberships/MembershipsNotificationProcessorImpl.java | 0 .../MembershipsNotificationProcessorFactory.java | 0 .../MembershipsNotificationProcessorFactoryImpl.java | 0 .../MySegmentsNotificationProcessorConfiguration.java | 0 .../MySegmentsNotificationProcessorRegistry.java | 0 .../notifications/mysegments/SyncDelayCalculator.java | 0 .../notifications/mysegments/SyncDelayCalculatorImpl.java | 0 .../service/sseclient/reactor/MySegmentsUpdateWorker.java | 0 .../sseclient/reactor/MySegmentsUpdateWorkerRegistry.java | 0 .../reactor/MySegmentsUpdateWorkerRegistryImpl.java | 0 .../service/sseclient/reactor/SplitUpdatesWorker.java | 0 .../client/service/sseclient/reactor/UpdateWorker.java | 0 .../service/sseclient/sseclient/BackoffCounterTimer.java | 0 .../sseclient/sseclient/NotificationManagerKeeper.java | 0 .../sseclient/sseclient/PushNotificationManager.java | 0 .../PushNotificationManagerDeferredStartTask.java | 0 .../sseclient/sseclient/RetryBackoffCounterTimer.java | 0 .../sseclient/sseclient/SseAuthenticationResult.java | 0 .../service/sseclient/sseclient/SseAuthenticator.java | 0 .../client/service/sseclient/sseclient/SseClient.java | 0 .../client/service/sseclient/sseclient/SseClientImpl.java | 0 .../sseclient/sseclient/SseDisconnectionTimer.java | 0 .../client/service/sseclient/sseclient/SseHandler.java | 0 .../service/sseclient/sseclient/SseRefreshTokenTimer.java | 0 .../service/sseclient/sseclient/StreamingComponents.java | 0 .../service/synchronizer/FeatureFlagsSynchronizer.java | 0 .../synchronizer/FeatureFlagsSynchronizerImpl.java | 0 .../service/synchronizer/LoadLocalDataListener.java | 0 .../service/synchronizer/MySegmentsChangeChecker.java | 0 .../client/service/synchronizer/RecorderSyncHelper.java | 0 .../service/synchronizer/RecorderSyncHelperImpl.java | 0 .../client/service/synchronizer/RolloutCacheManager.java | 0 .../service/synchronizer/RolloutCacheManagerImpl.java | 0 .../client/service/synchronizer/SplitsChangeChecker.java | 0 .../android/client/service/synchronizer/SyncGuardian.java | 0 .../client/service/synchronizer/SyncGuardianImpl.java | 0 .../android/client/service/synchronizer/SyncManager.java | 0 .../client/service/synchronizer/SyncManagerImpl.java | 0 .../android/client/service/synchronizer/Synchronizer.java | 0 .../client/service/synchronizer/SynchronizerImpl.java | 0 .../client/service/synchronizer/SynchronizerSpy.java | 0 .../android/client/service/synchronizer/ThreadUtils.java | 0 .../client/service/synchronizer/WorkManagerWrapper.java | 0 .../synchronizer/attributes/AttributesSynchronizer.java | 0 .../attributes/AttributesSynchronizerFactory.java | 0 .../attributes/AttributesSynchronizerFactoryImpl.java | 0 .../attributes/AttributesSynchronizerImpl.java | 0 .../attributes/AttributesSynchronizerRegistry.java | 0 .../attributes/AttributesSynchronizerRegistryImpl.java | 0 .../mysegments/MySegmentsBackgroundSyncScheduleTask.java | 0 .../synchronizer/mysegments/MySegmentsSynchronizer.java | 0 .../mysegments/MySegmentsSynchronizerFactory.java | 0 .../mysegments/MySegmentsSynchronizerFactoryImpl.java | 0 .../mysegments/MySegmentsSynchronizerImpl.java | 0 .../mysegments/MySegmentsSynchronizerRegistry.java | 0 .../mysegments/MySegmentsSynchronizerRegistryImpl.java | 0 .../mysegments/MySegmentsWorkManagerWrapper.java | 0 .../service/telemetry/TelemetryConfigRecorderTask.java | 0 .../service/telemetry/TelemetryStatsRecorderTask.java | 0 .../client/service/telemetry/TelemetryTaskFactory.java | 0 .../service/telemetry/TelemetryTaskFactoryImpl.java | 0 .../service/workmanager/BaseSegmentsSyncWorker.java | 0 .../client/service/workmanager/EventsRecorderWorker.java | 0 .../client/service/workmanager/HttpClientProvider.java | 0 .../service/workmanager/ImpressionsRecorderWorker.java | 0 .../client/service/workmanager/MySegmentsSyncWorker.java | 0 .../android/client/service/workmanager/SplitWorker.java | 0 .../service/workmanager/UniqueKeysRecorderWorker.java | 0 .../service/workmanager/splits/FetcherProvider.java | 0 .../workmanager/splits/SplitChangeProcessorProvider.java | 0 .../service/workmanager/splits/SplitsSyncWorker.java | 0 .../workmanager/splits/SplitsSyncWorkerFilterBuilder.java | 0 .../workmanager/splits/SplitsSyncWorkerParams.java | 0 .../workmanager/splits/SplitsSyncWorkerTaskBuilder.java | 0 .../service/workmanager/splits/StorageProvider.java | 0 .../service/workmanager/splits/SyncHelperProvider.java | 0 .../android/client/shared/BaseSplitClientContainer.java | 0 .../android/client/shared/ClientComponentsRegister.java | 0 .../client/shared/ClientComponentsRegisterImpl.java | 0 .../split/android/client/shared/SplitClientContainer.java | 0 .../android/client/shared/SplitClientContainerImpl.java | 0 .../java/io/split/android/client/shared/UserConsent.java | 0 .../android/client/storage/RolloutDefinitionsCache.java | 0 .../client/storage/attributes/AttributesStorage.java | 0 .../storage/attributes/AttributesStorageContainer.java | 0 .../attributes/AttributesStorageContainerImpl.java | 0 .../client/storage/attributes/AttributesStorageImpl.java | 0 .../storage/attributes/PersistentAttributesStorage.java | 0 .../attributes/SqLitePersistentAttributesStorage.java | 0 .../android/client/storage/cipher/ApplyCipherTask.java | 0 .../io/split/android/client/storage/cipher/CBCCipher.java | 0 .../android/client/storage/cipher/CBCCipherProvider.java | 0 .../android/client/storage/cipher/CipherProvider.java | 0 .../io/split/android/client/storage/cipher/DBCipher.java | 0 .../client/storage/cipher/EncryptionMigrationTask.java | 0 .../split/android/client/storage/cipher/KeyManager.java | 0 .../split/android/client/storage/cipher/NoOpCipher.java | 0 .../split/android/client/storage/cipher/ObjectPool.java | 0 .../android/client/storage/cipher/ObjectPoolFactory.java | 0 .../split/android/client/storage/cipher/SplitCipher.java | 0 .../android/client/storage/cipher/SplitCipherFactory.java | 0 .../client/storage/cipher/SplitEncryptionLevel.java | 0 .../client/storage/cipher/provider/KeyProvider.java | 0 .../client/storage/cipher/provider/LegacyKeyProvider.java | 0 .../storage/cipher/provider/SecureKeyStorageProvider.java | 0 .../android/client/storage/common/InBytesSizable.java | 0 .../android/client/storage/common/PersistentStorage.java | 0 .../common/RuleBasedSegmentStorageInitializer.java | 0 .../client/storage/common/SplitStorageContainer.java | 0 .../client/storage/common/SqLitePersistentStorage.java | 0 .../io/split/android/client/storage/common/Storage.java | 0 .../android/client/storage/common/StoragePusher.java | 0 .../java/io/split/android/client/storage/db/EventDao.java | 0 .../io/split/android/client/storage/db/EventEntity.java | 0 .../split/android/client/storage/db/GeneralInfoDao.java | 0 .../android/client/storage/db/GeneralInfoEntity.java | 0 .../io/split/android/client/storage/db/ImpressionDao.java | 0 .../split/android/client/storage/db/ImpressionEntity.java | 0 .../android/client/storage/db/ImpressionsCountDao.java | 0 .../android/client/storage/db/ImpressionsCountEntity.java | 0 .../android/client/storage/db/MyLargeSegmentDao.java | 0 .../android/client/storage/db/MyLargeSegmentEntity.java | 0 .../io/split/android/client/storage/db/MySegmentDao.java | 0 .../split/android/client/storage/db/MySegmentEntity.java | 0 .../io/split/android/client/storage/db/SegmentDao.java | 0 .../io/split/android/client/storage/db/SegmentEntity.java | 0 .../java/io/split/android/client/storage/db/SplitDao.java | 0 .../io/split/android/client/storage/db/SplitEntity.java | 0 .../io/split/android/client/storage/db/SplitQueryDao.java | 0 .../android/client/storage/db/SplitQueryDaoImpl.java | 0 .../android/client/storage/db/SplitRoomDatabase.java | 0 .../split/android/client/storage/db/StorageFactory.java | 0 .../android/client/storage/db/StorageRecordStatus.java | 0 .../client/storage/db/attributes/AttributesDao.java | 0 .../client/storage/db/attributes/AttributesEntity.java | 0 .../impressions/observer/ImpressionsObserverCacheDao.java | 0 .../observer/ImpressionsObserverCacheEntity.java | 0 .../storage/db/impressions/unique/UniqueKeyEntity.java | 0 .../storage/db/impressions/unique/UniqueKeysDao.java | 0 .../client/storage/db/rbs/RuleBasedSegmentDao.java | 0 .../client/storage/db/rbs/RuleBasedSegmentEntity.java | 0 .../android/client/storage/events/EventsStorage.java | 0 .../client/storage/events/PersistentEventsStorage.java | 0 .../storage/events/SqLitePersistentEventsStorage.java | 0 .../client/storage/general/GeneralInfoStorage.java | 0 .../client/storage/general/GeneralInfoStorageImpl.java | 0 .../client/storage/impressions/ImpressionsStorage.java | 0 .../impressions/PersistentImpressionsCountStorage.java | 0 .../storage/impressions/PersistentImpressionsStorage.java | 0 .../impressions/PersistentImpressionsUniqueStorage.java | 0 .../SqLitePersistentImpressionsCountStorage.java | 0 .../impressions/SqLitePersistentImpressionsStorage.java | 0 .../impressions/SqlitePersistentUniqueStorage.java | 0 .../split/android/client/storage/legacy/FileStorage.java | 0 .../android/client/storage/legacy/FileStorageHelper.java | 0 .../io/split/android/client/storage/legacy/IStorage.java | 0 .../client/storage/mysegments/EmptyMySegmentsStorage.java | 0 .../client/storage/mysegments/MySegmentsStorage.java | 0 .../storage/mysegments/MySegmentsStorageContainer.java | 0 .../mysegments/MySegmentsStorageContainerImpl.java | 0 .../client/storage/mysegments/MySegmentsStorageImpl.java | 0 .../storage/mysegments/PersistentMySegmentsStorage.java | 0 .../mysegments/SqLitePersistentMySegmentsStorage.java | 0 .../java/io/split/android/client/storage/rbs/Clearer.java | 0 .../storage/rbs/LazyRuleBasedSegmentStorageProvider.java | 0 .../storage/rbs/PersistentRuleBasedSegmentStorage.java | 0 .../client/storage/rbs/RuleBasedSegmentSnapshot.java | 0 .../client/storage/rbs/RuleBasedSegmentStorage.java | 0 .../storage/rbs/RuleBasedSegmentStorageConsumer.java | 0 .../client/storage/rbs/RuleBasedSegmentStorageImpl.java | 0 .../storage/rbs/RuleBasedSegmentStorageProducer.java | 0 .../storage/rbs/RuleBasedSegmentStorageProducerImpl.java | 0 .../storage/rbs/RuleBasedSegmentStorageProvider.java | 0 .../split/android/client/storage/rbs/SnapshotLoader.java | 0 .../rbs/SqLitePersistentRuleBasedSegmentStorage.java | 0 .../SqLitePersistentRuleBasedSegmentStorageProvider.java | 0 .../java/io/split/android/client/storage/rbs/Updater.java | 0 .../android/client/storage/splits/MetadataHelper.java | 0 .../client/storage/splits/PersistentSplitsStorage.java | 0 .../client/storage/splits/ProcessedSplitChange.java | 0 .../storage/splits/SplitEntityToSplitTransformer.java | 0 .../client/storage/splits/SplitListTransformer.java | 0 .../storage/splits/SplitToSplitEntityTransformer.java | 0 .../android/client/storage/splits/SplitsSnapshot.java | 0 .../android/client/storage/splits/SplitsStorage.java | 0 .../android/client/storage/splits/SplitsStorageImpl.java | 0 .../storage/splits/SqLitePersistentSplitsStorage.java | 0 .../client/telemetry/TelemetryConfigBodySerializer.java | 0 .../split/android/client/telemetry/TelemetryHelper.java | 0 .../android/client/telemetry/TelemetryHelperImpl.java | 0 .../client/telemetry/TelemetryStatsBodySerializer.java | 0 .../android/client/telemetry/TelemetrySynchronizer.java | 0 .../client/telemetry/TelemetrySynchronizerImpl.java | 0 .../client/telemetry/TelemetrySynchronizerStub.java | 0 .../io/split/android/client/telemetry/model/Config.java | 0 .../android/client/telemetry/model/EventTypeEnum.java | 0 .../client/telemetry/model/EventsDataRecordsEnum.java | 0 .../android/client/telemetry/model/FactoryCounter.java | 0 .../split/android/client/telemetry/model/HttpErrors.java | 0 .../android/client/telemetry/model/HttpLatencies.java | 0 .../client/telemetry/model/ImpressionsDataType.java | 0 .../android/client/telemetry/model/ImpressionsMode.java | 0 .../io/split/android/client/telemetry/model/LastSync.java | 0 .../io/split/android/client/telemetry/model/Method.java | 0 .../android/client/telemetry/model/MethodExceptions.java | 0 .../android/client/telemetry/model/MethodLatencies.java | 0 .../android/client/telemetry/model/OperationMode.java | 0 .../android/client/telemetry/model/OperationType.java | 0 .../android/client/telemetry/model/PushCounterEvent.java | 0 .../android/client/telemetry/model/RefreshRates.java | 0 .../io/split/android/client/telemetry/model/Stats.java | 0 .../android/client/telemetry/model/UpdatesFromSSE.java | 0 .../android/client/telemetry/model/UrlOverrides.java | 0 .../model/streaming/AblyErrorStreamingEvent.java | 0 .../streaming/ConnectionEstablishedStreamingEvent.java | 0 .../model/streaming/OccupancyPriStreamingEvent.java | 0 .../model/streaming/OccupancySecStreamingEvent.java | 0 .../model/streaming/SseConnectionErrorStreamingEvent.java | 0 .../client/telemetry/model/streaming/StreamingEvent.java | 0 .../model/streaming/StreamingStatusStreamingEvent.java | 0 .../model/streaming/SyncModeUpdateStreamingEvent.java | 0 .../model/streaming/TokenRefreshStreamingEvent.java | 0 .../telemetry/model/streaming/UpdatesFromSSEEnum.java | 0 .../telemetry/storage/BinarySearchLatencyTracker.java | 0 .../android/client/telemetry/storage/ILatencyTracker.java | 0 .../telemetry/storage/InMemoryTelemetryStorage.java | 0 .../client/telemetry/storage/NoOpTelemetryStorage.java | 0 .../client/telemetry/storage/TelemetryConfigProvider.java | 0 .../telemetry/storage/TelemetryConfigProviderImpl.java | 0 .../telemetry/storage/TelemetryEvaluationConsumer.java | 0 .../telemetry/storage/TelemetryEvaluationProducer.java | 0 .../client/telemetry/storage/TelemetryInitConsumer.java | 0 .../client/telemetry/storage/TelemetryInitProducer.java | 0 .../telemetry/storage/TelemetryRuntimeConsumer.java | 0 .../telemetry/storage/TelemetryRuntimeProducer.java | 0 .../client/telemetry/storage/TelemetryStatsProvider.java | 0 .../telemetry/storage/TelemetryStatsProviderImpl.java | 0 .../client/telemetry/storage/TelemetryStorage.java | 0 .../telemetry/storage/TelemetryStorageConsumer.java | 0 .../telemetry/storage/TelemetryStorageProducer.java | 0 .../android/client/telemetry/util/AtomicLongArray.java | 0 .../main/java/io/split/android/client/utils/BCrypt.java | 0 .../java/io/split/android/client/utils/Base64Util.java | 0 .../io/split/android/client/utils/CompressionUtil.java | 0 .../java/io/split/android/client/utils/FileUtils.java | 0 .../src/main/java/io/split/android/client/utils/Gzip.java | 0 .../split/android/client/utils/HttpProxySerializer.java | 0 .../src/main/java/io/split/android/client/utils/Json.java | 0 .../java/io/split/android/client/utils/MemoryUtils.java | 0 .../io/split/android/client/utils/MemoryUtilsImpl.java | 0 .../java/io/split/android/client/utils/MurmurHash3.java | 0 .../java/io/split/android/client/utils/StringHelper.java | 0 .../main/java/io/split/android/client/utils/Utils.java | 0 .../java/io/split/android/client/utils/YamlParser.java | 0 .../src/main/java/io/split/android/client/utils/Zlib.java | 0 .../client/utils/deserializer/EventDeserializer.java | 0 .../android/client/utils/serializer/DoubleSerializer.java | 0 .../split/android/client/validators/ApiKeyValidator.java | 0 .../android/client/validators/ApiKeyValidatorImpl.java | 0 .../android/client/validators/AttributesValidator.java | 0 .../client/validators/AttributesValidatorImpl.java | 0 .../split/android/client/validators/EventValidator.java | 0 .../android/client/validators/EventValidatorImpl.java | 0 .../android/client/validators/FlagSetsValidatorImpl.java | 0 .../io/split/android/client/validators/KeyValidator.java | 0 .../split/android/client/validators/KeyValidatorImpl.java | 0 .../split/android/client/validators/PrefixValidator.java | 0 .../android/client/validators/PrefixValidatorImpl.java | 0 .../android/client/validators/PropertyValidator.java | 0 .../android/client/validators/SplitFilterValidator.java | 0 .../split/android/client/validators/SplitValidator.java | 0 .../android/client/validators/SplitValidatorImpl.java | 0 .../split/android/client/validators/TreatmentManager.java | 0 .../client/validators/TreatmentManagerFactory.java | 0 .../client/validators/TreatmentManagerFactoryImpl.java | 0 .../android/client/validators/TreatmentManagerHelper.java | 0 .../android/client/validators/TreatmentManagerImpl.java | 0 .../split/android/client/validators/ValidationConfig.java | 0 .../android/client/validators/ValidationErrorInfo.java | 0 .../client/validators/ValidationMessageLogger.java | 0 .../client/validators/ValidationMessageLoggerImpl.java | 0 .../engine/experiments/DefaultConditionsProvider.java | 0 .../split/android/engine/experiments/FetcherPolicy.java | 0 .../split/android/engine/experiments/ParsedCondition.java | 0 .../engine/experiments/ParsedRuleBasedSegment.java | 0 .../io/split/android/engine/experiments/ParsedSplit.java | 0 .../java/io/split/android/engine/experiments/Parser.java | 0 .../split/android/engine/experiments/ParserCommons.java | 0 .../engine/experiments/RuleBasedSegmentParser.java | 0 .../io/split/android/engine/experiments/SplitFetcher.java | 0 .../io/split/android/engine/experiments/SplitParser.java | 0 .../engine/experiments/UnsupportedMatcherException.java | 0 .../io/split/android/engine/matchers/AllKeysMatcher.java | 0 .../split/android/engine/matchers/AttributeMatcher.java | 0 .../io/split/android/engine/matchers/BetweenMatcher.java | 0 .../io/split/android/engine/matchers/BooleanMatcher.java | 0 .../split/android/engine/matchers/CombiningMatcher.java | 0 .../split/android/engine/matchers/DependencyMatcher.java | 0 .../io/split/android/engine/matchers/EqualToMatcher.java | 0 .../engine/matchers/GreaterThanOrEqualToMatcher.java | 0 .../engine/matchers/InRuleBasedSegmentMatcher.java | 0 .../android/engine/matchers/LessThanOrEqualToMatcher.java | 0 .../java/io/split/android/engine/matchers/Matcher.java | 0 .../split/android/engine/matchers/MySegmentsMatcher.java | 0 .../android/engine/matchers/PrerequisitesMatcher.java | 0 .../io/split/android/engine/matchers/Transformers.java | 0 .../matchers/collections/ContainsAllOfSetMatcher.java | 0 .../matchers/collections/ContainsAnyOfSetMatcher.java | 0 .../engine/matchers/collections/EqualToSetMatcher.java | 0 .../engine/matchers/collections/PartOfSetMatcher.java | 0 .../engine/matchers/semver/BetweenSemverMatcher.java | 0 .../engine/matchers/semver/EqualToSemverMatcher.java | 0 .../semver/GreaterThanOrEqualToSemverMatcher.java | 0 .../engine/matchers/semver/InListSemverMatcher.java | 0 .../matchers/semver/LessThanOrEqualToSemverMatcher.java | 0 .../io/split/android/engine/matchers/semver/Semver.java | 0 .../engine/matchers/semver/SemverParseException.java | 0 .../engine/matchers/strings/ContainsAnyOfMatcher.java | 0 .../engine/matchers/strings/EndsWithAnyOfMatcher.java | 0 .../engine/matchers/strings/RegularExpressionMatcher.java | 0 .../engine/matchers/strings/StartsWithAnyOfMatcher.java | 0 .../android/engine/matchers/strings/WhitelistMatcher.java | 0 .../scheduler/PausableScheduledThreadPoolExecutor.java | 0 .../PausableScheduledThreadPoolExecutorImpl.java | 0 .../engine/scheduler/PausableThreadPoolExecutor.java | 0 .../engine/scheduler/PausableThreadPoolExecutorImpl.java | 0 .../java/io/split/android/engine/splitter/Splitter.java | 0 .../main/java/io/split/android/grammar/Treatments.java | 0 .../src/sharedTest/java/helper/CompressionHelper.java | 0 .../src/sharedTest/java/helper/TestingData.java | 0 .../src/sharedTest/java/helper/TestingHelper.java | 0 .../split/android/client/utils/logger/LogPrinterStub.java | 0 .../io/split/sharedtest/fake/HttpStreamResponseMock.java | 0 .../src/test/java/android/util/Base64.java | 0 .../src/test/java/io/split/android/BCryptTest.java | 0 .../test/java/io/split/android/FolderForApiKeyTest.java | 0 .../io/split/android/SplitConfigurationsParsingTests.java | 0 .../test/java/io/split/android/client/DestroyerTest.java | 0 .../io/split/android/client/EvaluationOptionsTest.java | 0 .../java/io/split/android/client/FactoryMonitorTest.java | 0 .../java/io/split/android/client/FileStorageTest.java | 0 .../java/io/split/android/client/FilterBuilderTest.java | 0 .../java/io/split/android/client/FilterGrouperTest.java | 0 .../io/split/android/client/FlagSetsFilterImplTest.java | 0 .../java/io/split/android/client/ImpressionsModeTest.java | 0 .../split/android/client/MySegmentsUriBuildersTest.java | 0 .../android/client/RolloutCacheConfigurationTest.java | 0 .../io/split/android/client/SplitClientConfigTest.java | 0 .../android/client/SplitClientImplAttributesTest.java | 0 .../io/split/android/client/SplitClientImplBaseTest.java | 0 .../client/SplitClientImplEvaluationOptionsTest.java | 0 .../split/android/client/SplitClientImplFlagSetsTest.java | 0 .../split/android/client/SplitClientImplLegacyTest.java | 0 .../io/split/android/client/SplitFactoryHelperTest.kt | 0 .../io/split/android/client/SplitManagerImplTest.java | 0 .../test/java/io/split/android/client/SyncConfigTest.java | 0 .../java/io/split/android/client/TreatmentLabelsTest.java | 0 .../client/TreatmentManagerEvaluationOptionsTest.java | 0 .../android/client/TreatmentManagerExceptionsTest.java | 0 .../android/client/TreatmentManagerTelemetryTest.java | 0 .../io/split/android/client/TreatmentManagerTest.java | 0 .../android/client/TreatmentManagerWithFlagSetsTest.java | 0 .../io/split/android/client/UserConsentManagerTest.java | 0 .../client/attributes/AttributesManagerImplTest.java | 0 .../client/attributes/AttributesMergerImplTest.java | 0 .../android/client/dtos/SplitDeserializationTest.java | 0 .../client/events/EventsManagerCoordinatorTest.java | 0 .../io/split/android/client/events/EventsManagerTest.java | 0 .../android/client/events/PropertyValidatorTest.java | 0 .../client/events/executors/ClientEventSplitTaskTest.java | 0 .../events/executors/SplitEventExecutorFactoryTest.java | 0 .../executors/SplitEventExecutorResourcesImplTest.java | 0 .../executors/SplitEventExecutorWithClientTest.java | 0 .../android/client/fallback/FallbackTreatmentTest.java | 0 .../client/fallback/FallbackTreatmentsCalculatorTest.java | 0 .../fallback/FallbackTreatmentsConfigurationTest.java | 0 .../client/fallback/FallbacksSanitizerImplTest.java | 0 .../client/impressions/ImpressionLoggingTaskTest.java | 0 .../client/impressions/SyncImpressionListenerTest.java | 0 .../client/localhost/LocalhostSplitClientTest.java | 0 .../client/localhost/LocalhostSplitFactoryTest.java | 0 .../localhost/LocalhostSplitFactoryTestBuilder.java | 0 .../android/client/localhost/LocalhostYamlParserTest.java | 0 .../shared/LocalhostSplitClientContainerImplTest.java | 0 .../client/metrics/BinarySearchLatencyTrackerTest.java | 0 .../client/network/CertificateCheckerHelperTest.java | 0 .../client/network/CertificateCheckerImplTest.java | 0 .../CertificatePinningConfigurationProviderTest.java | 0 .../network/CertificatePinningConfigurationTest.java | 0 .../android/client/network/ChainCleanerImplTest.java | 0 .../android/client/network/DefaultBase64EncoderTest.java | 0 .../io/split/android/client/network/HttpClientTest.java | 0 .../client/network/HttpClientTunnellingProxyTest.java | 0 .../client/network/HttpOverTunnelExecutorTest.java | 0 .../android/client/network/HttpRequestHelperTest.java | 0 .../client/network/HttpResponseConnectionAdapterTest.java | 0 .../android/client/network/HttpStreamResponseTest.java | 0 .../split/android/client/network/PinEncoderImplTest.java | 0 .../android/client/network/ProxyConfigurationTest.java | 0 .../network/ProxySslSocketFactoryProviderImplTest.java | 0 .../android/client/network/RawHttpResponseParserTest.java | 0 .../split/android/client/network/SdkTargetPathTest.java | 0 .../android/client/network/SplitAuthenticatorTest.java | 0 .../client/network/SplitBasicAuthenticatorTest.java | 0 .../network/SplitUrlConnectionAuthenticatorTest.java | 0 .../client/network/SslProxyTunnelEstablisherTest.java | 0 .../android/client/network/TrustManagerProviderTest.java | 0 .../android/client/service/EventsRecorderTaskTest.java | 0 .../client/service/FilterSplitsInCacheTaskTest.java | 0 .../io/split/android/client/service/HttpFetcherTest.java | 0 .../io/split/android/client/service/HttpRecorderTest.java | 0 .../android/client/service/ImpressionHasherTest.java | 0 .../client/service/ImpressionsCountRecorderTaskTest.java | 0 .../android/client/service/ImpressionsCounterTest.java | 0 .../client/service/ImpressionsRecorderTaskTest.java | 0 .../client/service/ImpressionsRequestParserTest.java | 0 .../split/android/client/service/LoadSplitsTaskTest.java | 0 .../client/service/MySegmentsChangesCheckerTest.java | 0 .../android/client/service/MySegmentsSyncTaskTest.java | 0 .../android/client/service/MySegmentsUpdateTaskTest.java | 0 .../client/service/SplitInPlaceUpdateTaskTest.java | 0 .../split/android/client/service/SplitKillTaskTest.java | 0 .../split/android/client/service/SplitSyncTaskTest.java | 0 .../android/client/service/SplitTaskExecutorTest.java | 0 .../split/android/client/service/SplitUpdateTaskTest.java | 0 .../android/client/service/SplitsChangesCheckerTest.java | 0 .../android/client/service/SplitsSyncHelperTest.java | 0 .../io/split/android/client/service/SynchronizerTest.java | 0 .../ClearAttributesInPersistentStorageTaskTest.java | 0 .../client/service/attributes/LoadAttributesTaskTest.java | 0 .../UpdateAttributesInPersistentStorageTaskTest.java | 0 .../service/events/EventsRequestBodySerializerTest.java | 0 .../android/client/service/events/EventsTrackerTest.java | 0 .../service/executor/SplitTaskSerialWrapperTest.java | 0 .../client/service/executor/ThreadFactoryBuilderTest.java | 0 .../parallel/SplitParallelTaskExecutorImplTest.java | 0 .../client/service/http/HttpSseAuthTokenFetcherTest.java | 0 .../http/mysegments/MySegmentsFetcherFactoryImplTest.java | 0 .../ImpressionManagerRetryTimerProviderImplTest.kt | 0 .../impressions/ImpressionsRequestBodySerializerTest.java | 0 .../client/service/impressions/MemoizedSupplierTest.java | 0 .../service/impressions/StrategyImpressionManagerTest.kt | 0 .../observer/ImpressionsObserverCacheImplTest.java | 0 .../impressions/observer/PeriodicPersistenceTaskTest.java | 0 ...litePersistentImpressionsObserverCacheStorageTest.java | 0 .../service/impressions/strategy/DebugStrategyTest.kt | 0 .../service/impressions/strategy/DebugTrackerTest.kt | 0 .../service/impressions/strategy/NoneStrategyTest.kt | 0 .../service/impressions/strategy/NoneTrackerTest.kt | 0 .../service/impressions/strategy/OptimizedStrategyTest.kt | 0 .../service/impressions/strategy/OptimizedTrackerTest.kt | 0 .../client/service/impressions/strategy/UtilsTest.java | 0 .../impressions/unique/MTKRequestBodySerializerTest.java | 0 .../impressions/unique/SaveUniqueImpressionsTaskTest.java | 0 .../impressions/unique/UniqueKeysRecorderTaskTest.java | 0 .../impressions/unique/UniqueKeysTrackerImplTest.java | 0 .../service/mysegments/AllSegmentsResponseParserTest.java | 0 .../service/mysegments/LoadMySegmentsTaskConfigTest.java | 0 .../service/mysegments/MySegmentsBulkSyncTaskTest.java | 0 .../service/mysegments/MySegmentsSyncTaskConfigTest.java | 0 .../MySegmentsTaskFactoryConfigurationTest.java | 0 .../mysegments/MySegmentsUpdateTaskConfigTest.java | 0 .../rules/RuleBasedSegmentChangeProcessorTest.java | 0 .../rules/RuleBasedSegmentInPlaceUpdateTaskTest.java | 0 .../service/rules/TargetingRulesResponseParserTest.java | 0 .../android/client/service/splits/LoadSplitsTaskTest.java | 0 .../service/splits/OutdatedSplitProxyHandlerTest.java | 0 .../client/service/splits/SplitChangeProcessorTest.java | 0 .../service/splits/SplitsSyncHelperFreshInstallTest.java | 0 .../client/service/splits/TargetingRulesCacheTest.java | 0 .../sseclient/BackgroundDisconnectionTaskTest.java | 0 .../client/service/sseclient/EventStreamParserTest.java | 0 .../service/sseclient/MySegmentsUpdateWorkerTest.java | 0 .../service/sseclient/NotificationManagerKeeperTest.java | 0 .../client/service/sseclient/NotificationParserTest.java | 0 .../service/sseclient/NotificationProcessorTest.java | 0 .../service/sseclient/PushNotificationManagerTest.java | 0 .../service/sseclient/ReconnectBackoffCounterTest.java | 0 .../client/service/sseclient/SplitUpdateWorkerTest.java | 0 .../client/service/sseclient/SseAuthenticatorTest.java | 0 .../android/client/service/sseclient/SseClientTest.java | 0 .../android/client/service/sseclient/SseHandlerTest.java | 0 .../service/sseclient/SyncManagerChannelMessageTest.java | 0 .../android/client/service/sseclient/SyncManagerTest.java | 0 .../MySegmentsNotificationProcessorImplTest.java | 0 .../notifications/mysegments/SyncDelayCalculatorTest.java | 0 .../reactor/MySegmentsUpdateWorkerRegistryImplTest.java | 0 .../PushNotificationManagerDeferredStartTaskTest.java | 0 .../sseclient/sseclient/RetryBackoffCounterTimerTest.java | 0 .../sseclient/sseclient/SseDisconnectionTimerTest.java | 0 .../notifications/SplitsChangeNotificationTest.java | 0 .../synchronizer/FeatureFlagsSynchronizerImplTest.java | 0 .../service/synchronizer/RecorderSyncHelperImplTest.java | 0 .../service/synchronizer/RolloutCacheManagerTest.kt | 0 .../client/service/synchronizer/SyncGuardianImplTest.java | 0 .../attributes/AttributesSynchronizerImplTest.java | 0 .../AttributesSynchronizerRegistryImplTest.java | 0 .../mysegments/MySegmentsSynchronizerImplTest.java | 0 .../MySegmentsSynchronizerRegistryImplTest.java | 0 .../service/telemetry/SynchronizerImplTelemetryTest.java | 0 .../telemetry/TelemetryConfigRecorderTaskTest.java | 0 .../service/telemetry/TelemetryStatsRecorderTaskTest.java | 0 .../service/workmanager/HttpClientProviderTest.java | 0 .../service/workmanager/splits/FetcherProviderTest.java | 0 .../splits/SplitsSyncWorkerFilterBuilderTest.java | 0 .../workmanager/splits/SplitsSyncWorkerParamsTest.java | 0 .../splits/SplitsSyncWorkerTaskBuilderTest.java | 0 .../service/workmanager/splits/StorageProviderTest.java | 0 .../client/shared/ClientComponentsRegisterImplTest.java | 0 .../client/shared/SplitClientContainerImplTest.java | 0 .../storage/attributes/AttributesStorageImplTest.java | 0 .../attributes/SqLitePersistentAttributesStorageTest.java | 0 .../android/client/storage/cipher/ApplyCipherTaskTest.kt | 0 .../split/android/client/storage/cipher/CBCCipherTest.kt | 0 .../split/android/client/storage/cipher/DBCipherTest.kt | 0 .../client/storage/cipher/EncryptionMigrationTaskTest.kt | 0 .../split/android/client/storage/cipher/NoOpCipherTest.kt | 0 .../split/android/client/storage/cipher/ObjectPoolTest.kt | 0 .../client/storage/cipher/SplitCipherFactoryTest.kt | 0 .../client/storage/common/SplitStorageContainerTest.java | 0 .../android/client/storage/db/SplitQueryDaoImplTest.java | 0 .../android/client/storage/db/SplitRoomDatabaseTest.java | 0 .../android/client/storage/events/EventsStorageTest.java | 0 .../storage/events/SqLitePersistentEventsStorageTest.java | 0 .../storage/general/GeneralInfoStorageImplTest.java | 0 .../storage/impressions/ImpressionsStorageTest.java | 0 .../SqlitePersistentImpressionsCountStorageTest.java | 0 .../SqlitePersistentImpressionsStorageTest.java | 0 .../impressions/SqlitePersistentUniqueStorageTest.java | 0 .../mysegments/MySegmentsStorageContainerImplTest.java | 0 .../SqLitePersistentMyLargeSegmentsStorageTest.java | 0 .../mysegments/SqLitePersistentMySegmentsStorageTest.java | 0 .../rbs/LazyRuleBasedSegmentStorageProviderTest.java | 0 .../storage/rbs/RuleBasedSegmentStorageImplTest.java | 0 .../rbs/RuleBasedSegmentStorageProducerImplTest.java | 0 .../android/client/storage/rbs/SnapshotLoaderTest.java | 0 .../rbs/SqLitePersistentRuleBasedSegmentStorageTest.java | 0 ...iteRuleBasedSegmentsPersistentStorageProviderTest.java | 0 .../io/split/android/client/storage/rbs/UpdaterTest.java | 0 .../storage/splits/SplitEntityToSplitTransformerTest.java | 0 .../storage/splits/SplitToSplitEntityTransformerTest.java | 0 .../storage/splits/SqLitePersistentSplitsStorageTest.java | 0 .../telemetry/TelemetryConfigBodySerializerTest.java | 0 .../android/client/telemetry/TelemetryHelperImplTest.java | 0 .../telemetry/TelemetryStatsBodySerializerTest.java | 0 .../client/telemetry/TelemetrySynchronizerImplTest.java | 0 .../telemetry/storage/InMemoryTelemetryStorageTest.java | 0 .../storage/TelemetryConfigProviderImplTest.java | 0 .../telemetry/storage/TelemetryStatsProviderImplTest.java | 0 .../android/client/utils/HttpProxySerializerTest.java | 0 .../test/java/io/split/android/client/utils/JsonTest.java | 0 .../java/io/split/android/client/utils/PartitionTest.java | 0 .../java/io/split/android/client/utils/RepeatTest.java | 0 .../android/client/utils/SplitClientImplFactory.java | 0 .../client/utils/deserializer/EventDeserializerTest.java | 0 .../android/client/validators/ApiKeyValidatorTest.java | 0 .../client/validators/AttributesValidatorImplTest.java | 0 .../android/client/validators/EventTypeNameHelper.java | 0 .../android/client/validators/EventValidatorTest.java | 0 .../client/validators/FlagSetsValidatorImplTest.java | 0 .../split/android/client/validators/KeyValidatorTest.java | 0 .../client/validators/PrefixValidatorImplTest.java | 0 .../android/client/validators/SplitValidatorTest.java | 0 .../validators/TreatmentManagerFactoryImplTest.java | 0 .../TreatmentManagerFallbackTreatmentsTest.java | 0 .../client/validators/TreatmentManagerHelperTest.java | 0 .../java/io/split/android/engine/ConditionsTestUtil.java | 0 .../engine/experiments/DefaultConditionsProviderTest.java | 0 .../split/android/engine/experiments/EvaluatorTest.java | 0 .../engine/experiments/PrerequisitesEvaluatorTest.java | 0 .../engine/experiments/RuleBasedSegmentParserTest.java | 0 .../split/android/engine/experiments/SplitParserTest.java | 0 .../experiments/UnsupportedMatcherSplitParserTest.java | 0 .../split/android/engine/matchers/AllKeysMatcherTest.java | 0 .../android/engine/matchers/AttributeMatcherTest.java | 0 .../split/android/engine/matchers/BetweenMatcherTest.java | 0 .../split/android/engine/matchers/BooleanMatcherTest.java | 0 .../android/engine/matchers/CombiningMatcherTest.java | 0 .../split/android/engine/matchers/EqualToMatcherTest.java | 0 .../engine/matchers/GreaterThanOrEqualToMatcherTest.java | 0 .../engine/matchers/InRuleBasedSegmentMatcherTest.java | 0 .../engine/matchers/LessThanOrEqualToMatcherTest.java | 0 .../android/engine/matchers/NegatableMatcherTest.java | 0 .../android/engine/matchers/PrerequisitesMatcherTest.java | 0 .../split/android/engine/matchers/TransformersTest.java | 0 .../matchers/collections/ContainsAllOfSetMatcherTest.java | 0 .../matchers/collections/ContainsAnyOfSetMatcherTest.java | 0 .../matchers/collections/EqualToSetMatcherTest.java | 0 .../engine/matchers/collections/PartOfSetMatcherTest.java | 0 .../engine/matchers/semver/BetweenSemverMatcherTest.java | 0 .../engine/matchers/semver/EqualToSemverMatcherTest.java | 0 .../semver/GreaterThanOrEqualToSemverMatcherTest.java | 0 .../engine/matchers/semver/InListSemverMatcherTest.java | 0 .../semver/LessThanOrEqualToSemverMatcherTest.java | 0 .../split/android/engine/matchers/semver/SemverTest.java | 0 .../engine/matchers/strings/ContainsAnyOfMatcherTest.java | 0 .../engine/matchers/strings/EndsWithAnyOfMatcherTest.java | 0 .../matchers/strings/RegularExpressionMatcherTest.java | 0 .../matchers/strings/StartsWithAnyOfMatcherTest.java | 0 .../engine/matchers/strings/WhitelistMatcherTest.java | 0 .../PausableScheduledThreadPoolExecutorImplTest.java | 0 .../android/engine/splitter/HashConsistencyTest.java | 0 .../io/split/android/engine/splitter/HashingTest.java | 0 .../java/io/split/android/engine/splitter/MyHash.java | 0 .../io/split/android/engine/splitter/SplitterTest.java | 0 .../java/io/split/android/fake/ExecutorServiceMock.java | 0 .../io/split/android/fake/ImpressionListenerMock.java | 0 .../io/split/android/fake/MemoryUtilsNoMemoryStub.java | 0 .../io/split/android/fake/SplitEventsManagerStub.java | 0 .../java/io/split/android/fake/SplitTaskExecutorStub.java | 0 .../test/java/io/split/android/fake/SseClientMock.java | 0 .../test/java/io/split/android/helpers/FileHelper.java | 0 .../io/split/android/helpers/ResourcesFileStorage.java | 0 .../test/java/io/split/android/helpers/SplitHelper.java | 0 .../split/android/http/SplitHttpHeadersBuilderTest.java | 0 .../test/java/io/split/android/http/URIBuilderTest.java | 0 .../src/test/resources/README.txt | 0 .../src/test/resources/between_semver.csv | 0 .../src/test/resources/equal_to_semver.csv | 0 .../src/test/resources/impressions_1.json | 0 .../src/test/resources/invalid_semantic_versions.csv | 0 .../legacy-hash-sample-data-non-alpha-numeric.csv | 0 .../src/test/resources/legacy-hash-sample-data.csv | 0 .../murmur3-sample-data-non-alpha-numeric-v2.csv | 0 .../resources/murmur3-sample-data-non-alpha-numeric.csv | 0 .../src/test/resources/murmur3-sample-data-v2.csv | 0 .../src/test/resources/murmur3-sample-data.csv | 0 .../resources/murmur3-sample-double-treatment-users.csv | 0 .../src/test/resources/murmur3_64_uuids.csv | 0 .../src/test/resources/split_changes_1.json | 0 .../src/test/resources/split_changes_1_updated.json | 0 .../src/test/resources/split_changes_legacy.json | 0 .../src/test/resources/split_changes_prerequisites.json | 0 .../src/test/resources/split_changes_small.json | 0 .../test/resources/split_changes_with_prerequisites.json | 0 .../src/test/resources/splits.yaml | 0 .../src/test/resources/splits_incorrect_value.yaml | 0 .../src/test/resources/splits_missing_name.yaml | 0 .../src/test/resources/splits_missing_treatment.yaml | 0 .../src/test/resources/splits_no_yaml.yaml | 0 .../src/test/resources/tracks_1.json | 0 .../src/test/resources/valid_semantic_versions.csv | 0 settings.gradle | 4 ++-- 1190 files changed, 7 insertions(+), 9 deletions(-) rename {android-client-logger => logger}/.gitignore (100%) rename {android-client-logger => logger}/build.gradle (100%) rename {android-client-logger => logger}/src/main/AndroidManifest.xml (100%) rename {android-client-logger => logger}/src/main/java/io/split/android/client/utils/logger/LogPrinter.java (100%) rename {android-client-logger => logger}/src/main/java/io/split/android/client/utils/logger/LogPrinterImpl.java (100%) rename {android-client-logger => logger}/src/main/java/io/split/android/client/utils/logger/Logger.java (100%) rename {android-client-logger => logger}/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java (100%) rename {android-client-logger => logger}/src/test/java/io/split/android/client/utils/logger/LogPrinterStub.java (100%) rename {android-client-logger => logger}/src/test/java/io/split/android/client/utils/logger/LoggerTest.java (100%) rename {android-client-main => main}/.gitignore (100%) rename {android-client-main => main}/build.gradle (96%) rename {android-client-main => main}/build.gradle.tmp (100%) rename {android-client-main => main}/consumer-rules.pro (100%) rename {android-client-main => main}/src/androidTest/AndroidManifest.xml (100%) rename {android-client-main => main}/src/androidTest/assets/attributes_test_split_change.json (100%) rename {android-client-main => main}/src/androidTest/assets/bucket_split_test.json (100%) rename {android-client-main => main}/src/androidTest/assets/lorem_ipsum.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-ably_error_40012.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-ably_error_40142.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-control.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-largesegment_update.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-occupancy.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-segment_updV2.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-segment_update.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-segment_update_empty_payload.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-segment_update_payload.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-segment_update_payload_generic.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-split_kill.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-split_kill_old.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-split_update-chgnum.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-split_update.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_msg-split_update_old_change_nb.txt (100%) rename {android-client-main => main}/src/androidTest/assets/push_token-expired.txt (100%) rename {android-client-main => main}/src/androidTest/assets/simple_split.json (100%) rename {android-client-main => main}/src/androidTest/assets/split.json (100%) rename {android-client-main => main}/src/androidTest/assets/split_changes_1.json (100%) rename {android-client-main => main}/src/androidTest/assets/split_changes_flag_set-0.json (100%) rename {android-client-main => main}/src/androidTest/assets/split_changes_flag_set-1.json (100%) rename {android-client-main => main}/src/androidTest/assets/split_changes_flag_set-2.json (100%) rename {android-client-main => main}/src/androidTest/assets/split_changes_imp_toggle.json (100%) rename {android-client-main => main}/src/androidTest/assets/split_changes_large_segments-0.json (100%) rename {android-client-main => main}/src/androidTest/assets/split_changes_legacy.json (100%) rename {android-client-main => main}/src/androidTest/assets/split_changes_rbs.json (100%) rename {android-client-main => main}/src/androidTest/assets/split_changes_semver.json (100%) rename {android-client-main => main}/src/androidTest/assets/split_dependency.json (100%) rename {android-client-main => main}/src/androidTest/assets/splitchanges_int_test.json (100%) rename {android-client-main => main}/src/androidTest/assets/splitchanges_prerequisites.json (100%) rename {android-client-main => main}/src/androidTest/assets/splitchanges_unsupported_matcher.json (100%) rename {android-client-main => main}/src/androidTest/assets/splits.yaml (100%) rename {android-client-main => main}/src/androidTest/assets/splits1.properties (100%) rename {android-client-main => main}/src/androidTest/assets/splits_test.properties (100%) rename {android-client-main => main}/src/androidTest/assets/splits_yml.yml (100%) rename {android-client-main => main}/src/androidTest/java/fake/HttpClientMock.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/HttpClientStub.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/HttpRequestMock.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/HttpRequestStub.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/HttpResponseMock.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/HttpResponseMockDispatcher.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/HttpResponseStub.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/HttpStreamRequestMock.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/HttpStreamResponseMock.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/LifecycleManagerStub.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/SplitClientStub.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/SplitEventExecutorResourcesMock.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/SyncManagerStub.java (100%) rename {android-client-main => main}/src/androidTest/java/fake/SynchronizerSpyImpl.java (100%) rename {android-client-main => main}/src/androidTest/java/helper/DataSample.kt (100%) rename {android-client-main => main}/src/androidTest/java/helper/DatabaseHelper.java (100%) rename {android-client-main => main}/src/androidTest/java/helper/FileHelper.java (100%) rename {android-client-main => main}/src/androidTest/java/helper/ImpressionListenerHelper.java (100%) rename {android-client-main => main}/src/androidTest/java/helper/IntegrationHelper.java (100%) rename {android-client-main => main}/src/androidTest/java/helper/SplitEventTaskHelper.java (100%) rename {android-client-main => main}/src/androidTest/java/helper/TestableSplitConfigBuilder.java (100%) rename {android-client-main => main}/src/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java (100%) rename {android-client-main => main}/src/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java (100%) rename {android-client-main => main}/src/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/database/AttributesDaoTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/database/DatabaseInitializationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/database/GeneralInfoDaoTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/database/GenericDaoTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/database/ImpressionDaoTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/database/MyLargeSegmentDaoTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/database/MySegmentDaoTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/database/SplitDaoTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/database/TrackDaoTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/database/UniqueKeysDaoTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/FlagsSpecInRequestTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/InitialChangeNumberTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/IntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/LifecyleOnBGTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/MySegmentUpdatedTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/MySegmentsServerErrorTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/ProxyFactoryTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/SingleSyncTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/SplitChangesServerErrorTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/SplitChangesTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/TrackTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/encryption/EncryptionTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/init/InitializationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/matcher/PrerequisitesTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/matcher/SemverMatcherTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/pin/CertPinningTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/shared/TestingData.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/shared/TestingHelper.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/AblyErrorTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/ControlTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/OccupancyTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt (100%) rename {android-client-main => main}/src/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt (100%) rename {android-client-main => main}/src/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/localhost/LocalhostTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/service/CompressionTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/service/EventsManagerTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/service/EventsRequestTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/service/ImpressionsRequestTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/service/SdkUpdatePollingTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/service/SseJwtTokenParserTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/service/UniqueKeysIntegrationTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/service/UrlSanitizerTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/GeneralInfoStorageTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/LoadSplitTaskTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/MySegmentsStorageTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/PersistentEventStorageTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/PersistentImpressionStorageTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/PersistentSplitsStorageTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/SplitsStorageTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/cipher/CBCCipherTest.kt (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/cipher/KeyManagerTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/workmanager/WMWorkersSetupTest.java (100%) rename {android-client-main => main}/src/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java (100%) rename {android-client-main => main}/src/main/AndroidManifest.xml (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/AlwaysReturnControlSplitClient.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/Destroyer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/EvaluationOptions.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/EvaluationResult.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/Evaluator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/EvaluatorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/EventsTracker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/EventsTrackerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/FeatureFlagFilter.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/FilterBuilder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/FilterGrouper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/FlagSetsFilter.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/FlagSetsFilterImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/ProcessedEventProperties.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/PropertyValidatorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/RetryBackoffCounterTimerFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/RolloutCacheConfiguration.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/ServiceEndpoints.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitClient.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitClientConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitClientFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitClientFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitClientImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitFactoryBuilder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitFactoryHelper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitFilter.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitManagerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SplitResult.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/SyncConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/TestingConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/TreatmentLabels.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/UserConsentManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/UserConsentManagerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/api/Key.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/api/SplitView.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/attributes/AttributesManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/attributes/AttributesManagerFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/attributes/AttributesManagerFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/attributes/AttributesManagerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/attributes/AttributesMerger.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/attributes/AttributesMergerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/common/CompressionType.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/common/CompressionUtilProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Algorithm.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/AllSegmentsChange.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/BetweenMatcherData.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/BetweenStringMatcherData.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/ChunkHeader.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Condition.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/ConditionType.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Counter.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/DataType.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/DependencyMatcherData.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/DeprecatedKeyImpression.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Event.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Excluded.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/ExcludedSegment.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Helper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/HttpProxyDto.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Identifiable.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/KeyImpression.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/KeySelector.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Matcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/MatcherCombiner.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/MatcherGroup.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/MatcherType.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Partition.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Prerequisite.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/RuleBasedSegment.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/RuleBasedSegmentChange.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Segment.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/SegmentResponse.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/SegmentsChange.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/SerializableEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Split.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/SplitChange.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/Status.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/TargetingRulesChange.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/TestImpressions.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/URN.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/UnaryNumericMatcherData.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/UserDefinedLargeSegmentMatcherData.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/UserDefinedSegmentMatcherData.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/dtos/WhitelistMatcherData.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/BaseEventsManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/EventsManagerCoordinator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/EventsManagerRegistry.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/ISplitEventsManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/ListenableEventsManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/SplitEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/SplitEventTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/SplitEventTaskMethodNotImplementedException.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/SplitEventsManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/SplitInternalEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/executors/ClientEventSplitTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/executors/SplitEventExecutor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/executors/SplitEventExecutorFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResources.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/events/executors/SplitEventExecutorWithClient.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/exceptions/ChangeNumberExceptionWrapper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/exceptions/MySegmentsParsingException.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/exceptions/ParentIsControlException.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/exceptions/SplitInstantiationException.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/factory/FactoryMonitor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/factory/FactoryMonitorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/fallback/FallbackTreatment.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/fallback/FallbackTreatmentsConfiguration.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/fallback/FallbacksSanitizer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/fallback/FallbacksSanitizerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/impressions/DecoratedImpression.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/impressions/DecoratedImpressionListener.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/impressions/Impression.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/impressions/ImpressionListener.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/impressions/ImpressionLoggingTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/impressions/SyncImpressionListener.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/lifecycle/SplitLifecycleAware.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManagerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/LocalhostFileParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/LocalhostImpressionsListener.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/LocalhostMySegmentsStorageContainer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/LocalhostPropertiesFileParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorageProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/LocalhostSplitClient.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/LocalhostSplitFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/LocalhostSplitsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/LocalhostSynchronizer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/LocalhostYamlFileParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/SplitHelper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/Algorithm.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/AuthenticatedRequest.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/Authenticator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/Base64Decoder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/Base64Encoder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/BaseHttpResponse.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/BaseHttpResponseImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/BasicCredentialsProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/BearerCredentialsProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/CertificateChecker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/CertificateCheckerHelper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/CertificateCheckerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/CertificatePin.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/CertificatePinningConfiguration.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/CertificatePinningConfigurationProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/CertificatePinningFailureListener.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/ChainCleaner.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/ChainCleanerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/DefaultBase64Decoder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/DefaultBase64Encoder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/DevelopmentSslConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpClient.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpClientImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpException.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpMethod.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpOverTunnelExecutor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpProxy.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpRequest.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpRequestHelper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpRequestImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpResponse.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpResponseConnectionAdapter.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpResponseImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpStreamRequest.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpStreamRequestImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpStreamResponse.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/HttpStreamResponseImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/LegacyTlsUpdater.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/PercentEscaper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/PinEncoder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/PinEncoderImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/ProxyCacertConnectionHandler.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/ProxyConfiguration.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/ProxyCredentialsProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProviderImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/RawHttpResponseParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/SdkTargetPath.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/SplitAuthenticatedRequest.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/SplitAuthenticator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/SplitBasicAuthenticator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/SplitHttpHeadersBuilder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/SplitUrlConnectionAuthenticator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/SslProxyTunnelEstablisher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/Tls12OnlySocketFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/TrustManagerProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/URIBuilder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/UnicodeEscaper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/UrlEscapers.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/UrlSanitizer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/network/UrlSanitizerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/CleanUpDatabaseTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/ServiceConstants.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/ServiceFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/SplitApiFacade.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/attributes/LoadAttributesTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/events/EventsRecorderTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/events/EventsRecorderTaskConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/events/EventsRequestBodySerializer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitBaseTaskExecutor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitClientEventTaskExecutor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitSingleThreadTaskExecutor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitTaskBatchItem.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitTaskBatchWrapper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionInfo.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionListener.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionStatus.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitTaskExecutor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitTaskExecutorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitTaskFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitTaskFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitTaskSerialWrapper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/SplitTaskType.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/TaskWrapper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/ThreadFactoryBuilder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/parallel/SplitDeferredTaskItem.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/HttpFetcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/HttpFetcherException.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/HttpGeneralException.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/HttpRecorder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/HttpRecorderException.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/HttpRecorderImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/HttpRequestBodySerializer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/HttpResponseParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/HttpResponseParserException.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/HttpSseAuthTokenFetcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/HttpStatus.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionHasher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionManagerConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionUtils.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionsCount.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionsCountPerFeature.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRecorderTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRequestBodySerializer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionsCounter.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionsMode.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTaskConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/ImpressionsTaskFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/KeyImpressionSerializer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/MemoizedSupplier.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/SaveImpressionsCountTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/StrategyImpressionManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserver.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCache.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/observer/ListenableLruCache.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/observer/PersistentImpressionsObserverCacheStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/strategy/DebugStrategy.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/strategy/DebugTracker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/strategy/NoneStrategy.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/strategy/NoneTracker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedStrategy.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedTracker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/strategy/PeriodicTracker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/strategy/ProcessStrategy.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/strategy/Utils.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/unique/MTK.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/unique/UniqueKey.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTracker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/AllSegmentsResponseParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/MySegmentUpdateParams.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfiguration.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProviderImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/rules/LoadRuleBasedSegmentsTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/rules/ProcessedRuleBasedSegmentChange.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/rules/TargetingRulesResponseParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/FeatureFlagProcessStrategy.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/FilterSplitsInCacheTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/LoadSplitsTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/OutdatedSplitProxyHandler.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/RuleBasedSegmentInPlaceUpdateTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/SplitChangeProcessor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/SplitChangeResponseParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/SplitInPlaceUpdateTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/SplitKillTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/SplitsSyncHelper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/SplitsSyncTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/SplitsUpdateTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/splits/TargetingRulesCache.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseauthentication/SseAuthenticationResponseParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/BackoffCounter.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/EventStreamParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/FixedIntervalBackoffCounter.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/InvalidJwtTokenException.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/ReconnectBackoffCounter.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/SseAuthToken.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/SseAuthenticationResponse.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/SseJwtParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/SseJwtToken.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/BroadcastedEventListener.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/DelayStatusEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushManagerEventBroadcaster.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushStatusEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/ControlNotification.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/HashingAlgorithm.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotification.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotificationType.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/InstantUpdateChangeNotification.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/KeyList.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/MembershipNotification.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentUpdateStrategy.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentsV2PayloadDecoder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationProcessor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationType.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/OccupancyNotification.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/RawNotification.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/RuleBasedSegmentChangeNotification.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/SplitKillNotification.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/SplitsChangeNotification.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/StreamingError.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorConfiguration.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorRegistry.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistry.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/reactor/SplitUpdatesWorker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/reactor/UpdateWorker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/BackoffCounterTimer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/NotificationManagerKeeper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticationResult.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClient.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClientImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/SseHandler.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/SseRefreshTokenTimer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/sseclient/sseclient/StreamingComponents.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/LoadLocalDataListener.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/MySegmentsChangeChecker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManagerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/SplitsChangeChecker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/SyncGuardian.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/SyncGuardianImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/SyncManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/SyncManagerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/Synchronizer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/SynchronizerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/SynchronizerSpy.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/ThreadUtils.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistry.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsBackgroundSyncScheduleTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistry.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsWorkManagerWrapper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/BaseSegmentsSyncWorker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/EventsRecorderWorker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/ImpressionsRecorderWorker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/MySegmentsSyncWorker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/SplitWorker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/UniqueKeysRecorderWorker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/splits/FetcherProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/splits/SplitChangeProcessorProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParams.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilder.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/splits/StorageProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/service/workmanager/splits/SyncHelperProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/shared/BaseSplitClientContainer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/shared/ClientComponentsRegister.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/shared/ClientComponentsRegisterImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/shared/SplitClientContainer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/shared/SplitClientContainerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/shared/UserConsent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/RolloutDefinitionsCache.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/attributes/AttributesStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/attributes/AttributesStorageImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/attributes/PersistentAttributesStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/ApplyCipherTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/CBCCipher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/CBCCipherProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/CipherProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/DBCipher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/EncryptionMigrationTask.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/KeyManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/NoOpCipher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/ObjectPool.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/ObjectPoolFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/SplitCipher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/SplitCipherFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/SplitEncryptionLevel.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/provider/KeyProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/provider/LegacyKeyProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/cipher/provider/SecureKeyStorageProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/common/InBytesSizable.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/common/PersistentStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/common/RuleBasedSegmentStorageInitializer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/common/SplitStorageContainer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/common/SqLitePersistentStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/common/Storage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/common/StoragePusher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/EventDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/EventEntity.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/GeneralInfoDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/GeneralInfoEntity.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/ImpressionDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/ImpressionEntity.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/ImpressionsCountDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/ImpressionsCountEntity.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/MyLargeSegmentDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/MyLargeSegmentEntity.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/MySegmentDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/MySegmentEntity.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/SegmentDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/SegmentEntity.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/SplitDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/SplitEntity.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/SplitQueryDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/SplitQueryDaoImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/SplitRoomDatabase.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/StorageFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/StorageRecordStatus.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/attributes/AttributesDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/attributes/AttributesEntity.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheEntity.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeyEntity.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeysDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentDao.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentEntity.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/events/EventsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/events/PersistentEventsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/events/SqLitePersistentEventsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/general/GeneralInfoStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/general/GeneralInfoStorageImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/impressions/ImpressionsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsCountStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsUniqueStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsCountStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/legacy/FileStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/legacy/FileStorageHelper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/legacy/IStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/mysegments/EmptyMySegmentsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/mysegments/PersistentMySegmentsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/Clearer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/PersistentRuleBasedSegmentStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentSnapshot.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageConsumer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/SnapshotLoader.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/rbs/Updater.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/splits/MetadataHelper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/splits/PersistentSplitsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/splits/ProcessedSplitChange.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/splits/SplitListTransformer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/splits/SplitsSnapshot.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/splits/SplitsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/splits/SplitsStorageImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/TelemetryConfigBodySerializer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/TelemetryHelper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/TelemetryHelperImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/TelemetryStatsBodySerializer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerStub.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/Config.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/EventTypeEnum.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/EventsDataRecordsEnum.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/FactoryCounter.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/HttpErrors.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/HttpLatencies.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/ImpressionsDataType.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/ImpressionsMode.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/LastSync.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/Method.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/MethodExceptions.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/MethodLatencies.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/OperationMode.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/OperationType.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/PushCounterEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/RefreshRates.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/Stats.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/UpdatesFromSSE.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/UrlOverrides.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/streaming/AblyErrorStreamingEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/streaming/ConnectionEstablishedStreamingEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancyPriStreamingEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancySecStreamingEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/streaming/SseConnectionErrorStreamingEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingStatusStreamingEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/streaming/SyncModeUpdateStreamingEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/streaming/TokenRefreshStreamingEvent.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/model/streaming/UpdatesFromSSEEnum.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/BinarySearchLatencyTracker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/ILatencyTracker.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/NoOpTelemetryStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationConsumer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationProducer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitConsumer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitProducer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeConsumer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeProducer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorage.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageConsumer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageProducer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/telemetry/util/AtomicLongArray.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/BCrypt.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/Base64Util.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/CompressionUtil.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/FileUtils.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/Gzip.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/HttpProxySerializer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/Json.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/MemoryUtils.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/MemoryUtilsImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/MurmurHash3.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/StringHelper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/Utils.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/YamlParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/Zlib.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/deserializer/EventDeserializer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/utils/serializer/DoubleSerializer.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/ApiKeyValidator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/ApiKeyValidatorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/AttributesValidator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/AttributesValidatorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/EventValidator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/EventValidatorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/FlagSetsValidatorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/KeyValidator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/KeyValidatorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/PrefixValidator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/PrefixValidatorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/PropertyValidator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/SplitFilterValidator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/SplitValidator.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/SplitValidatorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/TreatmentManager.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/TreatmentManagerFactory.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/TreatmentManagerFactoryImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/TreatmentManagerHelper.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/TreatmentManagerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/ValidationConfig.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/ValidationErrorInfo.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/ValidationMessageLogger.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/client/validators/ValidationMessageLoggerImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/experiments/DefaultConditionsProvider.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/experiments/FetcherPolicy.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/experiments/ParsedCondition.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/experiments/ParsedRuleBasedSegment.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/experiments/ParsedSplit.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/experiments/Parser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/experiments/ParserCommons.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/experiments/RuleBasedSegmentParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/experiments/SplitFetcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/experiments/SplitParser.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/experiments/UnsupportedMatcherException.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/AllKeysMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/AttributeMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/BetweenMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/BooleanMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/CombiningMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/DependencyMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/EqualToMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/LessThanOrEqualToMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/Matcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/MySegmentsMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/PrerequisitesMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/Transformers.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/collections/EqualToSetMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/collections/PartOfSetMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/semver/BetweenSemverMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/semver/EqualToSemverMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/semver/InListSemverMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/semver/Semver.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/semver/SemverParseException.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/strings/RegularExpressionMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/matchers/strings/WhitelistMatcher.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutor.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutorImpl.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/engine/splitter/Splitter.java (100%) rename {android-client-main => main}/src/main/java/io/split/android/grammar/Treatments.java (100%) rename {android-client-main => main}/src/sharedTest/java/helper/CompressionHelper.java (100%) rename {android-client-main => main}/src/sharedTest/java/helper/TestingData.java (100%) rename {android-client-main => main}/src/sharedTest/java/helper/TestingHelper.java (100%) rename {android-client-main => main}/src/sharedTest/java/io/split/android/client/utils/logger/LogPrinterStub.java (100%) rename {android-client-main => main}/src/sharedTest/java/io/split/sharedtest/fake/HttpStreamResponseMock.java (100%) rename {android-client-main => main}/src/test/java/android/util/Base64.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/BCryptTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/FolderForApiKeyTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/SplitConfigurationsParsingTests.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/DestroyerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/EvaluationOptionsTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/FactoryMonitorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/FileStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/FilterBuilderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/FilterGrouperTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/FlagSetsFilterImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/ImpressionsModeTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/MySegmentsUriBuildersTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/RolloutCacheConfigurationTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/SplitClientConfigTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/SplitClientImplAttributesTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/SplitClientImplBaseTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/SplitClientImplLegacyTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/SplitFactoryHelperTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/SplitManagerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/SyncConfigTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/TreatmentLabelsTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/TreatmentManagerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/UserConsentManagerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/dtos/SplitDeserializationTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/events/EventsManagerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/events/PropertyValidatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/CertificateCheckerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/ChainCleanerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/HttpClientTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/HttpRequestHelperTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/HttpStreamResponseTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/PinEncoderImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/ProxyConfigurationTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/RawHttpResponseParserTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/SdkTargetPathTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/SplitAuthenticatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/network/TrustManagerProviderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/EventsRecorderTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/HttpFetcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/HttpRecorderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/ImpressionHasherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/ImpressionsCounterTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/LoadSplitsTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/SplitKillTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/SplitSyncTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/SplitTaskExecutorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/SplitUpdateTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/SplitsSyncHelperTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/SynchronizerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/events/EventsTrackerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/SseClientTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/events/EventsStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/rbs/UpdaterTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/utils/HttpProxySerializerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/utils/JsonTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/utils/PartitionTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/utils/RepeatTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/utils/SplitClientImplFactory.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/validators/EventTypeNameHelper.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/validators/EventValidatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/validators/KeyValidatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/validators/SplitValidatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/ConditionsTestUtil.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/experiments/EvaluatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/experiments/SplitParserTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/TransformersTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/semver/SemverTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/splitter/HashConsistencyTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/splitter/HashingTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/splitter/MyHash.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/engine/splitter/SplitterTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/fake/ExecutorServiceMock.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/fake/ImpressionListenerMock.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/fake/SplitEventsManagerStub.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/fake/SplitTaskExecutorStub.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/fake/SseClientMock.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/helpers/FileHelper.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/helpers/ResourcesFileStorage.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/helpers/SplitHelper.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java (100%) rename {android-client-main => main}/src/test/java/io/split/android/http/URIBuilderTest.java (100%) rename {android-client-main => main}/src/test/resources/README.txt (100%) rename {android-client-main => main}/src/test/resources/between_semver.csv (100%) rename {android-client-main => main}/src/test/resources/equal_to_semver.csv (100%) rename {android-client-main => main}/src/test/resources/impressions_1.json (100%) rename {android-client-main => main}/src/test/resources/invalid_semantic_versions.csv (100%) rename {android-client-main => main}/src/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv (100%) rename {android-client-main => main}/src/test/resources/legacy-hash-sample-data.csv (100%) rename {android-client-main => main}/src/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv (100%) rename {android-client-main => main}/src/test/resources/murmur3-sample-data-non-alpha-numeric.csv (100%) rename {android-client-main => main}/src/test/resources/murmur3-sample-data-v2.csv (100%) rename {android-client-main => main}/src/test/resources/murmur3-sample-data.csv (100%) rename {android-client-main => main}/src/test/resources/murmur3-sample-double-treatment-users.csv (100%) rename {android-client-main => main}/src/test/resources/murmur3_64_uuids.csv (100%) rename {android-client-main => main}/src/test/resources/split_changes_1.json (100%) rename {android-client-main => main}/src/test/resources/split_changes_1_updated.json (100%) rename {android-client-main => main}/src/test/resources/split_changes_legacy.json (100%) rename {android-client-main => main}/src/test/resources/split_changes_prerequisites.json (100%) rename {android-client-main => main}/src/test/resources/split_changes_small.json (100%) rename {android-client-main => main}/src/test/resources/split_changes_with_prerequisites.json (100%) rename {android-client-main => main}/src/test/resources/splits.yaml (100%) rename {android-client-main => main}/src/test/resources/splits_incorrect_value.yaml (100%) rename {android-client-main => main}/src/test/resources/splits_missing_name.yaml (100%) rename {android-client-main => main}/src/test/resources/splits_missing_treatment.yaml (100%) rename {android-client-main => main}/src/test/resources/splits_no_yaml.yaml (100%) rename {android-client-main => main}/src/test/resources/tracks_1.json (100%) rename {android-client-main => main}/src/test/resources/valid_semantic_versions.csv (100%) diff --git a/build.gradle b/build.gradle index cb7fb6667..654c4af9f 100644 --- a/build.gradle +++ b/build.gradle @@ -105,8 +105,8 @@ tasks.register('generateDepsFile') { output.append("Fused Library Dependencies (from included modules)\n") output.append("=".repeat(60) + "\n\n") - // Get dependencies from android-client-main (where the real dependencies are) - def mainProject = project(':android-client-main') + // Get dependencies from main + def mainProject = project(':main') def config = mainProject.configurations.findByName('releaseRuntimeClasspath') if (config != null) { @@ -137,8 +137,8 @@ void printDependencyTree(dependency, output, prefix, isLast) { } dependencies { - include project(':android-client-main') - include project(':android-client-logger') + include project(':main') + include project(':logger') } def splitPOM = { diff --git a/android-client-logger/.gitignore b/logger/.gitignore similarity index 100% rename from android-client-logger/.gitignore rename to logger/.gitignore diff --git a/android-client-logger/build.gradle b/logger/build.gradle similarity index 100% rename from android-client-logger/build.gradle rename to logger/build.gradle diff --git a/android-client-logger/src/main/AndroidManifest.xml b/logger/src/main/AndroidManifest.xml similarity index 100% rename from android-client-logger/src/main/AndroidManifest.xml rename to logger/src/main/AndroidManifest.xml diff --git a/android-client-logger/src/main/java/io/split/android/client/utils/logger/LogPrinter.java b/logger/src/main/java/io/split/android/client/utils/logger/LogPrinter.java similarity index 100% rename from android-client-logger/src/main/java/io/split/android/client/utils/logger/LogPrinter.java rename to logger/src/main/java/io/split/android/client/utils/logger/LogPrinter.java diff --git a/android-client-logger/src/main/java/io/split/android/client/utils/logger/LogPrinterImpl.java b/logger/src/main/java/io/split/android/client/utils/logger/LogPrinterImpl.java similarity index 100% rename from android-client-logger/src/main/java/io/split/android/client/utils/logger/LogPrinterImpl.java rename to logger/src/main/java/io/split/android/client/utils/logger/LogPrinterImpl.java diff --git a/android-client-logger/src/main/java/io/split/android/client/utils/logger/Logger.java b/logger/src/main/java/io/split/android/client/utils/logger/Logger.java similarity index 100% rename from android-client-logger/src/main/java/io/split/android/client/utils/logger/Logger.java rename to logger/src/main/java/io/split/android/client/utils/logger/Logger.java diff --git a/android-client-logger/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java b/logger/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java similarity index 100% rename from android-client-logger/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java rename to logger/src/main/java/io/split/android/client/utils/logger/SplitLogLevel.java diff --git a/android-client-logger/src/test/java/io/split/android/client/utils/logger/LogPrinterStub.java b/logger/src/test/java/io/split/android/client/utils/logger/LogPrinterStub.java similarity index 100% rename from android-client-logger/src/test/java/io/split/android/client/utils/logger/LogPrinterStub.java rename to logger/src/test/java/io/split/android/client/utils/logger/LogPrinterStub.java diff --git a/android-client-logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java b/logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java similarity index 100% rename from android-client-logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java rename to logger/src/test/java/io/split/android/client/utils/logger/LoggerTest.java diff --git a/android-client-main/.gitignore b/main/.gitignore similarity index 100% rename from android-client-main/.gitignore rename to main/.gitignore diff --git a/android-client-main/build.gradle b/main/build.gradle similarity index 96% rename from android-client-main/build.gradle rename to main/build.gradle index f747852f3..1d8e8fda5 100644 --- a/android-client-main/build.gradle +++ b/main/build.gradle @@ -80,7 +80,7 @@ configurations.all { dependencies { // Internal module dependencies - api project(':android-client-logger') + api project(':logger') // External dependencies implementation "androidx.room:room-runtime:2.4.3" @@ -105,7 +105,6 @@ dependencies { testImplementation "com.google.guava:guava:31.1-android" testImplementation "com.squareup.okhttp3:mockwebserver:4.10.0" testImplementation "com.squareup.okhttp3:okhttp-tls:4.10.0" -// testImplementation project(':android-client-logger') // Android Test dependencies androidTestImplementation "androidx.test.ext:junit:1.1.5" @@ -120,7 +119,6 @@ dependencies { androidTestImplementation "com.squareup.okhttp3:mockwebserver:4.10.0" androidTestImplementation "com.squareup.okhttp3:okhttp-tls:4.10.0" androidTestImplementation "com.google.guava:guava:31.1-android" -// androidTestImplementation project(':android-client-logger') androidTestUtil "androidx.test:orchestrator:1.4.2" } diff --git a/android-client-main/build.gradle.tmp b/main/build.gradle.tmp similarity index 100% rename from android-client-main/build.gradle.tmp rename to main/build.gradle.tmp diff --git a/android-client-main/consumer-rules.pro b/main/consumer-rules.pro similarity index 100% rename from android-client-main/consumer-rules.pro rename to main/consumer-rules.pro diff --git a/android-client-main/src/androidTest/AndroidManifest.xml b/main/src/androidTest/AndroidManifest.xml similarity index 100% rename from android-client-main/src/androidTest/AndroidManifest.xml rename to main/src/androidTest/AndroidManifest.xml diff --git a/android-client-main/src/androidTest/assets/attributes_test_split_change.json b/main/src/androidTest/assets/attributes_test_split_change.json similarity index 100% rename from android-client-main/src/androidTest/assets/attributes_test_split_change.json rename to main/src/androidTest/assets/attributes_test_split_change.json diff --git a/android-client-main/src/androidTest/assets/bucket_split_test.json b/main/src/androidTest/assets/bucket_split_test.json similarity index 100% rename from android-client-main/src/androidTest/assets/bucket_split_test.json rename to main/src/androidTest/assets/bucket_split_test.json diff --git a/android-client-main/src/androidTest/assets/lorem_ipsum.txt b/main/src/androidTest/assets/lorem_ipsum.txt similarity index 100% rename from android-client-main/src/androidTest/assets/lorem_ipsum.txt rename to main/src/androidTest/assets/lorem_ipsum.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-ably_error_40012.txt b/main/src/androidTest/assets/push_msg-ably_error_40012.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-ably_error_40012.txt rename to main/src/androidTest/assets/push_msg-ably_error_40012.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-ably_error_40142.txt b/main/src/androidTest/assets/push_msg-ably_error_40142.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-ably_error_40142.txt rename to main/src/androidTest/assets/push_msg-ably_error_40142.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-control.txt b/main/src/androidTest/assets/push_msg-control.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-control.txt rename to main/src/androidTest/assets/push_msg-control.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-largesegment_update.txt b/main/src/androidTest/assets/push_msg-largesegment_update.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-largesegment_update.txt rename to main/src/androidTest/assets/push_msg-largesegment_update.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-occupancy.txt b/main/src/androidTest/assets/push_msg-occupancy.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-occupancy.txt rename to main/src/androidTest/assets/push_msg-occupancy.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-segment_updV2.txt b/main/src/androidTest/assets/push_msg-segment_updV2.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-segment_updV2.txt rename to main/src/androidTest/assets/push_msg-segment_updV2.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-segment_update.txt b/main/src/androidTest/assets/push_msg-segment_update.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-segment_update.txt rename to main/src/androidTest/assets/push_msg-segment_update.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-segment_update_empty_payload.txt b/main/src/androidTest/assets/push_msg-segment_update_empty_payload.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-segment_update_empty_payload.txt rename to main/src/androidTest/assets/push_msg-segment_update_empty_payload.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-segment_update_payload.txt b/main/src/androidTest/assets/push_msg-segment_update_payload.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-segment_update_payload.txt rename to main/src/androidTest/assets/push_msg-segment_update_payload.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-segment_update_payload_generic.txt b/main/src/androidTest/assets/push_msg-segment_update_payload_generic.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-segment_update_payload_generic.txt rename to main/src/androidTest/assets/push_msg-segment_update_payload_generic.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-split_kill.txt b/main/src/androidTest/assets/push_msg-split_kill.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-split_kill.txt rename to main/src/androidTest/assets/push_msg-split_kill.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-split_kill_old.txt b/main/src/androidTest/assets/push_msg-split_kill_old.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-split_kill_old.txt rename to main/src/androidTest/assets/push_msg-split_kill_old.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-split_update-chgnum.txt b/main/src/androidTest/assets/push_msg-split_update-chgnum.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-split_update-chgnum.txt rename to main/src/androidTest/assets/push_msg-split_update-chgnum.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-split_update.txt b/main/src/androidTest/assets/push_msg-split_update.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-split_update.txt rename to main/src/androidTest/assets/push_msg-split_update.txt diff --git a/android-client-main/src/androidTest/assets/push_msg-split_update_old_change_nb.txt b/main/src/androidTest/assets/push_msg-split_update_old_change_nb.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_msg-split_update_old_change_nb.txt rename to main/src/androidTest/assets/push_msg-split_update_old_change_nb.txt diff --git a/android-client-main/src/androidTest/assets/push_token-expired.txt b/main/src/androidTest/assets/push_token-expired.txt similarity index 100% rename from android-client-main/src/androidTest/assets/push_token-expired.txt rename to main/src/androidTest/assets/push_token-expired.txt diff --git a/android-client-main/src/androidTest/assets/simple_split.json b/main/src/androidTest/assets/simple_split.json similarity index 100% rename from android-client-main/src/androidTest/assets/simple_split.json rename to main/src/androidTest/assets/simple_split.json diff --git a/android-client-main/src/androidTest/assets/split.json b/main/src/androidTest/assets/split.json similarity index 100% rename from android-client-main/src/androidTest/assets/split.json rename to main/src/androidTest/assets/split.json diff --git a/android-client-main/src/androidTest/assets/split_changes_1.json b/main/src/androidTest/assets/split_changes_1.json similarity index 100% rename from android-client-main/src/androidTest/assets/split_changes_1.json rename to main/src/androidTest/assets/split_changes_1.json diff --git a/android-client-main/src/androidTest/assets/split_changes_flag_set-0.json b/main/src/androidTest/assets/split_changes_flag_set-0.json similarity index 100% rename from android-client-main/src/androidTest/assets/split_changes_flag_set-0.json rename to main/src/androidTest/assets/split_changes_flag_set-0.json diff --git a/android-client-main/src/androidTest/assets/split_changes_flag_set-1.json b/main/src/androidTest/assets/split_changes_flag_set-1.json similarity index 100% rename from android-client-main/src/androidTest/assets/split_changes_flag_set-1.json rename to main/src/androidTest/assets/split_changes_flag_set-1.json diff --git a/android-client-main/src/androidTest/assets/split_changes_flag_set-2.json b/main/src/androidTest/assets/split_changes_flag_set-2.json similarity index 100% rename from android-client-main/src/androidTest/assets/split_changes_flag_set-2.json rename to main/src/androidTest/assets/split_changes_flag_set-2.json diff --git a/android-client-main/src/androidTest/assets/split_changes_imp_toggle.json b/main/src/androidTest/assets/split_changes_imp_toggle.json similarity index 100% rename from android-client-main/src/androidTest/assets/split_changes_imp_toggle.json rename to main/src/androidTest/assets/split_changes_imp_toggle.json diff --git a/android-client-main/src/androidTest/assets/split_changes_large_segments-0.json b/main/src/androidTest/assets/split_changes_large_segments-0.json similarity index 100% rename from android-client-main/src/androidTest/assets/split_changes_large_segments-0.json rename to main/src/androidTest/assets/split_changes_large_segments-0.json diff --git a/android-client-main/src/androidTest/assets/split_changes_legacy.json b/main/src/androidTest/assets/split_changes_legacy.json similarity index 100% rename from android-client-main/src/androidTest/assets/split_changes_legacy.json rename to main/src/androidTest/assets/split_changes_legacy.json diff --git a/android-client-main/src/androidTest/assets/split_changes_rbs.json b/main/src/androidTest/assets/split_changes_rbs.json similarity index 100% rename from android-client-main/src/androidTest/assets/split_changes_rbs.json rename to main/src/androidTest/assets/split_changes_rbs.json diff --git a/android-client-main/src/androidTest/assets/split_changes_semver.json b/main/src/androidTest/assets/split_changes_semver.json similarity index 100% rename from android-client-main/src/androidTest/assets/split_changes_semver.json rename to main/src/androidTest/assets/split_changes_semver.json diff --git a/android-client-main/src/androidTest/assets/split_dependency.json b/main/src/androidTest/assets/split_dependency.json similarity index 100% rename from android-client-main/src/androidTest/assets/split_dependency.json rename to main/src/androidTest/assets/split_dependency.json diff --git a/android-client-main/src/androidTest/assets/splitchanges_int_test.json b/main/src/androidTest/assets/splitchanges_int_test.json similarity index 100% rename from android-client-main/src/androidTest/assets/splitchanges_int_test.json rename to main/src/androidTest/assets/splitchanges_int_test.json diff --git a/android-client-main/src/androidTest/assets/splitchanges_prerequisites.json b/main/src/androidTest/assets/splitchanges_prerequisites.json similarity index 100% rename from android-client-main/src/androidTest/assets/splitchanges_prerequisites.json rename to main/src/androidTest/assets/splitchanges_prerequisites.json diff --git a/android-client-main/src/androidTest/assets/splitchanges_unsupported_matcher.json b/main/src/androidTest/assets/splitchanges_unsupported_matcher.json similarity index 100% rename from android-client-main/src/androidTest/assets/splitchanges_unsupported_matcher.json rename to main/src/androidTest/assets/splitchanges_unsupported_matcher.json diff --git a/android-client-main/src/androidTest/assets/splits.yaml b/main/src/androidTest/assets/splits.yaml similarity index 100% rename from android-client-main/src/androidTest/assets/splits.yaml rename to main/src/androidTest/assets/splits.yaml diff --git a/android-client-main/src/androidTest/assets/splits1.properties b/main/src/androidTest/assets/splits1.properties similarity index 100% rename from android-client-main/src/androidTest/assets/splits1.properties rename to main/src/androidTest/assets/splits1.properties diff --git a/android-client-main/src/androidTest/assets/splits_test.properties b/main/src/androidTest/assets/splits_test.properties similarity index 100% rename from android-client-main/src/androidTest/assets/splits_test.properties rename to main/src/androidTest/assets/splits_test.properties diff --git a/android-client-main/src/androidTest/assets/splits_yml.yml b/main/src/androidTest/assets/splits_yml.yml similarity index 100% rename from android-client-main/src/androidTest/assets/splits_yml.yml rename to main/src/androidTest/assets/splits_yml.yml diff --git a/android-client-main/src/androidTest/java/fake/HttpClientMock.java b/main/src/androidTest/java/fake/HttpClientMock.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/HttpClientMock.java rename to main/src/androidTest/java/fake/HttpClientMock.java diff --git a/android-client-main/src/androidTest/java/fake/HttpClientStub.java b/main/src/androidTest/java/fake/HttpClientStub.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/HttpClientStub.java rename to main/src/androidTest/java/fake/HttpClientStub.java diff --git a/android-client-main/src/androidTest/java/fake/HttpRequestMock.java b/main/src/androidTest/java/fake/HttpRequestMock.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/HttpRequestMock.java rename to main/src/androidTest/java/fake/HttpRequestMock.java diff --git a/android-client-main/src/androidTest/java/fake/HttpRequestStub.java b/main/src/androidTest/java/fake/HttpRequestStub.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/HttpRequestStub.java rename to main/src/androidTest/java/fake/HttpRequestStub.java diff --git a/android-client-main/src/androidTest/java/fake/HttpResponseMock.java b/main/src/androidTest/java/fake/HttpResponseMock.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/HttpResponseMock.java rename to main/src/androidTest/java/fake/HttpResponseMock.java diff --git a/android-client-main/src/androidTest/java/fake/HttpResponseMockDispatcher.java b/main/src/androidTest/java/fake/HttpResponseMockDispatcher.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/HttpResponseMockDispatcher.java rename to main/src/androidTest/java/fake/HttpResponseMockDispatcher.java diff --git a/android-client-main/src/androidTest/java/fake/HttpResponseStub.java b/main/src/androidTest/java/fake/HttpResponseStub.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/HttpResponseStub.java rename to main/src/androidTest/java/fake/HttpResponseStub.java diff --git a/android-client-main/src/androidTest/java/fake/HttpStreamRequestMock.java b/main/src/androidTest/java/fake/HttpStreamRequestMock.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/HttpStreamRequestMock.java rename to main/src/androidTest/java/fake/HttpStreamRequestMock.java diff --git a/android-client-main/src/androidTest/java/fake/HttpStreamResponseMock.java b/main/src/androidTest/java/fake/HttpStreamResponseMock.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/HttpStreamResponseMock.java rename to main/src/androidTest/java/fake/HttpStreamResponseMock.java diff --git a/android-client-main/src/androidTest/java/fake/LifecycleManagerStub.java b/main/src/androidTest/java/fake/LifecycleManagerStub.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/LifecycleManagerStub.java rename to main/src/androidTest/java/fake/LifecycleManagerStub.java diff --git a/android-client-main/src/androidTest/java/fake/SplitClientStub.java b/main/src/androidTest/java/fake/SplitClientStub.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/SplitClientStub.java rename to main/src/androidTest/java/fake/SplitClientStub.java diff --git a/android-client-main/src/androidTest/java/fake/SplitEventExecutorResourcesMock.java b/main/src/androidTest/java/fake/SplitEventExecutorResourcesMock.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/SplitEventExecutorResourcesMock.java rename to main/src/androidTest/java/fake/SplitEventExecutorResourcesMock.java diff --git a/android-client-main/src/androidTest/java/fake/SyncManagerStub.java b/main/src/androidTest/java/fake/SyncManagerStub.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/SyncManagerStub.java rename to main/src/androidTest/java/fake/SyncManagerStub.java diff --git a/android-client-main/src/androidTest/java/fake/SynchronizerSpyImpl.java b/main/src/androidTest/java/fake/SynchronizerSpyImpl.java similarity index 100% rename from android-client-main/src/androidTest/java/fake/SynchronizerSpyImpl.java rename to main/src/androidTest/java/fake/SynchronizerSpyImpl.java diff --git a/android-client-main/src/androidTest/java/helper/DataSample.kt b/main/src/androidTest/java/helper/DataSample.kt similarity index 100% rename from android-client-main/src/androidTest/java/helper/DataSample.kt rename to main/src/androidTest/java/helper/DataSample.kt diff --git a/android-client-main/src/androidTest/java/helper/DatabaseHelper.java b/main/src/androidTest/java/helper/DatabaseHelper.java similarity index 100% rename from android-client-main/src/androidTest/java/helper/DatabaseHelper.java rename to main/src/androidTest/java/helper/DatabaseHelper.java diff --git a/android-client-main/src/androidTest/java/helper/FileHelper.java b/main/src/androidTest/java/helper/FileHelper.java similarity index 100% rename from android-client-main/src/androidTest/java/helper/FileHelper.java rename to main/src/androidTest/java/helper/FileHelper.java diff --git a/android-client-main/src/androidTest/java/helper/ImpressionListenerHelper.java b/main/src/androidTest/java/helper/ImpressionListenerHelper.java similarity index 100% rename from android-client-main/src/androidTest/java/helper/ImpressionListenerHelper.java rename to main/src/androidTest/java/helper/ImpressionListenerHelper.java diff --git a/android-client-main/src/androidTest/java/helper/IntegrationHelper.java b/main/src/androidTest/java/helper/IntegrationHelper.java similarity index 100% rename from android-client-main/src/androidTest/java/helper/IntegrationHelper.java rename to main/src/androidTest/java/helper/IntegrationHelper.java diff --git a/android-client-main/src/androidTest/java/helper/SplitEventTaskHelper.java b/main/src/androidTest/java/helper/SplitEventTaskHelper.java similarity index 100% rename from android-client-main/src/androidTest/java/helper/SplitEventTaskHelper.java rename to main/src/androidTest/java/helper/SplitEventTaskHelper.java diff --git a/android-client-main/src/androidTest/java/helper/TestableSplitConfigBuilder.java b/main/src/androidTest/java/helper/TestableSplitConfigBuilder.java similarity index 100% rename from android-client-main/src/androidTest/java/helper/TestableSplitConfigBuilder.java rename to main/src/androidTest/java/helper/TestableSplitConfigBuilder.java diff --git a/android-client-main/src/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java b/main/src/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java rename to main/src/androidTest/java/io/split/android/client/service/impressions/ImpressionPropertiesIntegrationTest.java diff --git a/android-client-main/src/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java b/main/src/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java similarity index 100% rename from android-client-main/src/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java rename to main/src/androidTest/java/io/split/android/client/service/impressions/ImpressionUtilsTest.java diff --git a/android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java b/main/src/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java rename to main/src/androidTest/java/io/split/android/client/service/impressions/observer/DedupeIntegrationTest.java diff --git a/android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java b/main/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java rename to main/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplIntegrationTest.java diff --git a/android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java b/main/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java similarity index 100% rename from android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java rename to main/src/androidTest/java/io/split/android/client/service/impressions/observer/ImpressionsObserverTest.java diff --git a/android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java b/main/src/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java similarity index 100% rename from android-client-main/src/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java rename to main/src/androidTest/java/io/split/android/client/service/impressions/observer/ListenableLruCacheTest.java diff --git a/android-client-main/src/androidTest/java/tests/database/AttributesDaoTest.java b/main/src/androidTest/java/tests/database/AttributesDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/database/AttributesDaoTest.java rename to main/src/androidTest/java/tests/database/AttributesDaoTest.java diff --git a/android-client-main/src/androidTest/java/tests/database/DatabaseInitializationTest.java b/main/src/androidTest/java/tests/database/DatabaseInitializationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/database/DatabaseInitializationTest.java rename to main/src/androidTest/java/tests/database/DatabaseInitializationTest.java diff --git a/android-client-main/src/androidTest/java/tests/database/GeneralInfoDaoTest.java b/main/src/androidTest/java/tests/database/GeneralInfoDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/database/GeneralInfoDaoTest.java rename to main/src/androidTest/java/tests/database/GeneralInfoDaoTest.java diff --git a/android-client-main/src/androidTest/java/tests/database/GenericDaoTest.java b/main/src/androidTest/java/tests/database/GenericDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/database/GenericDaoTest.java rename to main/src/androidTest/java/tests/database/GenericDaoTest.java diff --git a/android-client-main/src/androidTest/java/tests/database/ImpressionDaoTest.java b/main/src/androidTest/java/tests/database/ImpressionDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/database/ImpressionDaoTest.java rename to main/src/androidTest/java/tests/database/ImpressionDaoTest.java diff --git a/android-client-main/src/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java b/main/src/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java rename to main/src/androidTest/java/tests/database/ImpressionsObserverCacheDaoTest.java diff --git a/android-client-main/src/androidTest/java/tests/database/MyLargeSegmentDaoTest.java b/main/src/androidTest/java/tests/database/MyLargeSegmentDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/database/MyLargeSegmentDaoTest.java rename to main/src/androidTest/java/tests/database/MyLargeSegmentDaoTest.java diff --git a/android-client-main/src/androidTest/java/tests/database/MySegmentDaoTest.java b/main/src/androidTest/java/tests/database/MySegmentDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/database/MySegmentDaoTest.java rename to main/src/androidTest/java/tests/database/MySegmentDaoTest.java diff --git a/android-client-main/src/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java b/main/src/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java rename to main/src/androidTest/java/tests/database/RuleBasedSegmentDaoTest.java diff --git a/android-client-main/src/androidTest/java/tests/database/SplitDaoTest.java b/main/src/androidTest/java/tests/database/SplitDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/database/SplitDaoTest.java rename to main/src/androidTest/java/tests/database/SplitDaoTest.java diff --git a/android-client-main/src/androidTest/java/tests/database/TrackDaoTest.java b/main/src/androidTest/java/tests/database/TrackDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/database/TrackDaoTest.java rename to main/src/androidTest/java/tests/database/TrackDaoTest.java diff --git a/android-client-main/src/androidTest/java/tests/database/UniqueKeysDaoTest.java b/main/src/androidTest/java/tests/database/UniqueKeysDaoTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/database/UniqueKeysDaoTest.java rename to main/src/androidTest/java/tests/database/UniqueKeysDaoTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/FlagsSpecInRequestTest.java b/main/src/androidTest/java/tests/integration/FlagsSpecInRequestTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/FlagsSpecInRequestTest.java rename to main/src/androidTest/java/tests/integration/FlagsSpecInRequestTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/InitialChangeNumberTest.java b/main/src/androidTest/java/tests/integration/InitialChangeNumberTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/InitialChangeNumberTest.java rename to main/src/androidTest/java/tests/integration/InitialChangeNumberTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/IntegrationTest.java b/main/src/androidTest/java/tests/integration/IntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/IntegrationTest.java rename to main/src/androidTest/java/tests/integration/IntegrationTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/LifecyleOnBGTest.java b/main/src/androidTest/java/tests/integration/LifecyleOnBGTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/LifecyleOnBGTest.java rename to main/src/androidTest/java/tests/integration/LifecyleOnBGTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/MySegmentUpdatedTest.java b/main/src/androidTest/java/tests/integration/MySegmentUpdatedTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/MySegmentUpdatedTest.java rename to main/src/androidTest/java/tests/integration/MySegmentUpdatedTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/MySegmentsServerErrorTest.java b/main/src/androidTest/java/tests/integration/MySegmentsServerErrorTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/MySegmentsServerErrorTest.java rename to main/src/androidTest/java/tests/integration/MySegmentsServerErrorTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/ProxyFactoryTest.java b/main/src/androidTest/java/tests/integration/ProxyFactoryTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/ProxyFactoryTest.java rename to main/src/androidTest/java/tests/integration/ProxyFactoryTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/SingleSyncTest.java b/main/src/androidTest/java/tests/integration/SingleSyncTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/SingleSyncTest.java rename to main/src/androidTest/java/tests/integration/SingleSyncTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java b/main/src/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java rename to main/src/androidTest/java/tests/integration/SplitChangesCdnBypassTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/SplitChangesServerErrorTest.java b/main/src/androidTest/java/tests/integration/SplitChangesServerErrorTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/SplitChangesServerErrorTest.java rename to main/src/androidTest/java/tests/integration/SplitChangesServerErrorTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/SplitChangesTest.java b/main/src/androidTest/java/tests/integration/SplitChangesTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/SplitChangesTest.java rename to main/src/androidTest/java/tests/integration/SplitChangesTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java b/main/src/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java rename to main/src/androidTest/java/tests/integration/SplitFactoryFreshInstallTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java b/main/src/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java rename to main/src/androidTest/java/tests/integration/SplitFetchSpecificSplitTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java b/main/src/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java rename to main/src/androidTest/java/tests/integration/SplitsTwoDifferentApiKeyTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/TrackTest.java b/main/src/androidTest/java/tests/integration/TrackTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/TrackTest.java rename to main/src/androidTest/java/tests/integration/TrackTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java b/main/src/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java rename to main/src/androidTest/java/tests/integration/attributes/AttributesIntegrationTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/encryption/EncryptionTest.java b/main/src/androidTest/java/tests/integration/encryption/EncryptionTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/encryption/EncryptionTest.java rename to main/src/androidTest/java/tests/integration/encryption/EncryptionTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java b/main/src/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java rename to main/src/androidTest/java/tests/integration/fallback/FallbackTreatmentsTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/init/InitializationTest.java b/main/src/androidTest/java/tests/integration/init/InitializationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/init/InitializationTest.java rename to main/src/androidTest/java/tests/integration/init/InitializationTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java b/main/src/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java rename to main/src/androidTest/java/tests/integration/largesegments/LargeSegmentTestHelper.java diff --git a/android-client-main/src/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java b/main/src/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java rename to main/src/androidTest/java/tests/integration/largesegments/LargeSegmentsStreamingTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java b/main/src/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java rename to main/src/androidTest/java/tests/integration/largesegments/LargeSegmentsTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/matcher/PrerequisitesTest.java b/main/src/androidTest/java/tests/integration/matcher/PrerequisitesTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/matcher/PrerequisitesTest.java rename to main/src/androidTest/java/tests/integration/matcher/PrerequisitesTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/matcher/SemverMatcherTest.java b/main/src/androidTest/java/tests/integration/matcher/SemverMatcherTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/matcher/SemverMatcherTest.java rename to main/src/androidTest/java/tests/integration/matcher/SemverMatcherTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java b/main/src/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java rename to main/src/androidTest/java/tests/integration/matcher/UnsupportedMatcherTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/pin/CertPinningTest.java b/main/src/androidTest/java/tests/integration/pin/CertPinningTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/pin/CertPinningTest.java rename to main/src/androidTest/java/tests/integration/pin/CertPinningTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java b/main/src/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java rename to main/src/androidTest/java/tests/integration/rbs/OutdatedProxyIntegrationTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java b/main/src/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java rename to main/src/androidTest/java/tests/integration/rbs/RuleBasedSegmentsIntegrationTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java b/main/src/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java rename to main/src/androidTest/java/tests/integration/rollout/RolloutCacheManagerIntegrationTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java b/main/src/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java rename to main/src/androidTest/java/tests/integration/sets/FlagSetsEvaluationTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java b/main/src/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java rename to main/src/androidTest/java/tests/integration/sets/FlagSetsMultipleFactoryTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java b/main/src/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java rename to main/src/androidTest/java/tests/integration/sets/FlagSetsPollingTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java b/main/src/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java rename to main/src/androidTest/java/tests/integration/sets/FlagSetsStreamingTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java b/main/src/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java rename to main/src/androidTest/java/tests/integration/shared/BaseSharedClientsTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java b/main/src/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java rename to main/src/androidTest/java/tests/integration/shared/InterdependentSplitsTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java b/main/src/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java rename to main/src/androidTest/java/tests/integration/shared/MySegmentsBeforeSplitsTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java b/main/src/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java rename to main/src/androidTest/java/tests/integration/shared/SharedClientsIntegrationTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/shared/TestingData.java b/main/src/androidTest/java/tests/integration/shared/TestingData.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/shared/TestingData.java rename to main/src/androidTest/java/tests/integration/shared/TestingData.java diff --git a/android-client-main/src/androidTest/java/tests/integration/shared/TestingHelper.java b/main/src/androidTest/java/tests/integration/shared/TestingHelper.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/shared/TestingHelper.java rename to main/src/androidTest/java/tests/integration/shared/TestingHelper.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java b/main/src/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java rename to main/src/androidTest/java/tests/integration/streaming/AblyErrorBaseTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/AblyErrorTest.java b/main/src/androidTest/java/tests/integration/streaming/AblyErrorTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/AblyErrorTest.java rename to main/src/androidTest/java/tests/integration/streaming/AblyErrorTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java b/main/src/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java rename to main/src/androidTest/java/tests/integration/streaming/CleanUpDatabaseTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/ControlTest.java b/main/src/androidTest/java/tests/integration/streaming/ControlTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/ControlTest.java rename to main/src/androidTest/java/tests/integration/streaming/ControlTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java b/main/src/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java rename to main/src/androidTest/java/tests/integration/streaming/ImpressionsCountTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java b/main/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java rename to main/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2MultiClientTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java b/main/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java rename to main/src/androidTest/java/tests/integration/streaming/MySegmentsChangeV2Test.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java b/main/src/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java rename to main/src/androidTest/java/tests/integration/streaming/MySegmentsSyncProcessTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java b/main/src/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java rename to main/src/androidTest/java/tests/integration/streaming/OccupancyBaseTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/OccupancyTest.java b/main/src/androidTest/java/tests/integration/streaming/OccupancyTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/OccupancyTest.java rename to main/src/androidTest/java/tests/integration/streaming/OccupancyTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java b/main/src/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java rename to main/src/androidTest/java/tests/integration/streaming/SdkUpdateStreamingTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java b/main/src/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java rename to main/src/androidTest/java/tests/integration/streaming/SplitChangeNotificationIntegrationTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java b/main/src/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java rename to main/src/androidTest/java/tests/integration/streaming/SplitsKillProcessTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java b/main/src/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java rename to main/src/androidTest/java/tests/integration/streaming/SplitsSyncProcessTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java b/main/src/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java rename to main/src/androidTest/java/tests/integration/streaming/SseAuthFail4xxTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java b/main/src/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java rename to main/src/androidTest/java/tests/integration/streaming/SseAuthFail5xxTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java b/main/src/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java rename to main/src/androidTest/java/tests/integration/streaming/SseConnectionExpiredTokenTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java b/main/src/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java rename to main/src/androidTest/java/tests/integration/streaming/SseConnectionFail5xxTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java b/main/src/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java rename to main/src/androidTest/java/tests/integration/streaming/StreamingDisabledInConfigTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java b/main/src/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java rename to main/src/androidTest/java/tests/integration/streaming/StreamingDisabledTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java b/main/src/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java rename to main/src/androidTest/java/tests/integration/streaming/StreamingInitializationTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java b/main/src/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java rename to main/src/androidTest/java/tests/integration/streaming/SyncGuardianIntegrationTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java b/main/src/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java rename to main/src/androidTest/java/tests/integration/telemetry/TelemetryIntegrationTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java b/main/src/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java rename to main/src/androidTest/java/tests/integration/telemetry/TelemetryOccupancyTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java b/main/src/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java rename to main/src/androidTest/java/tests/integration/telemetry/TelemetryStreamingErrorTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java b/main/src/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java rename to main/src/androidTest/java/tests/integration/toggle/ImpressionsToggleTest.java diff --git a/android-client-main/src/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt b/main/src/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt rename to main/src/androidTest/java/tests/integration/userconsent/UserConsentModeDebugTest.kt diff --git a/android-client-main/src/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt b/main/src/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt rename to main/src/androidTest/java/tests/integration/userconsent/UserConsentModeNoneTest.kt diff --git a/android-client-main/src/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt b/main/src/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt similarity index 100% rename from android-client-main/src/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt rename to main/src/androidTest/java/tests/integration/userconsent/UserConsentModeOptimizedTest.kt diff --git a/android-client-main/src/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java b/main/src/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java rename to main/src/androidTest/java/tests/localhost/LocalhostPropertiesFileParserTest.java diff --git a/android-client-main/src/androidTest/java/tests/localhost/LocalhostTest.java b/main/src/androidTest/java/tests/localhost/LocalhostTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/localhost/LocalhostTest.java rename to main/src/androidTest/java/tests/localhost/LocalhostTest.java diff --git a/android-client-main/src/androidTest/java/tests/service/CompressionTest.java b/main/src/androidTest/java/tests/service/CompressionTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/service/CompressionTest.java rename to main/src/androidTest/java/tests/service/CompressionTest.java diff --git a/android-client-main/src/androidTest/java/tests/service/EventsManagerTest.java b/main/src/androidTest/java/tests/service/EventsManagerTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/service/EventsManagerTest.java rename to main/src/androidTest/java/tests/service/EventsManagerTest.java diff --git a/android-client-main/src/androidTest/java/tests/service/EventsRequestTest.java b/main/src/androidTest/java/tests/service/EventsRequestTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/service/EventsRequestTest.java rename to main/src/androidTest/java/tests/service/EventsRequestTest.java diff --git a/android-client-main/src/androidTest/java/tests/service/ImpressionsRequestTest.java b/main/src/androidTest/java/tests/service/ImpressionsRequestTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/service/ImpressionsRequestTest.java rename to main/src/androidTest/java/tests/service/ImpressionsRequestTest.java diff --git a/android-client-main/src/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java b/main/src/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java rename to main/src/androidTest/java/tests/service/MySegmentV2PayloadDecoderTest.java diff --git a/android-client-main/src/androidTest/java/tests/service/SdkUpdatePollingTest.java b/main/src/androidTest/java/tests/service/SdkUpdatePollingTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/service/SdkUpdatePollingTest.java rename to main/src/androidTest/java/tests/service/SdkUpdatePollingTest.java diff --git a/android-client-main/src/androidTest/java/tests/service/SseJwtTokenParserTest.java b/main/src/androidTest/java/tests/service/SseJwtTokenParserTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/service/SseJwtTokenParserTest.java rename to main/src/androidTest/java/tests/service/SseJwtTokenParserTest.java diff --git a/android-client-main/src/androidTest/java/tests/service/UniqueKeysIntegrationTest.java b/main/src/androidTest/java/tests/service/UniqueKeysIntegrationTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/service/UniqueKeysIntegrationTest.java rename to main/src/androidTest/java/tests/service/UniqueKeysIntegrationTest.java diff --git a/android-client-main/src/androidTest/java/tests/service/UrlSanitizerTest.java b/main/src/androidTest/java/tests/service/UrlSanitizerTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/service/UrlSanitizerTest.java rename to main/src/androidTest/java/tests/service/UrlSanitizerTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/GeneralInfoStorageTest.java b/main/src/androidTest/java/tests/storage/GeneralInfoStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/GeneralInfoStorageTest.java rename to main/src/androidTest/java/tests/storage/GeneralInfoStorageTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java b/main/src/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java rename to main/src/androidTest/java/tests/storage/LoadMySegmentsTaskTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/LoadSplitTaskTest.java b/main/src/androidTest/java/tests/storage/LoadSplitTaskTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/LoadSplitTaskTest.java rename to main/src/androidTest/java/tests/storage/LoadSplitTaskTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/MySegmentsStorageTest.java b/main/src/androidTest/java/tests/storage/MySegmentsStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/MySegmentsStorageTest.java rename to main/src/androidTest/java/tests/storage/MySegmentsStorageTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/PersistentEventStorageTest.java b/main/src/androidTest/java/tests/storage/PersistentEventStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/PersistentEventStorageTest.java rename to main/src/androidTest/java/tests/storage/PersistentEventStorageTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java b/main/src/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java rename to main/src/androidTest/java/tests/storage/PersistentImpressionCountStorageTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/PersistentImpressionStorageTest.java b/main/src/androidTest/java/tests/storage/PersistentImpressionStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/PersistentImpressionStorageTest.java rename to main/src/androidTest/java/tests/storage/PersistentImpressionStorageTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java b/main/src/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java rename to main/src/androidTest/java/tests/storage/PersistentMyLargeSegmentStorageTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java b/main/src/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java rename to main/src/androidTest/java/tests/storage/PersistentMySegmentStorageTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/PersistentSplitsStorageTest.java b/main/src/androidTest/java/tests/storage/PersistentSplitsStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/PersistentSplitsStorageTest.java rename to main/src/androidTest/java/tests/storage/PersistentSplitsStorageTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/SplitsStorageTest.java b/main/src/androidTest/java/tests/storage/SplitsStorageTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/SplitsStorageTest.java rename to main/src/androidTest/java/tests/storage/SplitsStorageTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/cipher/CBCCipherTest.kt b/main/src/androidTest/java/tests/storage/cipher/CBCCipherTest.kt similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/cipher/CBCCipherTest.kt rename to main/src/androidTest/java/tests/storage/cipher/CBCCipherTest.kt diff --git a/android-client-main/src/androidTest/java/tests/storage/cipher/KeyManagerTest.java b/main/src/androidTest/java/tests/storage/cipher/KeyManagerTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/cipher/KeyManagerTest.java rename to main/src/androidTest/java/tests/storage/cipher/KeyManagerTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java b/main/src/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java rename to main/src/androidTest/java/tests/storage/cipher/provider/LegacyKeyProviderTest.java diff --git a/android-client-main/src/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java b/main/src/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java rename to main/src/androidTest/java/tests/storage/cipher/provider/SecureKeyStorageProviderTest.java diff --git a/android-client-main/src/androidTest/java/tests/workmanager/WMWorkersSetupTest.java b/main/src/androidTest/java/tests/workmanager/WMWorkersSetupTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/workmanager/WMWorkersSetupTest.java rename to main/src/androidTest/java/tests/workmanager/WMWorkersSetupTest.java diff --git a/android-client-main/src/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java b/main/src/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java similarity index 100% rename from android-client-main/src/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java rename to main/src/androidTest/java/tests/workmanager/WorkManagerWrapperTest.java diff --git a/android-client-main/src/main/AndroidManifest.xml b/main/src/main/AndroidManifest.xml similarity index 100% rename from android-client-main/src/main/AndroidManifest.xml rename to main/src/main/AndroidManifest.xml diff --git a/android-client-main/src/main/java/io/split/android/client/AlwaysReturnControlSplitClient.java b/main/src/main/java/io/split/android/client/AlwaysReturnControlSplitClient.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/AlwaysReturnControlSplitClient.java rename to main/src/main/java/io/split/android/client/AlwaysReturnControlSplitClient.java diff --git a/android-client-main/src/main/java/io/split/android/client/Destroyer.java b/main/src/main/java/io/split/android/client/Destroyer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/Destroyer.java rename to main/src/main/java/io/split/android/client/Destroyer.java diff --git a/android-client-main/src/main/java/io/split/android/client/EvaluationOptions.java b/main/src/main/java/io/split/android/client/EvaluationOptions.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/EvaluationOptions.java rename to main/src/main/java/io/split/android/client/EvaluationOptions.java diff --git a/android-client-main/src/main/java/io/split/android/client/EvaluationResult.java b/main/src/main/java/io/split/android/client/EvaluationResult.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/EvaluationResult.java rename to main/src/main/java/io/split/android/client/EvaluationResult.java diff --git a/android-client-main/src/main/java/io/split/android/client/Evaluator.java b/main/src/main/java/io/split/android/client/Evaluator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/Evaluator.java rename to main/src/main/java/io/split/android/client/Evaluator.java diff --git a/android-client-main/src/main/java/io/split/android/client/EvaluatorImpl.java b/main/src/main/java/io/split/android/client/EvaluatorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/EvaluatorImpl.java rename to main/src/main/java/io/split/android/client/EvaluatorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/EventsTracker.java b/main/src/main/java/io/split/android/client/EventsTracker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/EventsTracker.java rename to main/src/main/java/io/split/android/client/EventsTracker.java diff --git a/android-client-main/src/main/java/io/split/android/client/EventsTrackerImpl.java b/main/src/main/java/io/split/android/client/EventsTrackerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/EventsTrackerImpl.java rename to main/src/main/java/io/split/android/client/EventsTrackerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/FeatureFlagFilter.java b/main/src/main/java/io/split/android/client/FeatureFlagFilter.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/FeatureFlagFilter.java rename to main/src/main/java/io/split/android/client/FeatureFlagFilter.java diff --git a/android-client-main/src/main/java/io/split/android/client/FilterBuilder.java b/main/src/main/java/io/split/android/client/FilterBuilder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/FilterBuilder.java rename to main/src/main/java/io/split/android/client/FilterBuilder.java diff --git a/android-client-main/src/main/java/io/split/android/client/FilterGrouper.java b/main/src/main/java/io/split/android/client/FilterGrouper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/FilterGrouper.java rename to main/src/main/java/io/split/android/client/FilterGrouper.java diff --git a/android-client-main/src/main/java/io/split/android/client/FlagSetsFilter.java b/main/src/main/java/io/split/android/client/FlagSetsFilter.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/FlagSetsFilter.java rename to main/src/main/java/io/split/android/client/FlagSetsFilter.java diff --git a/android-client-main/src/main/java/io/split/android/client/FlagSetsFilterImpl.java b/main/src/main/java/io/split/android/client/FlagSetsFilterImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/FlagSetsFilterImpl.java rename to main/src/main/java/io/split/android/client/FlagSetsFilterImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/ProcessedEventProperties.java b/main/src/main/java/io/split/android/client/ProcessedEventProperties.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/ProcessedEventProperties.java rename to main/src/main/java/io/split/android/client/ProcessedEventProperties.java diff --git a/android-client-main/src/main/java/io/split/android/client/PropertyValidatorImpl.java b/main/src/main/java/io/split/android/client/PropertyValidatorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/PropertyValidatorImpl.java rename to main/src/main/java/io/split/android/client/PropertyValidatorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/RetryBackoffCounterTimerFactory.java b/main/src/main/java/io/split/android/client/RetryBackoffCounterTimerFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/RetryBackoffCounterTimerFactory.java rename to main/src/main/java/io/split/android/client/RetryBackoffCounterTimerFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/RolloutCacheConfiguration.java b/main/src/main/java/io/split/android/client/RolloutCacheConfiguration.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/RolloutCacheConfiguration.java rename to main/src/main/java/io/split/android/client/RolloutCacheConfiguration.java diff --git a/android-client-main/src/main/java/io/split/android/client/ServiceEndpoints.java b/main/src/main/java/io/split/android/client/ServiceEndpoints.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/ServiceEndpoints.java rename to main/src/main/java/io/split/android/client/ServiceEndpoints.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitClient.java b/main/src/main/java/io/split/android/client/SplitClient.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitClient.java rename to main/src/main/java/io/split/android/client/SplitClient.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitClientConfig.java b/main/src/main/java/io/split/android/client/SplitClientConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitClientConfig.java rename to main/src/main/java/io/split/android/client/SplitClientConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitClientFactory.java b/main/src/main/java/io/split/android/client/SplitClientFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitClientFactory.java rename to main/src/main/java/io/split/android/client/SplitClientFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitClientFactoryImpl.java b/main/src/main/java/io/split/android/client/SplitClientFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitClientFactoryImpl.java rename to main/src/main/java/io/split/android/client/SplitClientFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitClientImpl.java b/main/src/main/java/io/split/android/client/SplitClientImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitClientImpl.java rename to main/src/main/java/io/split/android/client/SplitClientImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitFactory.java b/main/src/main/java/io/split/android/client/SplitFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitFactory.java rename to main/src/main/java/io/split/android/client/SplitFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitFactoryBuilder.java b/main/src/main/java/io/split/android/client/SplitFactoryBuilder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitFactoryBuilder.java rename to main/src/main/java/io/split/android/client/SplitFactoryBuilder.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitFactoryHelper.java b/main/src/main/java/io/split/android/client/SplitFactoryHelper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitFactoryHelper.java rename to main/src/main/java/io/split/android/client/SplitFactoryHelper.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitFactoryImpl.java b/main/src/main/java/io/split/android/client/SplitFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitFactoryImpl.java rename to main/src/main/java/io/split/android/client/SplitFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitFilter.java b/main/src/main/java/io/split/android/client/SplitFilter.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitFilter.java rename to main/src/main/java/io/split/android/client/SplitFilter.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitManager.java b/main/src/main/java/io/split/android/client/SplitManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitManager.java rename to main/src/main/java/io/split/android/client/SplitManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitManagerImpl.java b/main/src/main/java/io/split/android/client/SplitManagerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitManagerImpl.java rename to main/src/main/java/io/split/android/client/SplitManagerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/SplitResult.java b/main/src/main/java/io/split/android/client/SplitResult.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SplitResult.java rename to main/src/main/java/io/split/android/client/SplitResult.java diff --git a/android-client-main/src/main/java/io/split/android/client/SyncConfig.java b/main/src/main/java/io/split/android/client/SyncConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/SyncConfig.java rename to main/src/main/java/io/split/android/client/SyncConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/TestingConfig.java b/main/src/main/java/io/split/android/client/TestingConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/TestingConfig.java rename to main/src/main/java/io/split/android/client/TestingConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/TreatmentLabels.java b/main/src/main/java/io/split/android/client/TreatmentLabels.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/TreatmentLabels.java rename to main/src/main/java/io/split/android/client/TreatmentLabels.java diff --git a/android-client-main/src/main/java/io/split/android/client/UserConsentManager.java b/main/src/main/java/io/split/android/client/UserConsentManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/UserConsentManager.java rename to main/src/main/java/io/split/android/client/UserConsentManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/UserConsentManagerImpl.java b/main/src/main/java/io/split/android/client/UserConsentManagerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/UserConsentManagerImpl.java rename to main/src/main/java/io/split/android/client/UserConsentManagerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/api/Key.java b/main/src/main/java/io/split/android/client/api/Key.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/api/Key.java rename to main/src/main/java/io/split/android/client/api/Key.java diff --git a/android-client-main/src/main/java/io/split/android/client/api/SplitView.java b/main/src/main/java/io/split/android/client/api/SplitView.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/api/SplitView.java rename to main/src/main/java/io/split/android/client/api/SplitView.java diff --git a/android-client-main/src/main/java/io/split/android/client/attributes/AttributesManager.java b/main/src/main/java/io/split/android/client/attributes/AttributesManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/attributes/AttributesManager.java rename to main/src/main/java/io/split/android/client/attributes/AttributesManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/attributes/AttributesManagerFactory.java b/main/src/main/java/io/split/android/client/attributes/AttributesManagerFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/attributes/AttributesManagerFactory.java rename to main/src/main/java/io/split/android/client/attributes/AttributesManagerFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/attributes/AttributesManagerFactoryImpl.java b/main/src/main/java/io/split/android/client/attributes/AttributesManagerFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/attributes/AttributesManagerFactoryImpl.java rename to main/src/main/java/io/split/android/client/attributes/AttributesManagerFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/attributes/AttributesManagerImpl.java b/main/src/main/java/io/split/android/client/attributes/AttributesManagerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/attributes/AttributesManagerImpl.java rename to main/src/main/java/io/split/android/client/attributes/AttributesManagerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/attributes/AttributesMerger.java b/main/src/main/java/io/split/android/client/attributes/AttributesMerger.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/attributes/AttributesMerger.java rename to main/src/main/java/io/split/android/client/attributes/AttributesMerger.java diff --git a/android-client-main/src/main/java/io/split/android/client/attributes/AttributesMergerImpl.java b/main/src/main/java/io/split/android/client/attributes/AttributesMergerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/attributes/AttributesMergerImpl.java rename to main/src/main/java/io/split/android/client/attributes/AttributesMergerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/common/CompressionType.java b/main/src/main/java/io/split/android/client/common/CompressionType.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/common/CompressionType.java rename to main/src/main/java/io/split/android/client/common/CompressionType.java diff --git a/android-client-main/src/main/java/io/split/android/client/common/CompressionUtilProvider.java b/main/src/main/java/io/split/android/client/common/CompressionUtilProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/common/CompressionUtilProvider.java rename to main/src/main/java/io/split/android/client/common/CompressionUtilProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Algorithm.java b/main/src/main/java/io/split/android/client/dtos/Algorithm.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Algorithm.java rename to main/src/main/java/io/split/android/client/dtos/Algorithm.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/AllSegmentsChange.java b/main/src/main/java/io/split/android/client/dtos/AllSegmentsChange.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/AllSegmentsChange.java rename to main/src/main/java/io/split/android/client/dtos/AllSegmentsChange.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/BetweenMatcherData.java b/main/src/main/java/io/split/android/client/dtos/BetweenMatcherData.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/BetweenMatcherData.java rename to main/src/main/java/io/split/android/client/dtos/BetweenMatcherData.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/BetweenStringMatcherData.java b/main/src/main/java/io/split/android/client/dtos/BetweenStringMatcherData.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/BetweenStringMatcherData.java rename to main/src/main/java/io/split/android/client/dtos/BetweenStringMatcherData.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/ChunkHeader.java b/main/src/main/java/io/split/android/client/dtos/ChunkHeader.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/ChunkHeader.java rename to main/src/main/java/io/split/android/client/dtos/ChunkHeader.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Condition.java b/main/src/main/java/io/split/android/client/dtos/Condition.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Condition.java rename to main/src/main/java/io/split/android/client/dtos/Condition.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/ConditionType.java b/main/src/main/java/io/split/android/client/dtos/ConditionType.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/ConditionType.java rename to main/src/main/java/io/split/android/client/dtos/ConditionType.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Counter.java b/main/src/main/java/io/split/android/client/dtos/Counter.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Counter.java rename to main/src/main/java/io/split/android/client/dtos/Counter.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/DataType.java b/main/src/main/java/io/split/android/client/dtos/DataType.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/DataType.java rename to main/src/main/java/io/split/android/client/dtos/DataType.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/DependencyMatcherData.java b/main/src/main/java/io/split/android/client/dtos/DependencyMatcherData.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/DependencyMatcherData.java rename to main/src/main/java/io/split/android/client/dtos/DependencyMatcherData.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/DeprecatedKeyImpression.java b/main/src/main/java/io/split/android/client/dtos/DeprecatedKeyImpression.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/DeprecatedKeyImpression.java rename to main/src/main/java/io/split/android/client/dtos/DeprecatedKeyImpression.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Event.java b/main/src/main/java/io/split/android/client/dtos/Event.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Event.java rename to main/src/main/java/io/split/android/client/dtos/Event.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Excluded.java b/main/src/main/java/io/split/android/client/dtos/Excluded.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Excluded.java rename to main/src/main/java/io/split/android/client/dtos/Excluded.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/ExcludedSegment.java b/main/src/main/java/io/split/android/client/dtos/ExcludedSegment.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/ExcludedSegment.java rename to main/src/main/java/io/split/android/client/dtos/ExcludedSegment.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Helper.java b/main/src/main/java/io/split/android/client/dtos/Helper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Helper.java rename to main/src/main/java/io/split/android/client/dtos/Helper.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/HttpProxyDto.java b/main/src/main/java/io/split/android/client/dtos/HttpProxyDto.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/HttpProxyDto.java rename to main/src/main/java/io/split/android/client/dtos/HttpProxyDto.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Identifiable.java b/main/src/main/java/io/split/android/client/dtos/Identifiable.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Identifiable.java rename to main/src/main/java/io/split/android/client/dtos/Identifiable.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/KeyImpression.java b/main/src/main/java/io/split/android/client/dtos/KeyImpression.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/KeyImpression.java rename to main/src/main/java/io/split/android/client/dtos/KeyImpression.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/KeySelector.java b/main/src/main/java/io/split/android/client/dtos/KeySelector.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/KeySelector.java rename to main/src/main/java/io/split/android/client/dtos/KeySelector.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Matcher.java b/main/src/main/java/io/split/android/client/dtos/Matcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Matcher.java rename to main/src/main/java/io/split/android/client/dtos/Matcher.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/MatcherCombiner.java b/main/src/main/java/io/split/android/client/dtos/MatcherCombiner.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/MatcherCombiner.java rename to main/src/main/java/io/split/android/client/dtos/MatcherCombiner.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/MatcherGroup.java b/main/src/main/java/io/split/android/client/dtos/MatcherGroup.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/MatcherGroup.java rename to main/src/main/java/io/split/android/client/dtos/MatcherGroup.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/MatcherType.java b/main/src/main/java/io/split/android/client/dtos/MatcherType.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/MatcherType.java rename to main/src/main/java/io/split/android/client/dtos/MatcherType.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Partition.java b/main/src/main/java/io/split/android/client/dtos/Partition.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Partition.java rename to main/src/main/java/io/split/android/client/dtos/Partition.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Prerequisite.java b/main/src/main/java/io/split/android/client/dtos/Prerequisite.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Prerequisite.java rename to main/src/main/java/io/split/android/client/dtos/Prerequisite.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/RuleBasedSegment.java b/main/src/main/java/io/split/android/client/dtos/RuleBasedSegment.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/RuleBasedSegment.java rename to main/src/main/java/io/split/android/client/dtos/RuleBasedSegment.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/RuleBasedSegmentChange.java b/main/src/main/java/io/split/android/client/dtos/RuleBasedSegmentChange.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/RuleBasedSegmentChange.java rename to main/src/main/java/io/split/android/client/dtos/RuleBasedSegmentChange.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Segment.java b/main/src/main/java/io/split/android/client/dtos/Segment.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Segment.java rename to main/src/main/java/io/split/android/client/dtos/Segment.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/SegmentResponse.java b/main/src/main/java/io/split/android/client/dtos/SegmentResponse.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/SegmentResponse.java rename to main/src/main/java/io/split/android/client/dtos/SegmentResponse.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/SegmentsChange.java b/main/src/main/java/io/split/android/client/dtos/SegmentsChange.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/SegmentsChange.java rename to main/src/main/java/io/split/android/client/dtos/SegmentsChange.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/SerializableEvent.java b/main/src/main/java/io/split/android/client/dtos/SerializableEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/SerializableEvent.java rename to main/src/main/java/io/split/android/client/dtos/SerializableEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Split.java b/main/src/main/java/io/split/android/client/dtos/Split.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Split.java rename to main/src/main/java/io/split/android/client/dtos/Split.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/SplitChange.java b/main/src/main/java/io/split/android/client/dtos/SplitChange.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/SplitChange.java rename to main/src/main/java/io/split/android/client/dtos/SplitChange.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/Status.java b/main/src/main/java/io/split/android/client/dtos/Status.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/Status.java rename to main/src/main/java/io/split/android/client/dtos/Status.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/TargetingRulesChange.java b/main/src/main/java/io/split/android/client/dtos/TargetingRulesChange.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/TargetingRulesChange.java rename to main/src/main/java/io/split/android/client/dtos/TargetingRulesChange.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/TestImpressions.java b/main/src/main/java/io/split/android/client/dtos/TestImpressions.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/TestImpressions.java rename to main/src/main/java/io/split/android/client/dtos/TestImpressions.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/URN.java b/main/src/main/java/io/split/android/client/dtos/URN.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/URN.java rename to main/src/main/java/io/split/android/client/dtos/URN.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/UnaryNumericMatcherData.java b/main/src/main/java/io/split/android/client/dtos/UnaryNumericMatcherData.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/UnaryNumericMatcherData.java rename to main/src/main/java/io/split/android/client/dtos/UnaryNumericMatcherData.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/UserDefinedLargeSegmentMatcherData.java b/main/src/main/java/io/split/android/client/dtos/UserDefinedLargeSegmentMatcherData.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/UserDefinedLargeSegmentMatcherData.java rename to main/src/main/java/io/split/android/client/dtos/UserDefinedLargeSegmentMatcherData.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/UserDefinedSegmentMatcherData.java b/main/src/main/java/io/split/android/client/dtos/UserDefinedSegmentMatcherData.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/UserDefinedSegmentMatcherData.java rename to main/src/main/java/io/split/android/client/dtos/UserDefinedSegmentMatcherData.java diff --git a/android-client-main/src/main/java/io/split/android/client/dtos/WhitelistMatcherData.java b/main/src/main/java/io/split/android/client/dtos/WhitelistMatcherData.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/dtos/WhitelistMatcherData.java rename to main/src/main/java/io/split/android/client/dtos/WhitelistMatcherData.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/BaseEventsManager.java b/main/src/main/java/io/split/android/client/events/BaseEventsManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/BaseEventsManager.java rename to main/src/main/java/io/split/android/client/events/BaseEventsManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/EventsManagerCoordinator.java b/main/src/main/java/io/split/android/client/events/EventsManagerCoordinator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/EventsManagerCoordinator.java rename to main/src/main/java/io/split/android/client/events/EventsManagerCoordinator.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/EventsManagerRegistry.java b/main/src/main/java/io/split/android/client/events/EventsManagerRegistry.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/EventsManagerRegistry.java rename to main/src/main/java/io/split/android/client/events/EventsManagerRegistry.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/ISplitEventsManager.java b/main/src/main/java/io/split/android/client/events/ISplitEventsManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/ISplitEventsManager.java rename to main/src/main/java/io/split/android/client/events/ISplitEventsManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/ListenableEventsManager.java b/main/src/main/java/io/split/android/client/events/ListenableEventsManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/ListenableEventsManager.java rename to main/src/main/java/io/split/android/client/events/ListenableEventsManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/SplitEvent.java b/main/src/main/java/io/split/android/client/events/SplitEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/SplitEvent.java rename to main/src/main/java/io/split/android/client/events/SplitEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/SplitEventTask.java b/main/src/main/java/io/split/android/client/events/SplitEventTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/SplitEventTask.java rename to main/src/main/java/io/split/android/client/events/SplitEventTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/SplitEventTaskMethodNotImplementedException.java b/main/src/main/java/io/split/android/client/events/SplitEventTaskMethodNotImplementedException.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/SplitEventTaskMethodNotImplementedException.java rename to main/src/main/java/io/split/android/client/events/SplitEventTaskMethodNotImplementedException.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/SplitEventsManager.java b/main/src/main/java/io/split/android/client/events/SplitEventsManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/SplitEventsManager.java rename to main/src/main/java/io/split/android/client/events/SplitEventsManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/SplitInternalEvent.java b/main/src/main/java/io/split/android/client/events/SplitInternalEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/SplitInternalEvent.java rename to main/src/main/java/io/split/android/client/events/SplitInternalEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/executors/ClientEventSplitTask.java b/main/src/main/java/io/split/android/client/events/executors/ClientEventSplitTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/executors/ClientEventSplitTask.java rename to main/src/main/java/io/split/android/client/events/executors/ClientEventSplitTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutor.java b/main/src/main/java/io/split/android/client/events/executors/SplitEventExecutor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutor.java rename to main/src/main/java/io/split/android/client/events/executors/SplitEventExecutor.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorFactory.java b/main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorFactory.java rename to main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResources.java b/main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResources.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResources.java rename to main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResources.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImpl.java b/main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImpl.java rename to main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorWithClient.java b/main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorWithClient.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorWithClient.java rename to main/src/main/java/io/split/android/client/events/executors/SplitEventExecutorWithClient.java diff --git a/android-client-main/src/main/java/io/split/android/client/exceptions/ChangeNumberExceptionWrapper.java b/main/src/main/java/io/split/android/client/exceptions/ChangeNumberExceptionWrapper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/exceptions/ChangeNumberExceptionWrapper.java rename to main/src/main/java/io/split/android/client/exceptions/ChangeNumberExceptionWrapper.java diff --git a/android-client-main/src/main/java/io/split/android/client/exceptions/MySegmentsParsingException.java b/main/src/main/java/io/split/android/client/exceptions/MySegmentsParsingException.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/exceptions/MySegmentsParsingException.java rename to main/src/main/java/io/split/android/client/exceptions/MySegmentsParsingException.java diff --git a/android-client-main/src/main/java/io/split/android/client/exceptions/ParentIsControlException.java b/main/src/main/java/io/split/android/client/exceptions/ParentIsControlException.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/exceptions/ParentIsControlException.java rename to main/src/main/java/io/split/android/client/exceptions/ParentIsControlException.java diff --git a/android-client-main/src/main/java/io/split/android/client/exceptions/SplitInstantiationException.java b/main/src/main/java/io/split/android/client/exceptions/SplitInstantiationException.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/exceptions/SplitInstantiationException.java rename to main/src/main/java/io/split/android/client/exceptions/SplitInstantiationException.java diff --git a/android-client-main/src/main/java/io/split/android/client/factory/FactoryMonitor.java b/main/src/main/java/io/split/android/client/factory/FactoryMonitor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/factory/FactoryMonitor.java rename to main/src/main/java/io/split/android/client/factory/FactoryMonitor.java diff --git a/android-client-main/src/main/java/io/split/android/client/factory/FactoryMonitorImpl.java b/main/src/main/java/io/split/android/client/factory/FactoryMonitorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/factory/FactoryMonitorImpl.java rename to main/src/main/java/io/split/android/client/factory/FactoryMonitorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatment.java b/main/src/main/java/io/split/android/client/fallback/FallbackTreatment.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatment.java rename to main/src/main/java/io/split/android/client/fallback/FallbackTreatment.java diff --git a/android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculator.java b/main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculator.java rename to main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculator.java diff --git a/android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorImpl.java b/main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorImpl.java rename to main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsConfiguration.java b/main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsConfiguration.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsConfiguration.java rename to main/src/main/java/io/split/android/client/fallback/FallbackTreatmentsConfiguration.java diff --git a/android-client-main/src/main/java/io/split/android/client/fallback/FallbacksSanitizer.java b/main/src/main/java/io/split/android/client/fallback/FallbacksSanitizer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/fallback/FallbacksSanitizer.java rename to main/src/main/java/io/split/android/client/fallback/FallbacksSanitizer.java diff --git a/android-client-main/src/main/java/io/split/android/client/fallback/FallbacksSanitizerImpl.java b/main/src/main/java/io/split/android/client/fallback/FallbacksSanitizerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/fallback/FallbacksSanitizerImpl.java rename to main/src/main/java/io/split/android/client/fallback/FallbacksSanitizerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/impressions/DecoratedImpression.java b/main/src/main/java/io/split/android/client/impressions/DecoratedImpression.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/impressions/DecoratedImpression.java rename to main/src/main/java/io/split/android/client/impressions/DecoratedImpression.java diff --git a/android-client-main/src/main/java/io/split/android/client/impressions/DecoratedImpressionListener.java b/main/src/main/java/io/split/android/client/impressions/DecoratedImpressionListener.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/impressions/DecoratedImpressionListener.java rename to main/src/main/java/io/split/android/client/impressions/DecoratedImpressionListener.java diff --git a/android-client-main/src/main/java/io/split/android/client/impressions/Impression.java b/main/src/main/java/io/split/android/client/impressions/Impression.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/impressions/Impression.java rename to main/src/main/java/io/split/android/client/impressions/Impression.java diff --git a/android-client-main/src/main/java/io/split/android/client/impressions/ImpressionListener.java b/main/src/main/java/io/split/android/client/impressions/ImpressionListener.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/impressions/ImpressionListener.java rename to main/src/main/java/io/split/android/client/impressions/ImpressionListener.java diff --git a/android-client-main/src/main/java/io/split/android/client/impressions/ImpressionLoggingTask.java b/main/src/main/java/io/split/android/client/impressions/ImpressionLoggingTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/impressions/ImpressionLoggingTask.java rename to main/src/main/java/io/split/android/client/impressions/ImpressionLoggingTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/impressions/SyncImpressionListener.java b/main/src/main/java/io/split/android/client/impressions/SyncImpressionListener.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/impressions/SyncImpressionListener.java rename to main/src/main/java/io/split/android/client/impressions/SyncImpressionListener.java diff --git a/android-client-main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleAware.java b/main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleAware.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleAware.java rename to main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleAware.java diff --git a/android-client-main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManager.java b/main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManager.java rename to main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManagerImpl.java b/main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManagerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManagerImpl.java rename to main/src/main/java/io/split/android/client/lifecycle/SplitLifecycleManagerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostFileParser.java b/main/src/main/java/io/split/android/client/localhost/LocalhostFileParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/LocalhostFileParser.java rename to main/src/main/java/io/split/android/client/localhost/LocalhostFileParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostImpressionsListener.java b/main/src/main/java/io/split/android/client/localhost/LocalhostImpressionsListener.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/LocalhostImpressionsListener.java rename to main/src/main/java/io/split/android/client/localhost/LocalhostImpressionsListener.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostMySegmentsStorageContainer.java b/main/src/main/java/io/split/android/client/localhost/LocalhostMySegmentsStorageContainer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/LocalhostMySegmentsStorageContainer.java rename to main/src/main/java/io/split/android/client/localhost/LocalhostMySegmentsStorageContainer.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostPropertiesFileParser.java b/main/src/main/java/io/split/android/client/localhost/LocalhostPropertiesFileParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/LocalhostPropertiesFileParser.java rename to main/src/main/java/io/split/android/client/localhost/LocalhostPropertiesFileParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorage.java b/main/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorage.java rename to main/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorageProvider.java b/main/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorageProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorageProvider.java rename to main/src/main/java/io/split/android/client/localhost/LocalhostRuleBasedSegmentsStorageProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSplitClient.java b/main/src/main/java/io/split/android/client/localhost/LocalhostSplitClient.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSplitClient.java rename to main/src/main/java/io/split/android/client/localhost/LocalhostSplitClient.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSplitFactory.java b/main/src/main/java/io/split/android/client/localhost/LocalhostSplitFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSplitFactory.java rename to main/src/main/java/io/split/android/client/localhost/LocalhostSplitFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSplitsStorage.java b/main/src/main/java/io/split/android/client/localhost/LocalhostSplitsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSplitsStorage.java rename to main/src/main/java/io/split/android/client/localhost/LocalhostSplitsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSynchronizer.java b/main/src/main/java/io/split/android/client/localhost/LocalhostSynchronizer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/LocalhostSynchronizer.java rename to main/src/main/java/io/split/android/client/localhost/LocalhostSynchronizer.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/LocalhostYamlFileParser.java b/main/src/main/java/io/split/android/client/localhost/LocalhostYamlFileParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/LocalhostYamlFileParser.java rename to main/src/main/java/io/split/android/client/localhost/LocalhostYamlFileParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/SplitHelper.java b/main/src/main/java/io/split/android/client/localhost/SplitHelper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/SplitHelper.java rename to main/src/main/java/io/split/android/client/localhost/SplitHelper.java diff --git a/android-client-main/src/main/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImpl.java b/main/src/main/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImpl.java rename to main/src/main/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/Algorithm.java b/main/src/main/java/io/split/android/client/network/Algorithm.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/Algorithm.java rename to main/src/main/java/io/split/android/client/network/Algorithm.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/AuthenticatedRequest.java b/main/src/main/java/io/split/android/client/network/AuthenticatedRequest.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/AuthenticatedRequest.java rename to main/src/main/java/io/split/android/client/network/AuthenticatedRequest.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/Authenticator.java b/main/src/main/java/io/split/android/client/network/Authenticator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/Authenticator.java rename to main/src/main/java/io/split/android/client/network/Authenticator.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/Base64Decoder.java b/main/src/main/java/io/split/android/client/network/Base64Decoder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/Base64Decoder.java rename to main/src/main/java/io/split/android/client/network/Base64Decoder.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/Base64Encoder.java b/main/src/main/java/io/split/android/client/network/Base64Encoder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/Base64Encoder.java rename to main/src/main/java/io/split/android/client/network/Base64Encoder.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/BaseHttpResponse.java b/main/src/main/java/io/split/android/client/network/BaseHttpResponse.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/BaseHttpResponse.java rename to main/src/main/java/io/split/android/client/network/BaseHttpResponse.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/BaseHttpResponseImpl.java b/main/src/main/java/io/split/android/client/network/BaseHttpResponseImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/BaseHttpResponseImpl.java rename to main/src/main/java/io/split/android/client/network/BaseHttpResponseImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/BasicCredentialsProvider.java b/main/src/main/java/io/split/android/client/network/BasicCredentialsProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/BasicCredentialsProvider.java rename to main/src/main/java/io/split/android/client/network/BasicCredentialsProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/BearerCredentialsProvider.java b/main/src/main/java/io/split/android/client/network/BearerCredentialsProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/BearerCredentialsProvider.java rename to main/src/main/java/io/split/android/client/network/BearerCredentialsProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/CertificateChecker.java b/main/src/main/java/io/split/android/client/network/CertificateChecker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/CertificateChecker.java rename to main/src/main/java/io/split/android/client/network/CertificateChecker.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/CertificateCheckerHelper.java b/main/src/main/java/io/split/android/client/network/CertificateCheckerHelper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/CertificateCheckerHelper.java rename to main/src/main/java/io/split/android/client/network/CertificateCheckerHelper.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/CertificateCheckerImpl.java b/main/src/main/java/io/split/android/client/network/CertificateCheckerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/CertificateCheckerImpl.java rename to main/src/main/java/io/split/android/client/network/CertificateCheckerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/CertificatePin.java b/main/src/main/java/io/split/android/client/network/CertificatePin.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/CertificatePin.java rename to main/src/main/java/io/split/android/client/network/CertificatePin.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/CertificatePinningConfiguration.java b/main/src/main/java/io/split/android/client/network/CertificatePinningConfiguration.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/CertificatePinningConfiguration.java rename to main/src/main/java/io/split/android/client/network/CertificatePinningConfiguration.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/CertificatePinningConfigurationProvider.java b/main/src/main/java/io/split/android/client/network/CertificatePinningConfigurationProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/CertificatePinningConfigurationProvider.java rename to main/src/main/java/io/split/android/client/network/CertificatePinningConfigurationProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/CertificatePinningFailureListener.java b/main/src/main/java/io/split/android/client/network/CertificatePinningFailureListener.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/CertificatePinningFailureListener.java rename to main/src/main/java/io/split/android/client/network/CertificatePinningFailureListener.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/ChainCleaner.java b/main/src/main/java/io/split/android/client/network/ChainCleaner.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/ChainCleaner.java rename to main/src/main/java/io/split/android/client/network/ChainCleaner.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/ChainCleanerImpl.java b/main/src/main/java/io/split/android/client/network/ChainCleanerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/ChainCleanerImpl.java rename to main/src/main/java/io/split/android/client/network/ChainCleanerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/DefaultBase64Decoder.java b/main/src/main/java/io/split/android/client/network/DefaultBase64Decoder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/DefaultBase64Decoder.java rename to main/src/main/java/io/split/android/client/network/DefaultBase64Decoder.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/DefaultBase64Encoder.java b/main/src/main/java/io/split/android/client/network/DefaultBase64Encoder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/DefaultBase64Encoder.java rename to main/src/main/java/io/split/android/client/network/DefaultBase64Encoder.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/DevelopmentSslConfig.java b/main/src/main/java/io/split/android/client/network/DevelopmentSslConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/DevelopmentSslConfig.java rename to main/src/main/java/io/split/android/client/network/DevelopmentSslConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpClient.java b/main/src/main/java/io/split/android/client/network/HttpClient.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpClient.java rename to main/src/main/java/io/split/android/client/network/HttpClient.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpClientImpl.java b/main/src/main/java/io/split/android/client/network/HttpClientImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpClientImpl.java rename to main/src/main/java/io/split/android/client/network/HttpClientImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpException.java b/main/src/main/java/io/split/android/client/network/HttpException.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpException.java rename to main/src/main/java/io/split/android/client/network/HttpException.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpMethod.java b/main/src/main/java/io/split/android/client/network/HttpMethod.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpMethod.java rename to main/src/main/java/io/split/android/client/network/HttpMethod.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpOverTunnelExecutor.java b/main/src/main/java/io/split/android/client/network/HttpOverTunnelExecutor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpOverTunnelExecutor.java rename to main/src/main/java/io/split/android/client/network/HttpOverTunnelExecutor.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpProxy.java b/main/src/main/java/io/split/android/client/network/HttpProxy.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpProxy.java rename to main/src/main/java/io/split/android/client/network/HttpProxy.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpRequest.java b/main/src/main/java/io/split/android/client/network/HttpRequest.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpRequest.java rename to main/src/main/java/io/split/android/client/network/HttpRequest.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpRequestHelper.java b/main/src/main/java/io/split/android/client/network/HttpRequestHelper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpRequestHelper.java rename to main/src/main/java/io/split/android/client/network/HttpRequestHelper.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpRequestImpl.java b/main/src/main/java/io/split/android/client/network/HttpRequestImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpRequestImpl.java rename to main/src/main/java/io/split/android/client/network/HttpRequestImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpResponse.java b/main/src/main/java/io/split/android/client/network/HttpResponse.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpResponse.java rename to main/src/main/java/io/split/android/client/network/HttpResponse.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpResponseConnectionAdapter.java b/main/src/main/java/io/split/android/client/network/HttpResponseConnectionAdapter.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpResponseConnectionAdapter.java rename to main/src/main/java/io/split/android/client/network/HttpResponseConnectionAdapter.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpResponseImpl.java b/main/src/main/java/io/split/android/client/network/HttpResponseImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpResponseImpl.java rename to main/src/main/java/io/split/android/client/network/HttpResponseImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpStreamRequest.java b/main/src/main/java/io/split/android/client/network/HttpStreamRequest.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpStreamRequest.java rename to main/src/main/java/io/split/android/client/network/HttpStreamRequest.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpStreamRequestImpl.java b/main/src/main/java/io/split/android/client/network/HttpStreamRequestImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpStreamRequestImpl.java rename to main/src/main/java/io/split/android/client/network/HttpStreamRequestImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpStreamResponse.java b/main/src/main/java/io/split/android/client/network/HttpStreamResponse.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpStreamResponse.java rename to main/src/main/java/io/split/android/client/network/HttpStreamResponse.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/HttpStreamResponseImpl.java b/main/src/main/java/io/split/android/client/network/HttpStreamResponseImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/HttpStreamResponseImpl.java rename to main/src/main/java/io/split/android/client/network/HttpStreamResponseImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/LegacyTlsUpdater.java b/main/src/main/java/io/split/android/client/network/LegacyTlsUpdater.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/LegacyTlsUpdater.java rename to main/src/main/java/io/split/android/client/network/LegacyTlsUpdater.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/PercentEscaper.java b/main/src/main/java/io/split/android/client/network/PercentEscaper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/PercentEscaper.java rename to main/src/main/java/io/split/android/client/network/PercentEscaper.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/PinEncoder.java b/main/src/main/java/io/split/android/client/network/PinEncoder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/PinEncoder.java rename to main/src/main/java/io/split/android/client/network/PinEncoder.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/PinEncoderImpl.java b/main/src/main/java/io/split/android/client/network/PinEncoderImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/PinEncoderImpl.java rename to main/src/main/java/io/split/android/client/network/PinEncoderImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/ProxyCacertConnectionHandler.java b/main/src/main/java/io/split/android/client/network/ProxyCacertConnectionHandler.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/ProxyCacertConnectionHandler.java rename to main/src/main/java/io/split/android/client/network/ProxyCacertConnectionHandler.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/ProxyConfiguration.java b/main/src/main/java/io/split/android/client/network/ProxyConfiguration.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/ProxyConfiguration.java rename to main/src/main/java/io/split/android/client/network/ProxyConfiguration.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/ProxyCredentialsProvider.java b/main/src/main/java/io/split/android/client/network/ProxyCredentialsProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/ProxyCredentialsProvider.java rename to main/src/main/java/io/split/android/client/network/ProxyCredentialsProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProvider.java b/main/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProvider.java rename to main/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProviderImpl.java b/main/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProviderImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProviderImpl.java rename to main/src/main/java/io/split/android/client/network/ProxySslSocketFactoryProviderImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/RawHttpResponseParser.java b/main/src/main/java/io/split/android/client/network/RawHttpResponseParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/RawHttpResponseParser.java rename to main/src/main/java/io/split/android/client/network/RawHttpResponseParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/SdkTargetPath.java b/main/src/main/java/io/split/android/client/network/SdkTargetPath.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/SdkTargetPath.java rename to main/src/main/java/io/split/android/client/network/SdkTargetPath.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/SplitAuthenticatedRequest.java b/main/src/main/java/io/split/android/client/network/SplitAuthenticatedRequest.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/SplitAuthenticatedRequest.java rename to main/src/main/java/io/split/android/client/network/SplitAuthenticatedRequest.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/SplitAuthenticator.java b/main/src/main/java/io/split/android/client/network/SplitAuthenticator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/SplitAuthenticator.java rename to main/src/main/java/io/split/android/client/network/SplitAuthenticator.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/SplitBasicAuthenticator.java b/main/src/main/java/io/split/android/client/network/SplitBasicAuthenticator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/SplitBasicAuthenticator.java rename to main/src/main/java/io/split/android/client/network/SplitBasicAuthenticator.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/SplitHttpHeadersBuilder.java b/main/src/main/java/io/split/android/client/network/SplitHttpHeadersBuilder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/SplitHttpHeadersBuilder.java rename to main/src/main/java/io/split/android/client/network/SplitHttpHeadersBuilder.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/SplitUrlConnectionAuthenticator.java b/main/src/main/java/io/split/android/client/network/SplitUrlConnectionAuthenticator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/SplitUrlConnectionAuthenticator.java rename to main/src/main/java/io/split/android/client/network/SplitUrlConnectionAuthenticator.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/SslProxyTunnelEstablisher.java b/main/src/main/java/io/split/android/client/network/SslProxyTunnelEstablisher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/SslProxyTunnelEstablisher.java rename to main/src/main/java/io/split/android/client/network/SslProxyTunnelEstablisher.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/Tls12OnlySocketFactory.java b/main/src/main/java/io/split/android/client/network/Tls12OnlySocketFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/Tls12OnlySocketFactory.java rename to main/src/main/java/io/split/android/client/network/Tls12OnlySocketFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/TrustManagerProvider.java b/main/src/main/java/io/split/android/client/network/TrustManagerProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/TrustManagerProvider.java rename to main/src/main/java/io/split/android/client/network/TrustManagerProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/URIBuilder.java b/main/src/main/java/io/split/android/client/network/URIBuilder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/URIBuilder.java rename to main/src/main/java/io/split/android/client/network/URIBuilder.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/UnicodeEscaper.java b/main/src/main/java/io/split/android/client/network/UnicodeEscaper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/UnicodeEscaper.java rename to main/src/main/java/io/split/android/client/network/UnicodeEscaper.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/UrlEscapers.java b/main/src/main/java/io/split/android/client/network/UrlEscapers.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/UrlEscapers.java rename to main/src/main/java/io/split/android/client/network/UrlEscapers.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/UrlSanitizer.java b/main/src/main/java/io/split/android/client/network/UrlSanitizer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/UrlSanitizer.java rename to main/src/main/java/io/split/android/client/network/UrlSanitizer.java diff --git a/android-client-main/src/main/java/io/split/android/client/network/UrlSanitizerImpl.java b/main/src/main/java/io/split/android/client/network/UrlSanitizerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/network/UrlSanitizerImpl.java rename to main/src/main/java/io/split/android/client/network/UrlSanitizerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/CleanUpDatabaseTask.java b/main/src/main/java/io/split/android/client/service/CleanUpDatabaseTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/CleanUpDatabaseTask.java rename to main/src/main/java/io/split/android/client/service/CleanUpDatabaseTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/ServiceConstants.java b/main/src/main/java/io/split/android/client/service/ServiceConstants.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/ServiceConstants.java rename to main/src/main/java/io/split/android/client/service/ServiceConstants.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/ServiceFactory.java b/main/src/main/java/io/split/android/client/service/ServiceFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/ServiceFactory.java rename to main/src/main/java/io/split/android/client/service/ServiceFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/SplitApiFacade.java b/main/src/main/java/io/split/android/client/service/SplitApiFacade.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/SplitApiFacade.java rename to main/src/main/java/io/split/android/client/service/SplitApiFacade.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactory.java b/main/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactory.java rename to main/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactoryImpl.java b/main/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactoryImpl.java rename to main/src/main/java/io/split/android/client/service/attributes/AttributeTaskFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTask.java b/main/src/main/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTask.java rename to main/src/main/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/attributes/LoadAttributesTask.java b/main/src/main/java/io/split/android/client/service/attributes/LoadAttributesTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/attributes/LoadAttributesTask.java rename to main/src/main/java/io/split/android/client/service/attributes/LoadAttributesTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTask.java b/main/src/main/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTask.java rename to main/src/main/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/events/EventsRecorderTask.java b/main/src/main/java/io/split/android/client/service/events/EventsRecorderTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/events/EventsRecorderTask.java rename to main/src/main/java/io/split/android/client/service/events/EventsRecorderTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/events/EventsRecorderTaskConfig.java b/main/src/main/java/io/split/android/client/service/events/EventsRecorderTaskConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/events/EventsRecorderTaskConfig.java rename to main/src/main/java/io/split/android/client/service/events/EventsRecorderTaskConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/events/EventsRequestBodySerializer.java b/main/src/main/java/io/split/android/client/service/events/EventsRequestBodySerializer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/events/EventsRequestBodySerializer.java rename to main/src/main/java/io/split/android/client/service/events/EventsRequestBodySerializer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitBaseTaskExecutor.java b/main/src/main/java/io/split/android/client/service/executor/SplitBaseTaskExecutor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitBaseTaskExecutor.java rename to main/src/main/java/io/split/android/client/service/executor/SplitBaseTaskExecutor.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitClientEventTaskExecutor.java b/main/src/main/java/io/split/android/client/service/executor/SplitClientEventTaskExecutor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitClientEventTaskExecutor.java rename to main/src/main/java/io/split/android/client/service/executor/SplitClientEventTaskExecutor.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitSingleThreadTaskExecutor.java b/main/src/main/java/io/split/android/client/service/executor/SplitSingleThreadTaskExecutor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitSingleThreadTaskExecutor.java rename to main/src/main/java/io/split/android/client/service/executor/SplitSingleThreadTaskExecutor.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTask.java b/main/src/main/java/io/split/android/client/service/executor/SplitTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitTask.java rename to main/src/main/java/io/split/android/client/service/executor/SplitTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskBatchItem.java b/main/src/main/java/io/split/android/client/service/executor/SplitTaskBatchItem.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskBatchItem.java rename to main/src/main/java/io/split/android/client/service/executor/SplitTaskBatchItem.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskBatchWrapper.java b/main/src/main/java/io/split/android/client/service/executor/SplitTaskBatchWrapper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskBatchWrapper.java rename to main/src/main/java/io/split/android/client/service/executor/SplitTaskBatchWrapper.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionInfo.java b/main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionInfo.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionInfo.java rename to main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionInfo.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionListener.java b/main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionListener.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionListener.java rename to main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionListener.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionStatus.java b/main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionStatus.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionStatus.java rename to main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutionStatus.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutor.java b/main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutor.java rename to main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutor.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutorImpl.java b/main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutorImpl.java rename to main/src/main/java/io/split/android/client/service/executor/SplitTaskExecutorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskFactory.java b/main/src/main/java/io/split/android/client/service/executor/SplitTaskFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskFactory.java rename to main/src/main/java/io/split/android/client/service/executor/SplitTaskFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskFactoryImpl.java b/main/src/main/java/io/split/android/client/service/executor/SplitTaskFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskFactoryImpl.java rename to main/src/main/java/io/split/android/client/service/executor/SplitTaskFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskSerialWrapper.java b/main/src/main/java/io/split/android/client/service/executor/SplitTaskSerialWrapper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskSerialWrapper.java rename to main/src/main/java/io/split/android/client/service/executor/SplitTaskSerialWrapper.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskType.java b/main/src/main/java/io/split/android/client/service/executor/SplitTaskType.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/SplitTaskType.java rename to main/src/main/java/io/split/android/client/service/executor/SplitTaskType.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/TaskWrapper.java b/main/src/main/java/io/split/android/client/service/executor/TaskWrapper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/TaskWrapper.java rename to main/src/main/java/io/split/android/client/service/executor/TaskWrapper.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/ThreadFactoryBuilder.java b/main/src/main/java/io/split/android/client/service/executor/ThreadFactoryBuilder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/ThreadFactoryBuilder.java rename to main/src/main/java/io/split/android/client/service/executor/ThreadFactoryBuilder.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitDeferredTaskItem.java b/main/src/main/java/io/split/android/client/service/executor/parallel/SplitDeferredTaskItem.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitDeferredTaskItem.java rename to main/src/main/java/io/split/android/client/service/executor/parallel/SplitDeferredTaskItem.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutor.java b/main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutor.java rename to main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutor.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactory.java b/main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactory.java rename to main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactoryImpl.java b/main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactoryImpl.java rename to main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImpl.java b/main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImpl.java rename to main/src/main/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcher.java b/main/src/main/java/io/split/android/client/service/http/HttpFetcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcher.java rename to main/src/main/java/io/split/android/client/service/http/HttpFetcher.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcherException.java b/main/src/main/java/io/split/android/client/service/http/HttpFetcherException.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcherException.java rename to main/src/main/java/io/split/android/client/service/http/HttpFetcherException.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java b/main/src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java rename to main/src/main/java/io/split/android/client/service/http/HttpFetcherImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpGeneralException.java b/main/src/main/java/io/split/android/client/service/http/HttpGeneralException.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/HttpGeneralException.java rename to main/src/main/java/io/split/android/client/service/http/HttpGeneralException.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpRecorder.java b/main/src/main/java/io/split/android/client/service/http/HttpRecorder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/HttpRecorder.java rename to main/src/main/java/io/split/android/client/service/http/HttpRecorder.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpRecorderException.java b/main/src/main/java/io/split/android/client/service/http/HttpRecorderException.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/HttpRecorderException.java rename to main/src/main/java/io/split/android/client/service/http/HttpRecorderException.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpRecorderImpl.java b/main/src/main/java/io/split/android/client/service/http/HttpRecorderImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/HttpRecorderImpl.java rename to main/src/main/java/io/split/android/client/service/http/HttpRecorderImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpRequestBodySerializer.java b/main/src/main/java/io/split/android/client/service/http/HttpRequestBodySerializer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/HttpRequestBodySerializer.java rename to main/src/main/java/io/split/android/client/service/http/HttpRequestBodySerializer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpResponseParser.java b/main/src/main/java/io/split/android/client/service/http/HttpResponseParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/HttpResponseParser.java rename to main/src/main/java/io/split/android/client/service/http/HttpResponseParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpResponseParserException.java b/main/src/main/java/io/split/android/client/service/http/HttpResponseParserException.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/HttpResponseParserException.java rename to main/src/main/java/io/split/android/client/service/http/HttpResponseParserException.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpSseAuthTokenFetcher.java b/main/src/main/java/io/split/android/client/service/http/HttpSseAuthTokenFetcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/HttpSseAuthTokenFetcher.java rename to main/src/main/java/io/split/android/client/service/http/HttpSseAuthTokenFetcher.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/HttpStatus.java b/main/src/main/java/io/split/android/client/service/http/HttpStatus.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/HttpStatus.java rename to main/src/main/java/io/split/android/client/service/http/HttpStatus.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactory.java b/main/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactory.java rename to main/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImpl.java b/main/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImpl.java rename to main/src/main/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionHasher.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionHasher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionHasher.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionHasher.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManager.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManager.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerConfig.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerConfig.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProvider.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProvider.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImpl.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImpl.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionUtils.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionUtils.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionUtils.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionUtils.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCount.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionsCount.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCount.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionsCount.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountPerFeature.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountPerFeature.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountPerFeature.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountPerFeature.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRecorderTask.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRecorderTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRecorderTask.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRecorderTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRequestBodySerializer.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRequestBodySerializer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRequestBodySerializer.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionsCountRequestBodySerializer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCounter.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionsCounter.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsCounter.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionsCounter.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsMode.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionsMode.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsMode.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionsMode.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTask.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTask.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTaskConfig.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTaskConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTaskConfig.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionsRecorderTaskConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializer.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializer.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsTaskFactory.java b/main/src/main/java/io/split/android/client/service/impressions/ImpressionsTaskFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/ImpressionsTaskFactory.java rename to main/src/main/java/io/split/android/client/service/impressions/ImpressionsTaskFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/KeyImpressionSerializer.java b/main/src/main/java/io/split/android/client/service/impressions/KeyImpressionSerializer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/KeyImpressionSerializer.java rename to main/src/main/java/io/split/android/client/service/impressions/KeyImpressionSerializer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/MemoizedSupplier.java b/main/src/main/java/io/split/android/client/service/impressions/MemoizedSupplier.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/MemoizedSupplier.java rename to main/src/main/java/io/split/android/client/service/impressions/MemoizedSupplier.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/SaveImpressionsCountTask.java b/main/src/main/java/io/split/android/client/service/impressions/SaveImpressionsCountTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/SaveImpressionsCountTask.java rename to main/src/main/java/io/split/android/client/service/impressions/SaveImpressionsCountTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/StrategyImpressionManager.java b/main/src/main/java/io/split/android/client/service/impressions/StrategyImpressionManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/StrategyImpressionManager.java rename to main/src/main/java/io/split/android/client/service/impressions/StrategyImpressionManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserver.java b/main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserver.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserver.java rename to main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserver.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCache.java b/main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCache.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCache.java rename to main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCache.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImpl.java b/main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImpl.java rename to main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverImpl.java b/main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverImpl.java rename to main/src/main/java/io/split/android/client/service/impressions/observer/ImpressionsObserverImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ListenableLruCache.java b/main/src/main/java/io/split/android/client/service/impressions/observer/ListenableLruCache.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/observer/ListenableLruCache.java rename to main/src/main/java/io/split/android/client/service/impressions/observer/ListenableLruCache.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTask.java b/main/src/main/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTask.java rename to main/src/main/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/PersistentImpressionsObserverCacheStorage.java b/main/src/main/java/io/split/android/client/service/impressions/observer/PersistentImpressionsObserverCacheStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/observer/PersistentImpressionsObserverCacheStorage.java rename to main/src/main/java/io/split/android/client/service/impressions/observer/PersistentImpressionsObserverCacheStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorage.java b/main/src/main/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorage.java rename to main/src/main/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/DebugStrategy.java b/main/src/main/java/io/split/android/client/service/impressions/strategy/DebugStrategy.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/DebugStrategy.java rename to main/src/main/java/io/split/android/client/service/impressions/strategy/DebugStrategy.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/DebugTracker.java b/main/src/main/java/io/split/android/client/service/impressions/strategy/DebugTracker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/DebugTracker.java rename to main/src/main/java/io/split/android/client/service/impressions/strategy/DebugTracker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyConfig.java b/main/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyConfig.java rename to main/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyProvider.java b/main/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyProvider.java rename to main/src/main/java/io/split/android/client/service/impressions/strategy/ImpressionStrategyProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/NoneStrategy.java b/main/src/main/java/io/split/android/client/service/impressions/strategy/NoneStrategy.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/NoneStrategy.java rename to main/src/main/java/io/split/android/client/service/impressions/strategy/NoneStrategy.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/NoneTracker.java b/main/src/main/java/io/split/android/client/service/impressions/strategy/NoneTracker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/NoneTracker.java rename to main/src/main/java/io/split/android/client/service/impressions/strategy/NoneTracker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedStrategy.java b/main/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedStrategy.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedStrategy.java rename to main/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedStrategy.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedTracker.java b/main/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedTracker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedTracker.java rename to main/src/main/java/io/split/android/client/service/impressions/strategy/OptimizedTracker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/PeriodicTracker.java b/main/src/main/java/io/split/android/client/service/impressions/strategy/PeriodicTracker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/PeriodicTracker.java rename to main/src/main/java/io/split/android/client/service/impressions/strategy/PeriodicTracker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/ProcessStrategy.java b/main/src/main/java/io/split/android/client/service/impressions/strategy/ProcessStrategy.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/ProcessStrategy.java rename to main/src/main/java/io/split/android/client/service/impressions/strategy/ProcessStrategy.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/Utils.java b/main/src/main/java/io/split/android/client/service/impressions/strategy/Utils.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/strategy/Utils.java rename to main/src/main/java/io/split/android/client/service/impressions/strategy/Utils.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/MTK.java b/main/src/main/java/io/split/android/client/service/impressions/unique/MTK.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/unique/MTK.java rename to main/src/main/java/io/split/android/client/service/impressions/unique/MTK.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializer.java b/main/src/main/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializer.java rename to main/src/main/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTask.java b/main/src/main/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTask.java rename to main/src/main/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKey.java b/main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKey.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKey.java rename to main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKey.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTask.java b/main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTask.java rename to main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskConfig.java b/main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskConfig.java rename to main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTracker.java b/main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTracker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTracker.java rename to main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTracker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImpl.java b/main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImpl.java rename to main/src/main/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/AllSegmentsResponseParser.java b/main/src/main/java/io/split/android/client/service/mysegments/AllSegmentsResponseParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/AllSegmentsResponseParser.java rename to main/src/main/java/io/split/android/client/service/mysegments/AllSegmentsResponseParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTask.java b/main/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTask.java rename to main/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfig.java b/main/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfig.java rename to main/src/main/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentUpdateParams.java b/main/src/main/java/io/split/android/client/service/mysegments/MySegmentUpdateParams.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentUpdateParams.java rename to main/src/main/java/io/split/android/client/service/mysegments/MySegmentUpdateParams.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTask.java b/main/src/main/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTask.java rename to main/src/main/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTask.java b/main/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTask.java rename to main/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfig.java b/main/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfig.java rename to main/src/main/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactory.java b/main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactory.java rename to main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfiguration.java b/main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfiguration.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfiguration.java rename to main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfiguration.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryImpl.java b/main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryImpl.java rename to main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProvider.java b/main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProvider.java rename to main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProviderImpl.java b/main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProviderImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProviderImpl.java rename to main/src/main/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryProviderImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTask.java b/main/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTask.java rename to main/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfig.java b/main/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfig.java rename to main/src/main/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/rules/LoadRuleBasedSegmentsTask.java b/main/src/main/java/io/split/android/client/service/rules/LoadRuleBasedSegmentsTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/rules/LoadRuleBasedSegmentsTask.java rename to main/src/main/java/io/split/android/client/service/rules/LoadRuleBasedSegmentsTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/rules/ProcessedRuleBasedSegmentChange.java b/main/src/main/java/io/split/android/client/service/rules/ProcessedRuleBasedSegmentChange.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/rules/ProcessedRuleBasedSegmentChange.java rename to main/src/main/java/io/split/android/client/service/rules/ProcessedRuleBasedSegmentChange.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessor.java b/main/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessor.java rename to main/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessor.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTask.java b/main/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTask.java rename to main/src/main/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/rules/TargetingRulesResponseParser.java b/main/src/main/java/io/split/android/client/service/rules/TargetingRulesResponseParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/rules/TargetingRulesResponseParser.java rename to main/src/main/java/io/split/android/client/service/rules/TargetingRulesResponseParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/FeatureFlagProcessStrategy.java b/main/src/main/java/io/split/android/client/service/splits/FeatureFlagProcessStrategy.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/FeatureFlagProcessStrategy.java rename to main/src/main/java/io/split/android/client/service/splits/FeatureFlagProcessStrategy.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/FilterSplitsInCacheTask.java b/main/src/main/java/io/split/android/client/service/splits/FilterSplitsInCacheTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/FilterSplitsInCacheTask.java rename to main/src/main/java/io/split/android/client/service/splits/FilterSplitsInCacheTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/LoadSplitsTask.java b/main/src/main/java/io/split/android/client/service/splits/LoadSplitsTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/LoadSplitsTask.java rename to main/src/main/java/io/split/android/client/service/splits/LoadSplitsTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/OutdatedSplitProxyHandler.java b/main/src/main/java/io/split/android/client/service/splits/OutdatedSplitProxyHandler.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/OutdatedSplitProxyHandler.java rename to main/src/main/java/io/split/android/client/service/splits/OutdatedSplitProxyHandler.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/RuleBasedSegmentInPlaceUpdateTask.java b/main/src/main/java/io/split/android/client/service/splits/RuleBasedSegmentInPlaceUpdateTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/RuleBasedSegmentInPlaceUpdateTask.java rename to main/src/main/java/io/split/android/client/service/splits/RuleBasedSegmentInPlaceUpdateTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/SplitChangeProcessor.java b/main/src/main/java/io/split/android/client/service/splits/SplitChangeProcessor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/SplitChangeProcessor.java rename to main/src/main/java/io/split/android/client/service/splits/SplitChangeProcessor.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/SplitChangeResponseParser.java b/main/src/main/java/io/split/android/client/service/splits/SplitChangeResponseParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/SplitChangeResponseParser.java rename to main/src/main/java/io/split/android/client/service/splits/SplitChangeResponseParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/SplitInPlaceUpdateTask.java b/main/src/main/java/io/split/android/client/service/splits/SplitInPlaceUpdateTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/SplitInPlaceUpdateTask.java rename to main/src/main/java/io/split/android/client/service/splits/SplitInPlaceUpdateTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/SplitKillTask.java b/main/src/main/java/io/split/android/client/service/splits/SplitKillTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/SplitKillTask.java rename to main/src/main/java/io/split/android/client/service/splits/SplitKillTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/SplitsSyncHelper.java b/main/src/main/java/io/split/android/client/service/splits/SplitsSyncHelper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/SplitsSyncHelper.java rename to main/src/main/java/io/split/android/client/service/splits/SplitsSyncHelper.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/SplitsSyncTask.java b/main/src/main/java/io/split/android/client/service/splits/SplitsSyncTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/SplitsSyncTask.java rename to main/src/main/java/io/split/android/client/service/splits/SplitsSyncTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/SplitsUpdateTask.java b/main/src/main/java/io/split/android/client/service/splits/SplitsUpdateTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/SplitsUpdateTask.java rename to main/src/main/java/io/split/android/client/service/splits/SplitsUpdateTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/splits/TargetingRulesCache.java b/main/src/main/java/io/split/android/client/service/splits/TargetingRulesCache.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/splits/TargetingRulesCache.java rename to main/src/main/java/io/split/android/client/service/splits/TargetingRulesCache.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseauthentication/SseAuthenticationResponseParser.java b/main/src/main/java/io/split/android/client/service/sseauthentication/SseAuthenticationResponseParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseauthentication/SseAuthenticationResponseParser.java rename to main/src/main/java/io/split/android/client/service/sseauthentication/SseAuthenticationResponseParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/BackoffCounter.java b/main/src/main/java/io/split/android/client/service/sseclient/BackoffCounter.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/BackoffCounter.java rename to main/src/main/java/io/split/android/client/service/sseclient/BackoffCounter.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/EventStreamParser.java b/main/src/main/java/io/split/android/client/service/sseclient/EventStreamParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/EventStreamParser.java rename to main/src/main/java/io/split/android/client/service/sseclient/EventStreamParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/FixedIntervalBackoffCounter.java b/main/src/main/java/io/split/android/client/service/sseclient/FixedIntervalBackoffCounter.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/FixedIntervalBackoffCounter.java rename to main/src/main/java/io/split/android/client/service/sseclient/FixedIntervalBackoffCounter.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/InvalidJwtTokenException.java b/main/src/main/java/io/split/android/client/service/sseclient/InvalidJwtTokenException.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/InvalidJwtTokenException.java rename to main/src/main/java/io/split/android/client/service/sseclient/InvalidJwtTokenException.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/ReconnectBackoffCounter.java b/main/src/main/java/io/split/android/client/service/sseclient/ReconnectBackoffCounter.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/ReconnectBackoffCounter.java rename to main/src/main/java/io/split/android/client/service/sseclient/ReconnectBackoffCounter.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/SseAuthToken.java b/main/src/main/java/io/split/android/client/service/sseclient/SseAuthToken.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/SseAuthToken.java rename to main/src/main/java/io/split/android/client/service/sseclient/SseAuthToken.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/SseAuthenticationResponse.java b/main/src/main/java/io/split/android/client/service/sseclient/SseAuthenticationResponse.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/SseAuthenticationResponse.java rename to main/src/main/java/io/split/android/client/service/sseclient/SseAuthenticationResponse.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/SseJwtParser.java b/main/src/main/java/io/split/android/client/service/sseclient/SseJwtParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/SseJwtParser.java rename to main/src/main/java/io/split/android/client/service/sseclient/SseJwtParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/SseJwtToken.java b/main/src/main/java/io/split/android/client/service/sseclient/SseJwtToken.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/SseJwtToken.java rename to main/src/main/java/io/split/android/client/service/sseclient/SseJwtToken.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/BroadcastedEventListener.java b/main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/BroadcastedEventListener.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/BroadcastedEventListener.java rename to main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/BroadcastedEventListener.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/DelayStatusEvent.java b/main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/DelayStatusEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/DelayStatusEvent.java rename to main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/DelayStatusEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushManagerEventBroadcaster.java b/main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushManagerEventBroadcaster.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushManagerEventBroadcaster.java rename to main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushManagerEventBroadcaster.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushStatusEvent.java b/main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushStatusEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushStatusEvent.java rename to main/src/main/java/io/split/android/client/service/sseclient/feedbackchannel/PushStatusEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/ControlNotification.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/ControlNotification.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/ControlNotification.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/ControlNotification.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/HashingAlgorithm.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/HashingAlgorithm.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/HashingAlgorithm.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/HashingAlgorithm.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotification.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotification.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotification.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotification.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotificationType.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotificationType.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotificationType.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/IncomingNotificationType.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/InstantUpdateChangeNotification.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/InstantUpdateChangeNotification.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/InstantUpdateChangeNotification.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/InstantUpdateChangeNotification.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/KeyList.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/KeyList.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/KeyList.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/KeyList.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/MembershipNotification.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/MembershipNotification.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/MembershipNotification.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/MembershipNotification.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentUpdateStrategy.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentUpdateStrategy.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentUpdateStrategy.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentUpdateStrategy.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentsV2PayloadDecoder.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentsV2PayloadDecoder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentsV2PayloadDecoder.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/MySegmentsV2PayloadDecoder.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationParser.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationParser.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationProcessor.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationProcessor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationProcessor.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationProcessor.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationType.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationType.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationType.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/NotificationType.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/OccupancyNotification.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/OccupancyNotification.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/OccupancyNotification.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/OccupancyNotification.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/RawNotification.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/RawNotification.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/RawNotification.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/RawNotification.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/RuleBasedSegmentChangeNotification.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/RuleBasedSegmentChangeNotification.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/RuleBasedSegmentChangeNotification.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/RuleBasedSegmentChangeNotification.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/SplitKillNotification.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/SplitKillNotification.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/SplitKillNotification.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/SplitKillNotification.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/SplitsChangeNotification.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/SplitsChangeNotification.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/SplitsChangeNotification.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/SplitsChangeNotification.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/StreamingError.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/StreamingError.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/StreamingError.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/StreamingError.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessor.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessor.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessor.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessorImpl.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessorImpl.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/memberships/MembershipsNotificationProcessorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactory.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactory.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactoryImpl.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactoryImpl.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MembershipsNotificationProcessorFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorConfiguration.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorConfiguration.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorConfiguration.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorConfiguration.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorRegistry.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorRegistry.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorRegistry.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorRegistry.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculator.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculator.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculator.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorImpl.java b/main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorImpl.java rename to main/src/main/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorker.java b/main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorker.java rename to main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistry.java b/main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistry.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistry.java rename to main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistry.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImpl.java b/main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImpl.java rename to main/src/main/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/SplitUpdatesWorker.java b/main/src/main/java/io/split/android/client/service/sseclient/reactor/SplitUpdatesWorker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/SplitUpdatesWorker.java rename to main/src/main/java/io/split/android/client/service/sseclient/reactor/SplitUpdatesWorker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/UpdateWorker.java b/main/src/main/java/io/split/android/client/service/sseclient/reactor/UpdateWorker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/reactor/UpdateWorker.java rename to main/src/main/java/io/split/android/client/service/sseclient/reactor/UpdateWorker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/BackoffCounterTimer.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/BackoffCounterTimer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/BackoffCounterTimer.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/BackoffCounterTimer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/NotificationManagerKeeper.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/NotificationManagerKeeper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/NotificationManagerKeeper.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/NotificationManagerKeeper.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManager.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManager.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTask.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTask.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimer.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimer.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticationResult.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticationResult.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticationResult.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticationResult.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticator.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticator.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseAuthenticator.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClient.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClient.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClient.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClient.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClientImpl.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClientImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClientImpl.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseClientImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimer.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimer.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseHandler.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseHandler.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseHandler.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseHandler.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseRefreshTokenTimer.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseRefreshTokenTimer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseRefreshTokenTimer.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/SseRefreshTokenTimer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/StreamingComponents.java b/main/src/main/java/io/split/android/client/service/sseclient/sseclient/StreamingComponents.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/sseclient/sseclient/StreamingComponents.java rename to main/src/main/java/io/split/android/client/service/sseclient/sseclient/StreamingComponents.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizer.java b/main/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizer.java rename to main/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImpl.java b/main/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImpl.java rename to main/src/main/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/LoadLocalDataListener.java b/main/src/main/java/io/split/android/client/service/synchronizer/LoadLocalDataListener.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/LoadLocalDataListener.java rename to main/src/main/java/io/split/android/client/service/synchronizer/LoadLocalDataListener.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/MySegmentsChangeChecker.java b/main/src/main/java/io/split/android/client/service/synchronizer/MySegmentsChangeChecker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/MySegmentsChangeChecker.java rename to main/src/main/java/io/split/android/client/service/synchronizer/MySegmentsChangeChecker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelper.java b/main/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelper.java rename to main/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelper.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImpl.java b/main/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImpl.java rename to main/src/main/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManager.java b/main/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManager.java rename to main/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManagerImpl.java b/main/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManagerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManagerImpl.java rename to main/src/main/java/io/split/android/client/service/synchronizer/RolloutCacheManagerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SplitsChangeChecker.java b/main/src/main/java/io/split/android/client/service/synchronizer/SplitsChangeChecker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/SplitsChangeChecker.java rename to main/src/main/java/io/split/android/client/service/synchronizer/SplitsChangeChecker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncGuardian.java b/main/src/main/java/io/split/android/client/service/synchronizer/SyncGuardian.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncGuardian.java rename to main/src/main/java/io/split/android/client/service/synchronizer/SyncGuardian.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncGuardianImpl.java b/main/src/main/java/io/split/android/client/service/synchronizer/SyncGuardianImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncGuardianImpl.java rename to main/src/main/java/io/split/android/client/service/synchronizer/SyncGuardianImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncManager.java b/main/src/main/java/io/split/android/client/service/synchronizer/SyncManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncManager.java rename to main/src/main/java/io/split/android/client/service/synchronizer/SyncManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncManagerImpl.java b/main/src/main/java/io/split/android/client/service/synchronizer/SyncManagerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/SyncManagerImpl.java rename to main/src/main/java/io/split/android/client/service/synchronizer/SyncManagerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/Synchronizer.java b/main/src/main/java/io/split/android/client/service/synchronizer/Synchronizer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/Synchronizer.java rename to main/src/main/java/io/split/android/client/service/synchronizer/Synchronizer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SynchronizerImpl.java b/main/src/main/java/io/split/android/client/service/synchronizer/SynchronizerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/SynchronizerImpl.java rename to main/src/main/java/io/split/android/client/service/synchronizer/SynchronizerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/SynchronizerSpy.java b/main/src/main/java/io/split/android/client/service/synchronizer/SynchronizerSpy.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/SynchronizerSpy.java rename to main/src/main/java/io/split/android/client/service/synchronizer/SynchronizerSpy.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/ThreadUtils.java b/main/src/main/java/io/split/android/client/service/synchronizer/ThreadUtils.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/ThreadUtils.java rename to main/src/main/java/io/split/android/client/service/synchronizer/ThreadUtils.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java b/main/src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java rename to main/src/main/java/io/split/android/client/service/synchronizer/WorkManagerWrapper.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizer.java b/main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizer.java rename to main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactory.java b/main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactory.java rename to main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactoryImpl.java b/main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactoryImpl.java rename to main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImpl.java b/main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImpl.java rename to main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistry.java b/main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistry.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistry.java rename to main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistry.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImpl.java b/main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImpl.java rename to main/src/main/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsBackgroundSyncScheduleTask.java b/main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsBackgroundSyncScheduleTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsBackgroundSyncScheduleTask.java rename to main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsBackgroundSyncScheduleTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizer.java b/main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizer.java rename to main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizer.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactory.java b/main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactory.java rename to main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactoryImpl.java b/main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactoryImpl.java rename to main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImpl.java b/main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImpl.java rename to main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistry.java b/main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistry.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistry.java rename to main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistry.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImpl.java b/main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImpl.java rename to main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsWorkManagerWrapper.java b/main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsWorkManagerWrapper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsWorkManagerWrapper.java rename to main/src/main/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsWorkManagerWrapper.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTask.java b/main/src/main/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTask.java rename to main/src/main/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTask.java b/main/src/main/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTask.java rename to main/src/main/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactory.java b/main/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactory.java rename to main/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactoryImpl.java b/main/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactoryImpl.java rename to main/src/main/java/io/split/android/client/service/telemetry/TelemetryTaskFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/BaseSegmentsSyncWorker.java b/main/src/main/java/io/split/android/client/service/workmanager/BaseSegmentsSyncWorker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/BaseSegmentsSyncWorker.java rename to main/src/main/java/io/split/android/client/service/workmanager/BaseSegmentsSyncWorker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/EventsRecorderWorker.java b/main/src/main/java/io/split/android/client/service/workmanager/EventsRecorderWorker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/EventsRecorderWorker.java rename to main/src/main/java/io/split/android/client/service/workmanager/EventsRecorderWorker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java b/main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java rename to main/src/main/java/io/split/android/client/service/workmanager/HttpClientProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/ImpressionsRecorderWorker.java b/main/src/main/java/io/split/android/client/service/workmanager/ImpressionsRecorderWorker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/ImpressionsRecorderWorker.java rename to main/src/main/java/io/split/android/client/service/workmanager/ImpressionsRecorderWorker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/MySegmentsSyncWorker.java b/main/src/main/java/io/split/android/client/service/workmanager/MySegmentsSyncWorker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/MySegmentsSyncWorker.java rename to main/src/main/java/io/split/android/client/service/workmanager/MySegmentsSyncWorker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/SplitWorker.java b/main/src/main/java/io/split/android/client/service/workmanager/SplitWorker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/SplitWorker.java rename to main/src/main/java/io/split/android/client/service/workmanager/SplitWorker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/UniqueKeysRecorderWorker.java b/main/src/main/java/io/split/android/client/service/workmanager/UniqueKeysRecorderWorker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/UniqueKeysRecorderWorker.java rename to main/src/main/java/io/split/android/client/service/workmanager/UniqueKeysRecorderWorker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/FetcherProvider.java b/main/src/main/java/io/split/android/client/service/workmanager/splits/FetcherProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/FetcherProvider.java rename to main/src/main/java/io/split/android/client/service/workmanager/splits/FetcherProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitChangeProcessorProvider.java b/main/src/main/java/io/split/android/client/service/workmanager/splits/SplitChangeProcessorProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitChangeProcessorProvider.java rename to main/src/main/java/io/split/android/client/service/workmanager/splits/SplitChangeProcessorProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorker.java b/main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorker.java rename to main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorker.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilder.java b/main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilder.java rename to main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilder.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParams.java b/main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParams.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParams.java rename to main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParams.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilder.java b/main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilder.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilder.java rename to main/src/main/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilder.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/StorageProvider.java b/main/src/main/java/io/split/android/client/service/workmanager/splits/StorageProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/StorageProvider.java rename to main/src/main/java/io/split/android/client/service/workmanager/splits/StorageProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SyncHelperProvider.java b/main/src/main/java/io/split/android/client/service/workmanager/splits/SyncHelperProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/service/workmanager/splits/SyncHelperProvider.java rename to main/src/main/java/io/split/android/client/service/workmanager/splits/SyncHelperProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/shared/BaseSplitClientContainer.java b/main/src/main/java/io/split/android/client/shared/BaseSplitClientContainer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/shared/BaseSplitClientContainer.java rename to main/src/main/java/io/split/android/client/shared/BaseSplitClientContainer.java diff --git a/android-client-main/src/main/java/io/split/android/client/shared/ClientComponentsRegister.java b/main/src/main/java/io/split/android/client/shared/ClientComponentsRegister.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/shared/ClientComponentsRegister.java rename to main/src/main/java/io/split/android/client/shared/ClientComponentsRegister.java diff --git a/android-client-main/src/main/java/io/split/android/client/shared/ClientComponentsRegisterImpl.java b/main/src/main/java/io/split/android/client/shared/ClientComponentsRegisterImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/shared/ClientComponentsRegisterImpl.java rename to main/src/main/java/io/split/android/client/shared/ClientComponentsRegisterImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/shared/SplitClientContainer.java b/main/src/main/java/io/split/android/client/shared/SplitClientContainer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/shared/SplitClientContainer.java rename to main/src/main/java/io/split/android/client/shared/SplitClientContainer.java diff --git a/android-client-main/src/main/java/io/split/android/client/shared/SplitClientContainerImpl.java b/main/src/main/java/io/split/android/client/shared/SplitClientContainerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/shared/SplitClientContainerImpl.java rename to main/src/main/java/io/split/android/client/shared/SplitClientContainerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/shared/UserConsent.java b/main/src/main/java/io/split/android/client/shared/UserConsent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/shared/UserConsent.java rename to main/src/main/java/io/split/android/client/shared/UserConsent.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/RolloutDefinitionsCache.java b/main/src/main/java/io/split/android/client/storage/RolloutDefinitionsCache.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/RolloutDefinitionsCache.java rename to main/src/main/java/io/split/android/client/storage/RolloutDefinitionsCache.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorage.java b/main/src/main/java/io/split/android/client/storage/attributes/AttributesStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorage.java rename to main/src/main/java/io/split/android/client/storage/attributes/AttributesStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainer.java b/main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainer.java rename to main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainer.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainerImpl.java b/main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainerImpl.java rename to main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageContainerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageImpl.java b/main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageImpl.java rename to main/src/main/java/io/split/android/client/storage/attributes/AttributesStorageImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/attributes/PersistentAttributesStorage.java b/main/src/main/java/io/split/android/client/storage/attributes/PersistentAttributesStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/attributes/PersistentAttributesStorage.java rename to main/src/main/java/io/split/android/client/storage/attributes/PersistentAttributesStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorage.java b/main/src/main/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorage.java rename to main/src/main/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/ApplyCipherTask.java b/main/src/main/java/io/split/android/client/storage/cipher/ApplyCipherTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/ApplyCipherTask.java rename to main/src/main/java/io/split/android/client/storage/cipher/ApplyCipherTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/CBCCipher.java b/main/src/main/java/io/split/android/client/storage/cipher/CBCCipher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/CBCCipher.java rename to main/src/main/java/io/split/android/client/storage/cipher/CBCCipher.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/CBCCipherProvider.java b/main/src/main/java/io/split/android/client/storage/cipher/CBCCipherProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/CBCCipherProvider.java rename to main/src/main/java/io/split/android/client/storage/cipher/CBCCipherProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/CipherProvider.java b/main/src/main/java/io/split/android/client/storage/cipher/CipherProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/CipherProvider.java rename to main/src/main/java/io/split/android/client/storage/cipher/CipherProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/DBCipher.java b/main/src/main/java/io/split/android/client/storage/cipher/DBCipher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/DBCipher.java rename to main/src/main/java/io/split/android/client/storage/cipher/DBCipher.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/EncryptionMigrationTask.java b/main/src/main/java/io/split/android/client/storage/cipher/EncryptionMigrationTask.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/EncryptionMigrationTask.java rename to main/src/main/java/io/split/android/client/storage/cipher/EncryptionMigrationTask.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/KeyManager.java b/main/src/main/java/io/split/android/client/storage/cipher/KeyManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/KeyManager.java rename to main/src/main/java/io/split/android/client/storage/cipher/KeyManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/NoOpCipher.java b/main/src/main/java/io/split/android/client/storage/cipher/NoOpCipher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/NoOpCipher.java rename to main/src/main/java/io/split/android/client/storage/cipher/NoOpCipher.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/ObjectPool.java b/main/src/main/java/io/split/android/client/storage/cipher/ObjectPool.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/ObjectPool.java rename to main/src/main/java/io/split/android/client/storage/cipher/ObjectPool.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/ObjectPoolFactory.java b/main/src/main/java/io/split/android/client/storage/cipher/ObjectPoolFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/ObjectPoolFactory.java rename to main/src/main/java/io/split/android/client/storage/cipher/ObjectPoolFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/SplitCipher.java b/main/src/main/java/io/split/android/client/storage/cipher/SplitCipher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/SplitCipher.java rename to main/src/main/java/io/split/android/client/storage/cipher/SplitCipher.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/SplitCipherFactory.java b/main/src/main/java/io/split/android/client/storage/cipher/SplitCipherFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/SplitCipherFactory.java rename to main/src/main/java/io/split/android/client/storage/cipher/SplitCipherFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/SplitEncryptionLevel.java b/main/src/main/java/io/split/android/client/storage/cipher/SplitEncryptionLevel.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/SplitEncryptionLevel.java rename to main/src/main/java/io/split/android/client/storage/cipher/SplitEncryptionLevel.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/provider/KeyProvider.java b/main/src/main/java/io/split/android/client/storage/cipher/provider/KeyProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/provider/KeyProvider.java rename to main/src/main/java/io/split/android/client/storage/cipher/provider/KeyProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/provider/LegacyKeyProvider.java b/main/src/main/java/io/split/android/client/storage/cipher/provider/LegacyKeyProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/provider/LegacyKeyProvider.java rename to main/src/main/java/io/split/android/client/storage/cipher/provider/LegacyKeyProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/cipher/provider/SecureKeyStorageProvider.java b/main/src/main/java/io/split/android/client/storage/cipher/provider/SecureKeyStorageProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/cipher/provider/SecureKeyStorageProvider.java rename to main/src/main/java/io/split/android/client/storage/cipher/provider/SecureKeyStorageProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/common/InBytesSizable.java b/main/src/main/java/io/split/android/client/storage/common/InBytesSizable.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/common/InBytesSizable.java rename to main/src/main/java/io/split/android/client/storage/common/InBytesSizable.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/common/PersistentStorage.java b/main/src/main/java/io/split/android/client/storage/common/PersistentStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/common/PersistentStorage.java rename to main/src/main/java/io/split/android/client/storage/common/PersistentStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/common/RuleBasedSegmentStorageInitializer.java b/main/src/main/java/io/split/android/client/storage/common/RuleBasedSegmentStorageInitializer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/common/RuleBasedSegmentStorageInitializer.java rename to main/src/main/java/io/split/android/client/storage/common/RuleBasedSegmentStorageInitializer.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/common/SplitStorageContainer.java b/main/src/main/java/io/split/android/client/storage/common/SplitStorageContainer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/common/SplitStorageContainer.java rename to main/src/main/java/io/split/android/client/storage/common/SplitStorageContainer.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/common/SqLitePersistentStorage.java b/main/src/main/java/io/split/android/client/storage/common/SqLitePersistentStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/common/SqLitePersistentStorage.java rename to main/src/main/java/io/split/android/client/storage/common/SqLitePersistentStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/common/Storage.java b/main/src/main/java/io/split/android/client/storage/common/Storage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/common/Storage.java rename to main/src/main/java/io/split/android/client/storage/common/Storage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/common/StoragePusher.java b/main/src/main/java/io/split/android/client/storage/common/StoragePusher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/common/StoragePusher.java rename to main/src/main/java/io/split/android/client/storage/common/StoragePusher.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/EventDao.java b/main/src/main/java/io/split/android/client/storage/db/EventDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/EventDao.java rename to main/src/main/java/io/split/android/client/storage/db/EventDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/EventEntity.java b/main/src/main/java/io/split/android/client/storage/db/EventEntity.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/EventEntity.java rename to main/src/main/java/io/split/android/client/storage/db/EventEntity.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/GeneralInfoDao.java b/main/src/main/java/io/split/android/client/storage/db/GeneralInfoDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/GeneralInfoDao.java rename to main/src/main/java/io/split/android/client/storage/db/GeneralInfoDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/GeneralInfoEntity.java b/main/src/main/java/io/split/android/client/storage/db/GeneralInfoEntity.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/GeneralInfoEntity.java rename to main/src/main/java/io/split/android/client/storage/db/GeneralInfoEntity.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionDao.java b/main/src/main/java/io/split/android/client/storage/db/ImpressionDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionDao.java rename to main/src/main/java/io/split/android/client/storage/db/ImpressionDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionEntity.java b/main/src/main/java/io/split/android/client/storage/db/ImpressionEntity.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionEntity.java rename to main/src/main/java/io/split/android/client/storage/db/ImpressionEntity.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionsCountDao.java b/main/src/main/java/io/split/android/client/storage/db/ImpressionsCountDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionsCountDao.java rename to main/src/main/java/io/split/android/client/storage/db/ImpressionsCountDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionsCountEntity.java b/main/src/main/java/io/split/android/client/storage/db/ImpressionsCountEntity.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/ImpressionsCountEntity.java rename to main/src/main/java/io/split/android/client/storage/db/ImpressionsCountEntity.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/MyLargeSegmentDao.java b/main/src/main/java/io/split/android/client/storage/db/MyLargeSegmentDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/MyLargeSegmentDao.java rename to main/src/main/java/io/split/android/client/storage/db/MyLargeSegmentDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/MyLargeSegmentEntity.java b/main/src/main/java/io/split/android/client/storage/db/MyLargeSegmentEntity.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/MyLargeSegmentEntity.java rename to main/src/main/java/io/split/android/client/storage/db/MyLargeSegmentEntity.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/MySegmentDao.java b/main/src/main/java/io/split/android/client/storage/db/MySegmentDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/MySegmentDao.java rename to main/src/main/java/io/split/android/client/storage/db/MySegmentDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/MySegmentEntity.java b/main/src/main/java/io/split/android/client/storage/db/MySegmentEntity.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/MySegmentEntity.java rename to main/src/main/java/io/split/android/client/storage/db/MySegmentEntity.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/SegmentDao.java b/main/src/main/java/io/split/android/client/storage/db/SegmentDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/SegmentDao.java rename to main/src/main/java/io/split/android/client/storage/db/SegmentDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/SegmentEntity.java b/main/src/main/java/io/split/android/client/storage/db/SegmentEntity.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/SegmentEntity.java rename to main/src/main/java/io/split/android/client/storage/db/SegmentEntity.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/SplitDao.java b/main/src/main/java/io/split/android/client/storage/db/SplitDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/SplitDao.java rename to main/src/main/java/io/split/android/client/storage/db/SplitDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/SplitEntity.java b/main/src/main/java/io/split/android/client/storage/db/SplitEntity.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/SplitEntity.java rename to main/src/main/java/io/split/android/client/storage/db/SplitEntity.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/SplitQueryDao.java b/main/src/main/java/io/split/android/client/storage/db/SplitQueryDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/SplitQueryDao.java rename to main/src/main/java/io/split/android/client/storage/db/SplitQueryDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/SplitQueryDaoImpl.java b/main/src/main/java/io/split/android/client/storage/db/SplitQueryDaoImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/SplitQueryDaoImpl.java rename to main/src/main/java/io/split/android/client/storage/db/SplitQueryDaoImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/SplitRoomDatabase.java b/main/src/main/java/io/split/android/client/storage/db/SplitRoomDatabase.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/SplitRoomDatabase.java rename to main/src/main/java/io/split/android/client/storage/db/SplitRoomDatabase.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/StorageFactory.java b/main/src/main/java/io/split/android/client/storage/db/StorageFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/StorageFactory.java rename to main/src/main/java/io/split/android/client/storage/db/StorageFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/StorageRecordStatus.java b/main/src/main/java/io/split/android/client/storage/db/StorageRecordStatus.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/StorageRecordStatus.java rename to main/src/main/java/io/split/android/client/storage/db/StorageRecordStatus.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/attributes/AttributesDao.java b/main/src/main/java/io/split/android/client/storage/db/attributes/AttributesDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/attributes/AttributesDao.java rename to main/src/main/java/io/split/android/client/storage/db/attributes/AttributesDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/attributes/AttributesEntity.java b/main/src/main/java/io/split/android/client/storage/db/attributes/AttributesEntity.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/attributes/AttributesEntity.java rename to main/src/main/java/io/split/android/client/storage/db/attributes/AttributesEntity.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheDao.java b/main/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheDao.java rename to main/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheEntity.java b/main/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheEntity.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheEntity.java rename to main/src/main/java/io/split/android/client/storage/db/impressions/observer/ImpressionsObserverCacheEntity.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeyEntity.java b/main/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeyEntity.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeyEntity.java rename to main/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeyEntity.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeysDao.java b/main/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeysDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeysDao.java rename to main/src/main/java/io/split/android/client/storage/db/impressions/unique/UniqueKeysDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentDao.java b/main/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentDao.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentDao.java rename to main/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentDao.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentEntity.java b/main/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentEntity.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentEntity.java rename to main/src/main/java/io/split/android/client/storage/db/rbs/RuleBasedSegmentEntity.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/events/EventsStorage.java b/main/src/main/java/io/split/android/client/storage/events/EventsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/events/EventsStorage.java rename to main/src/main/java/io/split/android/client/storage/events/EventsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/events/PersistentEventsStorage.java b/main/src/main/java/io/split/android/client/storage/events/PersistentEventsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/events/PersistentEventsStorage.java rename to main/src/main/java/io/split/android/client/storage/events/PersistentEventsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/events/SqLitePersistentEventsStorage.java b/main/src/main/java/io/split/android/client/storage/events/SqLitePersistentEventsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/events/SqLitePersistentEventsStorage.java rename to main/src/main/java/io/split/android/client/storage/events/SqLitePersistentEventsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/general/GeneralInfoStorage.java b/main/src/main/java/io/split/android/client/storage/general/GeneralInfoStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/general/GeneralInfoStorage.java rename to main/src/main/java/io/split/android/client/storage/general/GeneralInfoStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/general/GeneralInfoStorageImpl.java b/main/src/main/java/io/split/android/client/storage/general/GeneralInfoStorageImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/general/GeneralInfoStorageImpl.java rename to main/src/main/java/io/split/android/client/storage/general/GeneralInfoStorageImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/impressions/ImpressionsStorage.java b/main/src/main/java/io/split/android/client/storage/impressions/ImpressionsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/impressions/ImpressionsStorage.java rename to main/src/main/java/io/split/android/client/storage/impressions/ImpressionsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsCountStorage.java b/main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsCountStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsCountStorage.java rename to main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsCountStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsStorage.java b/main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsStorage.java rename to main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsUniqueStorage.java b/main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsUniqueStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsUniqueStorage.java rename to main/src/main/java/io/split/android/client/storage/impressions/PersistentImpressionsUniqueStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsCountStorage.java b/main/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsCountStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsCountStorage.java rename to main/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsCountStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsStorage.java b/main/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsStorage.java rename to main/src/main/java/io/split/android/client/storage/impressions/SqLitePersistentImpressionsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorage.java b/main/src/main/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorage.java rename to main/src/main/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/legacy/FileStorage.java b/main/src/main/java/io/split/android/client/storage/legacy/FileStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/legacy/FileStorage.java rename to main/src/main/java/io/split/android/client/storage/legacy/FileStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/legacy/FileStorageHelper.java b/main/src/main/java/io/split/android/client/storage/legacy/FileStorageHelper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/legacy/FileStorageHelper.java rename to main/src/main/java/io/split/android/client/storage/legacy/FileStorageHelper.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/legacy/IStorage.java b/main/src/main/java/io/split/android/client/storage/legacy/IStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/legacy/IStorage.java rename to main/src/main/java/io/split/android/client/storage/legacy/IStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/mysegments/EmptyMySegmentsStorage.java b/main/src/main/java/io/split/android/client/storage/mysegments/EmptyMySegmentsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/mysegments/EmptyMySegmentsStorage.java rename to main/src/main/java/io/split/android/client/storage/mysegments/EmptyMySegmentsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorage.java b/main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorage.java rename to main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainer.java b/main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainer.java rename to main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainer.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImpl.java b/main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImpl.java rename to main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageImpl.java b/main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageImpl.java rename to main/src/main/java/io/split/android/client/storage/mysegments/MySegmentsStorageImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/mysegments/PersistentMySegmentsStorage.java b/main/src/main/java/io/split/android/client/storage/mysegments/PersistentMySegmentsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/mysegments/PersistentMySegmentsStorage.java rename to main/src/main/java/io/split/android/client/storage/mysegments/PersistentMySegmentsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorage.java b/main/src/main/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorage.java rename to main/src/main/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/Clearer.java b/main/src/main/java/io/split/android/client/storage/rbs/Clearer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/Clearer.java rename to main/src/main/java/io/split/android/client/storage/rbs/Clearer.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProvider.java b/main/src/main/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProvider.java rename to main/src/main/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/PersistentRuleBasedSegmentStorage.java b/main/src/main/java/io/split/android/client/storage/rbs/PersistentRuleBasedSegmentStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/PersistentRuleBasedSegmentStorage.java rename to main/src/main/java/io/split/android/client/storage/rbs/PersistentRuleBasedSegmentStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentSnapshot.java b/main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentSnapshot.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentSnapshot.java rename to main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentSnapshot.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorage.java b/main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorage.java rename to main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageConsumer.java b/main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageConsumer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageConsumer.java rename to main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageConsumer.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImpl.java b/main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImpl.java rename to main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducer.java b/main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducer.java rename to main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducer.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImpl.java b/main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImpl.java rename to main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProvider.java b/main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProvider.java rename to main/src/main/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/SnapshotLoader.java b/main/src/main/java/io/split/android/client/storage/rbs/SnapshotLoader.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/SnapshotLoader.java rename to main/src/main/java/io/split/android/client/storage/rbs/SnapshotLoader.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorage.java b/main/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorage.java rename to main/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageProvider.java b/main/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageProvider.java rename to main/src/main/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/rbs/Updater.java b/main/src/main/java/io/split/android/client/storage/rbs/Updater.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/rbs/Updater.java rename to main/src/main/java/io/split/android/client/storage/rbs/Updater.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/splits/MetadataHelper.java b/main/src/main/java/io/split/android/client/storage/splits/MetadataHelper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/splits/MetadataHelper.java rename to main/src/main/java/io/split/android/client/storage/splits/MetadataHelper.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/splits/PersistentSplitsStorage.java b/main/src/main/java/io/split/android/client/storage/splits/PersistentSplitsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/splits/PersistentSplitsStorage.java rename to main/src/main/java/io/split/android/client/storage/splits/PersistentSplitsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/splits/ProcessedSplitChange.java b/main/src/main/java/io/split/android/client/storage/splits/ProcessedSplitChange.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/splits/ProcessedSplitChange.java rename to main/src/main/java/io/split/android/client/storage/splits/ProcessedSplitChange.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformer.java b/main/src/main/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformer.java rename to main/src/main/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformer.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/splits/SplitListTransformer.java b/main/src/main/java/io/split/android/client/storage/splits/SplitListTransformer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/splits/SplitListTransformer.java rename to main/src/main/java/io/split/android/client/storage/splits/SplitListTransformer.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformer.java b/main/src/main/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformer.java rename to main/src/main/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformer.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/splits/SplitsSnapshot.java b/main/src/main/java/io/split/android/client/storage/splits/SplitsSnapshot.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/splits/SplitsSnapshot.java rename to main/src/main/java/io/split/android/client/storage/splits/SplitsSnapshot.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/splits/SplitsStorage.java b/main/src/main/java/io/split/android/client/storage/splits/SplitsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/splits/SplitsStorage.java rename to main/src/main/java/io/split/android/client/storage/splits/SplitsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/splits/SplitsStorageImpl.java b/main/src/main/java/io/split/android/client/storage/splits/SplitsStorageImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/splits/SplitsStorageImpl.java rename to main/src/main/java/io/split/android/client/storage/splits/SplitsStorageImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorage.java b/main/src/main/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorage.java rename to main/src/main/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryConfigBodySerializer.java b/main/src/main/java/io/split/android/client/telemetry/TelemetryConfigBodySerializer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryConfigBodySerializer.java rename to main/src/main/java/io/split/android/client/telemetry/TelemetryConfigBodySerializer.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryHelper.java b/main/src/main/java/io/split/android/client/telemetry/TelemetryHelper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryHelper.java rename to main/src/main/java/io/split/android/client/telemetry/TelemetryHelper.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryHelperImpl.java b/main/src/main/java/io/split/android/client/telemetry/TelemetryHelperImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryHelperImpl.java rename to main/src/main/java/io/split/android/client/telemetry/TelemetryHelperImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryStatsBodySerializer.java b/main/src/main/java/io/split/android/client/telemetry/TelemetryStatsBodySerializer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/TelemetryStatsBodySerializer.java rename to main/src/main/java/io/split/android/client/telemetry/TelemetryStatsBodySerializer.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizer.java b/main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizer.java rename to main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizer.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerImpl.java b/main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerImpl.java rename to main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerStub.java b/main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerStub.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerStub.java rename to main/src/main/java/io/split/android/client/telemetry/TelemetrySynchronizerStub.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/Config.java b/main/src/main/java/io/split/android/client/telemetry/model/Config.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/Config.java rename to main/src/main/java/io/split/android/client/telemetry/model/Config.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/EventTypeEnum.java b/main/src/main/java/io/split/android/client/telemetry/model/EventTypeEnum.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/EventTypeEnum.java rename to main/src/main/java/io/split/android/client/telemetry/model/EventTypeEnum.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/EventsDataRecordsEnum.java b/main/src/main/java/io/split/android/client/telemetry/model/EventsDataRecordsEnum.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/EventsDataRecordsEnum.java rename to main/src/main/java/io/split/android/client/telemetry/model/EventsDataRecordsEnum.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/FactoryCounter.java b/main/src/main/java/io/split/android/client/telemetry/model/FactoryCounter.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/FactoryCounter.java rename to main/src/main/java/io/split/android/client/telemetry/model/FactoryCounter.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/HttpErrors.java b/main/src/main/java/io/split/android/client/telemetry/model/HttpErrors.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/HttpErrors.java rename to main/src/main/java/io/split/android/client/telemetry/model/HttpErrors.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/HttpLatencies.java b/main/src/main/java/io/split/android/client/telemetry/model/HttpLatencies.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/HttpLatencies.java rename to main/src/main/java/io/split/android/client/telemetry/model/HttpLatencies.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/ImpressionsDataType.java b/main/src/main/java/io/split/android/client/telemetry/model/ImpressionsDataType.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/ImpressionsDataType.java rename to main/src/main/java/io/split/android/client/telemetry/model/ImpressionsDataType.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/ImpressionsMode.java b/main/src/main/java/io/split/android/client/telemetry/model/ImpressionsMode.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/ImpressionsMode.java rename to main/src/main/java/io/split/android/client/telemetry/model/ImpressionsMode.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/LastSync.java b/main/src/main/java/io/split/android/client/telemetry/model/LastSync.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/LastSync.java rename to main/src/main/java/io/split/android/client/telemetry/model/LastSync.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/Method.java b/main/src/main/java/io/split/android/client/telemetry/model/Method.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/Method.java rename to main/src/main/java/io/split/android/client/telemetry/model/Method.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/MethodExceptions.java b/main/src/main/java/io/split/android/client/telemetry/model/MethodExceptions.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/MethodExceptions.java rename to main/src/main/java/io/split/android/client/telemetry/model/MethodExceptions.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/MethodLatencies.java b/main/src/main/java/io/split/android/client/telemetry/model/MethodLatencies.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/MethodLatencies.java rename to main/src/main/java/io/split/android/client/telemetry/model/MethodLatencies.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/OperationMode.java b/main/src/main/java/io/split/android/client/telemetry/model/OperationMode.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/OperationMode.java rename to main/src/main/java/io/split/android/client/telemetry/model/OperationMode.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/OperationType.java b/main/src/main/java/io/split/android/client/telemetry/model/OperationType.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/OperationType.java rename to main/src/main/java/io/split/android/client/telemetry/model/OperationType.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/PushCounterEvent.java b/main/src/main/java/io/split/android/client/telemetry/model/PushCounterEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/PushCounterEvent.java rename to main/src/main/java/io/split/android/client/telemetry/model/PushCounterEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/RefreshRates.java b/main/src/main/java/io/split/android/client/telemetry/model/RefreshRates.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/RefreshRates.java rename to main/src/main/java/io/split/android/client/telemetry/model/RefreshRates.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/Stats.java b/main/src/main/java/io/split/android/client/telemetry/model/Stats.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/Stats.java rename to main/src/main/java/io/split/android/client/telemetry/model/Stats.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/UpdatesFromSSE.java b/main/src/main/java/io/split/android/client/telemetry/model/UpdatesFromSSE.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/UpdatesFromSSE.java rename to main/src/main/java/io/split/android/client/telemetry/model/UpdatesFromSSE.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/UrlOverrides.java b/main/src/main/java/io/split/android/client/telemetry/model/UrlOverrides.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/UrlOverrides.java rename to main/src/main/java/io/split/android/client/telemetry/model/UrlOverrides.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/AblyErrorStreamingEvent.java b/main/src/main/java/io/split/android/client/telemetry/model/streaming/AblyErrorStreamingEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/AblyErrorStreamingEvent.java rename to main/src/main/java/io/split/android/client/telemetry/model/streaming/AblyErrorStreamingEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/ConnectionEstablishedStreamingEvent.java b/main/src/main/java/io/split/android/client/telemetry/model/streaming/ConnectionEstablishedStreamingEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/ConnectionEstablishedStreamingEvent.java rename to main/src/main/java/io/split/android/client/telemetry/model/streaming/ConnectionEstablishedStreamingEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancyPriStreamingEvent.java b/main/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancyPriStreamingEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancyPriStreamingEvent.java rename to main/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancyPriStreamingEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancySecStreamingEvent.java b/main/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancySecStreamingEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancySecStreamingEvent.java rename to main/src/main/java/io/split/android/client/telemetry/model/streaming/OccupancySecStreamingEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/SseConnectionErrorStreamingEvent.java b/main/src/main/java/io/split/android/client/telemetry/model/streaming/SseConnectionErrorStreamingEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/SseConnectionErrorStreamingEvent.java rename to main/src/main/java/io/split/android/client/telemetry/model/streaming/SseConnectionErrorStreamingEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingEvent.java b/main/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingEvent.java rename to main/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingStatusStreamingEvent.java b/main/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingStatusStreamingEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingStatusStreamingEvent.java rename to main/src/main/java/io/split/android/client/telemetry/model/streaming/StreamingStatusStreamingEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/SyncModeUpdateStreamingEvent.java b/main/src/main/java/io/split/android/client/telemetry/model/streaming/SyncModeUpdateStreamingEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/SyncModeUpdateStreamingEvent.java rename to main/src/main/java/io/split/android/client/telemetry/model/streaming/SyncModeUpdateStreamingEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/TokenRefreshStreamingEvent.java b/main/src/main/java/io/split/android/client/telemetry/model/streaming/TokenRefreshStreamingEvent.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/TokenRefreshStreamingEvent.java rename to main/src/main/java/io/split/android/client/telemetry/model/streaming/TokenRefreshStreamingEvent.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/UpdatesFromSSEEnum.java b/main/src/main/java/io/split/android/client/telemetry/model/streaming/UpdatesFromSSEEnum.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/model/streaming/UpdatesFromSSEEnum.java rename to main/src/main/java/io/split/android/client/telemetry/model/streaming/UpdatesFromSSEEnum.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/BinarySearchLatencyTracker.java b/main/src/main/java/io/split/android/client/telemetry/storage/BinarySearchLatencyTracker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/BinarySearchLatencyTracker.java rename to main/src/main/java/io/split/android/client/telemetry/storage/BinarySearchLatencyTracker.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/ILatencyTracker.java b/main/src/main/java/io/split/android/client/telemetry/storage/ILatencyTracker.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/ILatencyTracker.java rename to main/src/main/java/io/split/android/client/telemetry/storage/ILatencyTracker.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorage.java b/main/src/main/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorage.java rename to main/src/main/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/NoOpTelemetryStorage.java b/main/src/main/java/io/split/android/client/telemetry/storage/NoOpTelemetryStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/NoOpTelemetryStorage.java rename to main/src/main/java/io/split/android/client/telemetry/storage/NoOpTelemetryStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProvider.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProvider.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImpl.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImpl.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationConsumer.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationConsumer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationConsumer.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationConsumer.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationProducer.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationProducer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationProducer.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryEvaluationProducer.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitConsumer.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitConsumer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitConsumer.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitConsumer.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitProducer.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitProducer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitProducer.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryInitProducer.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeConsumer.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeConsumer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeConsumer.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeConsumer.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeProducer.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeProducer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeProducer.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryRuntimeProducer.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProvider.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProvider.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProvider.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImpl.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImpl.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorage.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorage.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorage.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorage.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageConsumer.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageConsumer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageConsumer.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageConsumer.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageProducer.java b/main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageProducer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageProducer.java rename to main/src/main/java/io/split/android/client/telemetry/storage/TelemetryStorageProducer.java diff --git a/android-client-main/src/main/java/io/split/android/client/telemetry/util/AtomicLongArray.java b/main/src/main/java/io/split/android/client/telemetry/util/AtomicLongArray.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/telemetry/util/AtomicLongArray.java rename to main/src/main/java/io/split/android/client/telemetry/util/AtomicLongArray.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/BCrypt.java b/main/src/main/java/io/split/android/client/utils/BCrypt.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/BCrypt.java rename to main/src/main/java/io/split/android/client/utils/BCrypt.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/Base64Util.java b/main/src/main/java/io/split/android/client/utils/Base64Util.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/Base64Util.java rename to main/src/main/java/io/split/android/client/utils/Base64Util.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/CompressionUtil.java b/main/src/main/java/io/split/android/client/utils/CompressionUtil.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/CompressionUtil.java rename to main/src/main/java/io/split/android/client/utils/CompressionUtil.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/FileUtils.java b/main/src/main/java/io/split/android/client/utils/FileUtils.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/FileUtils.java rename to main/src/main/java/io/split/android/client/utils/FileUtils.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/Gzip.java b/main/src/main/java/io/split/android/client/utils/Gzip.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/Gzip.java rename to main/src/main/java/io/split/android/client/utils/Gzip.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/HttpProxySerializer.java b/main/src/main/java/io/split/android/client/utils/HttpProxySerializer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/HttpProxySerializer.java rename to main/src/main/java/io/split/android/client/utils/HttpProxySerializer.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/Json.java b/main/src/main/java/io/split/android/client/utils/Json.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/Json.java rename to main/src/main/java/io/split/android/client/utils/Json.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/MemoryUtils.java b/main/src/main/java/io/split/android/client/utils/MemoryUtils.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/MemoryUtils.java rename to main/src/main/java/io/split/android/client/utils/MemoryUtils.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/MemoryUtilsImpl.java b/main/src/main/java/io/split/android/client/utils/MemoryUtilsImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/MemoryUtilsImpl.java rename to main/src/main/java/io/split/android/client/utils/MemoryUtilsImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/MurmurHash3.java b/main/src/main/java/io/split/android/client/utils/MurmurHash3.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/MurmurHash3.java rename to main/src/main/java/io/split/android/client/utils/MurmurHash3.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/StringHelper.java b/main/src/main/java/io/split/android/client/utils/StringHelper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/StringHelper.java rename to main/src/main/java/io/split/android/client/utils/StringHelper.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/Utils.java b/main/src/main/java/io/split/android/client/utils/Utils.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/Utils.java rename to main/src/main/java/io/split/android/client/utils/Utils.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/YamlParser.java b/main/src/main/java/io/split/android/client/utils/YamlParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/YamlParser.java rename to main/src/main/java/io/split/android/client/utils/YamlParser.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/Zlib.java b/main/src/main/java/io/split/android/client/utils/Zlib.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/Zlib.java rename to main/src/main/java/io/split/android/client/utils/Zlib.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/deserializer/EventDeserializer.java b/main/src/main/java/io/split/android/client/utils/deserializer/EventDeserializer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/deserializer/EventDeserializer.java rename to main/src/main/java/io/split/android/client/utils/deserializer/EventDeserializer.java diff --git a/android-client-main/src/main/java/io/split/android/client/utils/serializer/DoubleSerializer.java b/main/src/main/java/io/split/android/client/utils/serializer/DoubleSerializer.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/utils/serializer/DoubleSerializer.java rename to main/src/main/java/io/split/android/client/utils/serializer/DoubleSerializer.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/ApiKeyValidator.java b/main/src/main/java/io/split/android/client/validators/ApiKeyValidator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/ApiKeyValidator.java rename to main/src/main/java/io/split/android/client/validators/ApiKeyValidator.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/ApiKeyValidatorImpl.java b/main/src/main/java/io/split/android/client/validators/ApiKeyValidatorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/ApiKeyValidatorImpl.java rename to main/src/main/java/io/split/android/client/validators/ApiKeyValidatorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/AttributesValidator.java b/main/src/main/java/io/split/android/client/validators/AttributesValidator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/AttributesValidator.java rename to main/src/main/java/io/split/android/client/validators/AttributesValidator.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/AttributesValidatorImpl.java b/main/src/main/java/io/split/android/client/validators/AttributesValidatorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/AttributesValidatorImpl.java rename to main/src/main/java/io/split/android/client/validators/AttributesValidatorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/EventValidator.java b/main/src/main/java/io/split/android/client/validators/EventValidator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/EventValidator.java rename to main/src/main/java/io/split/android/client/validators/EventValidator.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/EventValidatorImpl.java b/main/src/main/java/io/split/android/client/validators/EventValidatorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/EventValidatorImpl.java rename to main/src/main/java/io/split/android/client/validators/EventValidatorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/FlagSetsValidatorImpl.java b/main/src/main/java/io/split/android/client/validators/FlagSetsValidatorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/FlagSetsValidatorImpl.java rename to main/src/main/java/io/split/android/client/validators/FlagSetsValidatorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/KeyValidator.java b/main/src/main/java/io/split/android/client/validators/KeyValidator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/KeyValidator.java rename to main/src/main/java/io/split/android/client/validators/KeyValidator.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/KeyValidatorImpl.java b/main/src/main/java/io/split/android/client/validators/KeyValidatorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/KeyValidatorImpl.java rename to main/src/main/java/io/split/android/client/validators/KeyValidatorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/PrefixValidator.java b/main/src/main/java/io/split/android/client/validators/PrefixValidator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/PrefixValidator.java rename to main/src/main/java/io/split/android/client/validators/PrefixValidator.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/PrefixValidatorImpl.java b/main/src/main/java/io/split/android/client/validators/PrefixValidatorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/PrefixValidatorImpl.java rename to main/src/main/java/io/split/android/client/validators/PrefixValidatorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/PropertyValidator.java b/main/src/main/java/io/split/android/client/validators/PropertyValidator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/PropertyValidator.java rename to main/src/main/java/io/split/android/client/validators/PropertyValidator.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/SplitFilterValidator.java b/main/src/main/java/io/split/android/client/validators/SplitFilterValidator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/SplitFilterValidator.java rename to main/src/main/java/io/split/android/client/validators/SplitFilterValidator.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/SplitValidator.java b/main/src/main/java/io/split/android/client/validators/SplitValidator.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/SplitValidator.java rename to main/src/main/java/io/split/android/client/validators/SplitValidator.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/SplitValidatorImpl.java b/main/src/main/java/io/split/android/client/validators/SplitValidatorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/SplitValidatorImpl.java rename to main/src/main/java/io/split/android/client/validators/SplitValidatorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/TreatmentManager.java b/main/src/main/java/io/split/android/client/validators/TreatmentManager.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/TreatmentManager.java rename to main/src/main/java/io/split/android/client/validators/TreatmentManager.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerFactory.java b/main/src/main/java/io/split/android/client/validators/TreatmentManagerFactory.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerFactory.java rename to main/src/main/java/io/split/android/client/validators/TreatmentManagerFactory.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerFactoryImpl.java b/main/src/main/java/io/split/android/client/validators/TreatmentManagerFactoryImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerFactoryImpl.java rename to main/src/main/java/io/split/android/client/validators/TreatmentManagerFactoryImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerHelper.java b/main/src/main/java/io/split/android/client/validators/TreatmentManagerHelper.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerHelper.java rename to main/src/main/java/io/split/android/client/validators/TreatmentManagerHelper.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerImpl.java b/main/src/main/java/io/split/android/client/validators/TreatmentManagerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/TreatmentManagerImpl.java rename to main/src/main/java/io/split/android/client/validators/TreatmentManagerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/ValidationConfig.java b/main/src/main/java/io/split/android/client/validators/ValidationConfig.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/ValidationConfig.java rename to main/src/main/java/io/split/android/client/validators/ValidationConfig.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/ValidationErrorInfo.java b/main/src/main/java/io/split/android/client/validators/ValidationErrorInfo.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/ValidationErrorInfo.java rename to main/src/main/java/io/split/android/client/validators/ValidationErrorInfo.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/ValidationMessageLogger.java b/main/src/main/java/io/split/android/client/validators/ValidationMessageLogger.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/ValidationMessageLogger.java rename to main/src/main/java/io/split/android/client/validators/ValidationMessageLogger.java diff --git a/android-client-main/src/main/java/io/split/android/client/validators/ValidationMessageLoggerImpl.java b/main/src/main/java/io/split/android/client/validators/ValidationMessageLoggerImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/client/validators/ValidationMessageLoggerImpl.java rename to main/src/main/java/io/split/android/client/validators/ValidationMessageLoggerImpl.java diff --git a/android-client-main/src/main/java/io/split/android/engine/experiments/DefaultConditionsProvider.java b/main/src/main/java/io/split/android/engine/experiments/DefaultConditionsProvider.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/experiments/DefaultConditionsProvider.java rename to main/src/main/java/io/split/android/engine/experiments/DefaultConditionsProvider.java diff --git a/android-client-main/src/main/java/io/split/android/engine/experiments/FetcherPolicy.java b/main/src/main/java/io/split/android/engine/experiments/FetcherPolicy.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/experiments/FetcherPolicy.java rename to main/src/main/java/io/split/android/engine/experiments/FetcherPolicy.java diff --git a/android-client-main/src/main/java/io/split/android/engine/experiments/ParsedCondition.java b/main/src/main/java/io/split/android/engine/experiments/ParsedCondition.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/experiments/ParsedCondition.java rename to main/src/main/java/io/split/android/engine/experiments/ParsedCondition.java diff --git a/android-client-main/src/main/java/io/split/android/engine/experiments/ParsedRuleBasedSegment.java b/main/src/main/java/io/split/android/engine/experiments/ParsedRuleBasedSegment.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/experiments/ParsedRuleBasedSegment.java rename to main/src/main/java/io/split/android/engine/experiments/ParsedRuleBasedSegment.java diff --git a/android-client-main/src/main/java/io/split/android/engine/experiments/ParsedSplit.java b/main/src/main/java/io/split/android/engine/experiments/ParsedSplit.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/experiments/ParsedSplit.java rename to main/src/main/java/io/split/android/engine/experiments/ParsedSplit.java diff --git a/android-client-main/src/main/java/io/split/android/engine/experiments/Parser.java b/main/src/main/java/io/split/android/engine/experiments/Parser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/experiments/Parser.java rename to main/src/main/java/io/split/android/engine/experiments/Parser.java diff --git a/android-client-main/src/main/java/io/split/android/engine/experiments/ParserCommons.java b/main/src/main/java/io/split/android/engine/experiments/ParserCommons.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/experiments/ParserCommons.java rename to main/src/main/java/io/split/android/engine/experiments/ParserCommons.java diff --git a/android-client-main/src/main/java/io/split/android/engine/experiments/RuleBasedSegmentParser.java b/main/src/main/java/io/split/android/engine/experiments/RuleBasedSegmentParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/experiments/RuleBasedSegmentParser.java rename to main/src/main/java/io/split/android/engine/experiments/RuleBasedSegmentParser.java diff --git a/android-client-main/src/main/java/io/split/android/engine/experiments/SplitFetcher.java b/main/src/main/java/io/split/android/engine/experiments/SplitFetcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/experiments/SplitFetcher.java rename to main/src/main/java/io/split/android/engine/experiments/SplitFetcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/experiments/SplitParser.java b/main/src/main/java/io/split/android/engine/experiments/SplitParser.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/experiments/SplitParser.java rename to main/src/main/java/io/split/android/engine/experiments/SplitParser.java diff --git a/android-client-main/src/main/java/io/split/android/engine/experiments/UnsupportedMatcherException.java b/main/src/main/java/io/split/android/engine/experiments/UnsupportedMatcherException.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/experiments/UnsupportedMatcherException.java rename to main/src/main/java/io/split/android/engine/experiments/UnsupportedMatcherException.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/AllKeysMatcher.java b/main/src/main/java/io/split/android/engine/matchers/AllKeysMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/AllKeysMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/AllKeysMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/AttributeMatcher.java b/main/src/main/java/io/split/android/engine/matchers/AttributeMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/AttributeMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/AttributeMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/BetweenMatcher.java b/main/src/main/java/io/split/android/engine/matchers/BetweenMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/BetweenMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/BetweenMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/BooleanMatcher.java b/main/src/main/java/io/split/android/engine/matchers/BooleanMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/BooleanMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/BooleanMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/CombiningMatcher.java b/main/src/main/java/io/split/android/engine/matchers/CombiningMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/CombiningMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/CombiningMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/DependencyMatcher.java b/main/src/main/java/io/split/android/engine/matchers/DependencyMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/DependencyMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/DependencyMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/EqualToMatcher.java b/main/src/main/java/io/split/android/engine/matchers/EqualToMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/EqualToMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/EqualToMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcher.java b/main/src/main/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcher.java b/main/src/main/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/LessThanOrEqualToMatcher.java b/main/src/main/java/io/split/android/engine/matchers/LessThanOrEqualToMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/LessThanOrEqualToMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/LessThanOrEqualToMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/Matcher.java b/main/src/main/java/io/split/android/engine/matchers/Matcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/Matcher.java rename to main/src/main/java/io/split/android/engine/matchers/Matcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/MySegmentsMatcher.java b/main/src/main/java/io/split/android/engine/matchers/MySegmentsMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/MySegmentsMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/MySegmentsMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/PrerequisitesMatcher.java b/main/src/main/java/io/split/android/engine/matchers/PrerequisitesMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/PrerequisitesMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/PrerequisitesMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/Transformers.java b/main/src/main/java/io/split/android/engine/matchers/Transformers.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/Transformers.java rename to main/src/main/java/io/split/android/engine/matchers/Transformers.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcher.java b/main/src/main/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcher.java b/main/src/main/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/collections/EqualToSetMatcher.java b/main/src/main/java/io/split/android/engine/matchers/collections/EqualToSetMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/collections/EqualToSetMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/collections/EqualToSetMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/collections/PartOfSetMatcher.java b/main/src/main/java/io/split/android/engine/matchers/collections/PartOfSetMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/collections/PartOfSetMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/collections/PartOfSetMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/semver/BetweenSemverMatcher.java b/main/src/main/java/io/split/android/engine/matchers/semver/BetweenSemverMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/semver/BetweenSemverMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/semver/BetweenSemverMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/semver/EqualToSemverMatcher.java b/main/src/main/java/io/split/android/engine/matchers/semver/EqualToSemverMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/semver/EqualToSemverMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/semver/EqualToSemverMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcher.java b/main/src/main/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/semver/InListSemverMatcher.java b/main/src/main/java/io/split/android/engine/matchers/semver/InListSemverMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/semver/InListSemverMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/semver/InListSemverMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcher.java b/main/src/main/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/semver/Semver.java b/main/src/main/java/io/split/android/engine/matchers/semver/Semver.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/semver/Semver.java rename to main/src/main/java/io/split/android/engine/matchers/semver/Semver.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/semver/SemverParseException.java b/main/src/main/java/io/split/android/engine/matchers/semver/SemverParseException.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/semver/SemverParseException.java rename to main/src/main/java/io/split/android/engine/matchers/semver/SemverParseException.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcher.java b/main/src/main/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcher.java b/main/src/main/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/strings/RegularExpressionMatcher.java b/main/src/main/java/io/split/android/engine/matchers/strings/RegularExpressionMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/strings/RegularExpressionMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/strings/RegularExpressionMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcher.java b/main/src/main/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/matchers/strings/WhitelistMatcher.java b/main/src/main/java/io/split/android/engine/matchers/strings/WhitelistMatcher.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/matchers/strings/WhitelistMatcher.java rename to main/src/main/java/io/split/android/engine/matchers/strings/WhitelistMatcher.java diff --git a/android-client-main/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutor.java b/main/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutor.java rename to main/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutor.java diff --git a/android-client-main/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImpl.java b/main/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImpl.java rename to main/src/main/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutor.java b/main/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutor.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutor.java rename to main/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutor.java diff --git a/android-client-main/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutorImpl.java b/main/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutorImpl.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutorImpl.java rename to main/src/main/java/io/split/android/engine/scheduler/PausableThreadPoolExecutorImpl.java diff --git a/android-client-main/src/main/java/io/split/android/engine/splitter/Splitter.java b/main/src/main/java/io/split/android/engine/splitter/Splitter.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/engine/splitter/Splitter.java rename to main/src/main/java/io/split/android/engine/splitter/Splitter.java diff --git a/android-client-main/src/main/java/io/split/android/grammar/Treatments.java b/main/src/main/java/io/split/android/grammar/Treatments.java similarity index 100% rename from android-client-main/src/main/java/io/split/android/grammar/Treatments.java rename to main/src/main/java/io/split/android/grammar/Treatments.java diff --git a/android-client-main/src/sharedTest/java/helper/CompressionHelper.java b/main/src/sharedTest/java/helper/CompressionHelper.java similarity index 100% rename from android-client-main/src/sharedTest/java/helper/CompressionHelper.java rename to main/src/sharedTest/java/helper/CompressionHelper.java diff --git a/android-client-main/src/sharedTest/java/helper/TestingData.java b/main/src/sharedTest/java/helper/TestingData.java similarity index 100% rename from android-client-main/src/sharedTest/java/helper/TestingData.java rename to main/src/sharedTest/java/helper/TestingData.java diff --git a/android-client-main/src/sharedTest/java/helper/TestingHelper.java b/main/src/sharedTest/java/helper/TestingHelper.java similarity index 100% rename from android-client-main/src/sharedTest/java/helper/TestingHelper.java rename to main/src/sharedTest/java/helper/TestingHelper.java diff --git a/android-client-main/src/sharedTest/java/io/split/android/client/utils/logger/LogPrinterStub.java b/main/src/sharedTest/java/io/split/android/client/utils/logger/LogPrinterStub.java similarity index 100% rename from android-client-main/src/sharedTest/java/io/split/android/client/utils/logger/LogPrinterStub.java rename to main/src/sharedTest/java/io/split/android/client/utils/logger/LogPrinterStub.java diff --git a/android-client-main/src/sharedTest/java/io/split/sharedtest/fake/HttpStreamResponseMock.java b/main/src/sharedTest/java/io/split/sharedtest/fake/HttpStreamResponseMock.java similarity index 100% rename from android-client-main/src/sharedTest/java/io/split/sharedtest/fake/HttpStreamResponseMock.java rename to main/src/sharedTest/java/io/split/sharedtest/fake/HttpStreamResponseMock.java diff --git a/android-client-main/src/test/java/android/util/Base64.java b/main/src/test/java/android/util/Base64.java similarity index 100% rename from android-client-main/src/test/java/android/util/Base64.java rename to main/src/test/java/android/util/Base64.java diff --git a/android-client-main/src/test/java/io/split/android/BCryptTest.java b/main/src/test/java/io/split/android/BCryptTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/BCryptTest.java rename to main/src/test/java/io/split/android/BCryptTest.java diff --git a/android-client-main/src/test/java/io/split/android/FolderForApiKeyTest.java b/main/src/test/java/io/split/android/FolderForApiKeyTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/FolderForApiKeyTest.java rename to main/src/test/java/io/split/android/FolderForApiKeyTest.java diff --git a/android-client-main/src/test/java/io/split/android/SplitConfigurationsParsingTests.java b/main/src/test/java/io/split/android/SplitConfigurationsParsingTests.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/SplitConfigurationsParsingTests.java rename to main/src/test/java/io/split/android/SplitConfigurationsParsingTests.java diff --git a/android-client-main/src/test/java/io/split/android/client/DestroyerTest.java b/main/src/test/java/io/split/android/client/DestroyerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/DestroyerTest.java rename to main/src/test/java/io/split/android/client/DestroyerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/EvaluationOptionsTest.java b/main/src/test/java/io/split/android/client/EvaluationOptionsTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/EvaluationOptionsTest.java rename to main/src/test/java/io/split/android/client/EvaluationOptionsTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/FactoryMonitorTest.java b/main/src/test/java/io/split/android/client/FactoryMonitorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/FactoryMonitorTest.java rename to main/src/test/java/io/split/android/client/FactoryMonitorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/FileStorageTest.java b/main/src/test/java/io/split/android/client/FileStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/FileStorageTest.java rename to main/src/test/java/io/split/android/client/FileStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/FilterBuilderTest.java b/main/src/test/java/io/split/android/client/FilterBuilderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/FilterBuilderTest.java rename to main/src/test/java/io/split/android/client/FilterBuilderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/FilterGrouperTest.java b/main/src/test/java/io/split/android/client/FilterGrouperTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/FilterGrouperTest.java rename to main/src/test/java/io/split/android/client/FilterGrouperTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/FlagSetsFilterImplTest.java b/main/src/test/java/io/split/android/client/FlagSetsFilterImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/FlagSetsFilterImplTest.java rename to main/src/test/java/io/split/android/client/FlagSetsFilterImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/ImpressionsModeTest.java b/main/src/test/java/io/split/android/client/ImpressionsModeTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/ImpressionsModeTest.java rename to main/src/test/java/io/split/android/client/ImpressionsModeTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/MySegmentsUriBuildersTest.java b/main/src/test/java/io/split/android/client/MySegmentsUriBuildersTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/MySegmentsUriBuildersTest.java rename to main/src/test/java/io/split/android/client/MySegmentsUriBuildersTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/RolloutCacheConfigurationTest.java b/main/src/test/java/io/split/android/client/RolloutCacheConfigurationTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/RolloutCacheConfigurationTest.java rename to main/src/test/java/io/split/android/client/RolloutCacheConfigurationTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/SplitClientConfigTest.java b/main/src/test/java/io/split/android/client/SplitClientConfigTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/SplitClientConfigTest.java rename to main/src/test/java/io/split/android/client/SplitClientConfigTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/SplitClientImplAttributesTest.java b/main/src/test/java/io/split/android/client/SplitClientImplAttributesTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/SplitClientImplAttributesTest.java rename to main/src/test/java/io/split/android/client/SplitClientImplAttributesTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/SplitClientImplBaseTest.java b/main/src/test/java/io/split/android/client/SplitClientImplBaseTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/SplitClientImplBaseTest.java rename to main/src/test/java/io/split/android/client/SplitClientImplBaseTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java b/main/src/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java rename to main/src/test/java/io/split/android/client/SplitClientImplEvaluationOptionsTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java b/main/src/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java rename to main/src/test/java/io/split/android/client/SplitClientImplFlagSetsTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/SplitClientImplLegacyTest.java b/main/src/test/java/io/split/android/client/SplitClientImplLegacyTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/SplitClientImplLegacyTest.java rename to main/src/test/java/io/split/android/client/SplitClientImplLegacyTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/SplitFactoryHelperTest.kt b/main/src/test/java/io/split/android/client/SplitFactoryHelperTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/SplitFactoryHelperTest.kt rename to main/src/test/java/io/split/android/client/SplitFactoryHelperTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/SplitManagerImplTest.java b/main/src/test/java/io/split/android/client/SplitManagerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/SplitManagerImplTest.java rename to main/src/test/java/io/split/android/client/SplitManagerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/SyncConfigTest.java b/main/src/test/java/io/split/android/client/SyncConfigTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/SyncConfigTest.java rename to main/src/test/java/io/split/android/client/SyncConfigTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/TreatmentLabelsTest.java b/main/src/test/java/io/split/android/client/TreatmentLabelsTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/TreatmentLabelsTest.java rename to main/src/test/java/io/split/android/client/TreatmentLabelsTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java b/main/src/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java rename to main/src/test/java/io/split/android/client/TreatmentManagerEvaluationOptionsTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java b/main/src/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java rename to main/src/test/java/io/split/android/client/TreatmentManagerExceptionsTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java b/main/src/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java rename to main/src/test/java/io/split/android/client/TreatmentManagerTelemetryTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/TreatmentManagerTest.java b/main/src/test/java/io/split/android/client/TreatmentManagerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/TreatmentManagerTest.java rename to main/src/test/java/io/split/android/client/TreatmentManagerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java b/main/src/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java rename to main/src/test/java/io/split/android/client/TreatmentManagerWithFlagSetsTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/UserConsentManagerTest.java b/main/src/test/java/io/split/android/client/UserConsentManagerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/UserConsentManagerTest.java rename to main/src/test/java/io/split/android/client/UserConsentManagerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java b/main/src/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java rename to main/src/test/java/io/split/android/client/attributes/AttributesManagerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java b/main/src/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java rename to main/src/test/java/io/split/android/client/attributes/AttributesMergerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/dtos/SplitDeserializationTest.java b/main/src/test/java/io/split/android/client/dtos/SplitDeserializationTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/dtos/SplitDeserializationTest.java rename to main/src/test/java/io/split/android/client/dtos/SplitDeserializationTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java b/main/src/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java rename to main/src/test/java/io/split/android/client/events/EventsManagerCoordinatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/events/EventsManagerTest.java b/main/src/test/java/io/split/android/client/events/EventsManagerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/events/EventsManagerTest.java rename to main/src/test/java/io/split/android/client/events/EventsManagerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/events/PropertyValidatorTest.java b/main/src/test/java/io/split/android/client/events/PropertyValidatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/events/PropertyValidatorTest.java rename to main/src/test/java/io/split/android/client/events/PropertyValidatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java b/main/src/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java rename to main/src/test/java/io/split/android/client/events/executors/ClientEventSplitTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java b/main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java rename to main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorFactoryTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java b/main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java rename to main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorResourcesImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java b/main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java rename to main/src/test/java/io/split/android/client/events/executors/SplitEventExecutorWithClientTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java b/main/src/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java rename to main/src/test/java/io/split/android/client/fallback/FallbackTreatmentTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java b/main/src/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java rename to main/src/test/java/io/split/android/client/fallback/FallbackTreatmentsCalculatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java b/main/src/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java rename to main/src/test/java/io/split/android/client/fallback/FallbackTreatmentsConfigurationTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java b/main/src/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java rename to main/src/test/java/io/split/android/client/fallback/FallbacksSanitizerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java b/main/src/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java rename to main/src/test/java/io/split/android/client/impressions/ImpressionLoggingTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java b/main/src/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java rename to main/src/test/java/io/split/android/client/impressions/SyncImpressionListenerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java b/main/src/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java rename to main/src/test/java/io/split/android/client/localhost/LocalhostSplitClientTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java b/main/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java rename to main/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java b/main/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java rename to main/src/test/java/io/split/android/client/localhost/LocalhostSplitFactoryTestBuilder.java diff --git a/android-client-main/src/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java b/main/src/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java rename to main/src/test/java/io/split/android/client/localhost/LocalhostYamlParserTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java b/main/src/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java rename to main/src/test/java/io/split/android/client/localhost/shared/LocalhostSplitClientContainerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java b/main/src/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java rename to main/src/test/java/io/split/android/client/metrics/BinarySearchLatencyTrackerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java b/main/src/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java rename to main/src/test/java/io/split/android/client/network/CertificateCheckerHelperTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/CertificateCheckerImplTest.java b/main/src/test/java/io/split/android/client/network/CertificateCheckerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/CertificateCheckerImplTest.java rename to main/src/test/java/io/split/android/client/network/CertificateCheckerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java b/main/src/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java rename to main/src/test/java/io/split/android/client/network/CertificatePinningConfigurationProviderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java b/main/src/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java rename to main/src/test/java/io/split/android/client/network/CertificatePinningConfigurationTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/ChainCleanerImplTest.java b/main/src/test/java/io/split/android/client/network/ChainCleanerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/ChainCleanerImplTest.java rename to main/src/test/java/io/split/android/client/network/ChainCleanerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java b/main/src/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java rename to main/src/test/java/io/split/android/client/network/DefaultBase64EncoderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/HttpClientTest.java b/main/src/test/java/io/split/android/client/network/HttpClientTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/HttpClientTest.java rename to main/src/test/java/io/split/android/client/network/HttpClientTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java b/main/src/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java rename to main/src/test/java/io/split/android/client/network/HttpClientTunnellingProxyTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java b/main/src/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java rename to main/src/test/java/io/split/android/client/network/HttpOverTunnelExecutorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/HttpRequestHelperTest.java b/main/src/test/java/io/split/android/client/network/HttpRequestHelperTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/HttpRequestHelperTest.java rename to main/src/test/java/io/split/android/client/network/HttpRequestHelperTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java b/main/src/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java rename to main/src/test/java/io/split/android/client/network/HttpResponseConnectionAdapterTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/HttpStreamResponseTest.java b/main/src/test/java/io/split/android/client/network/HttpStreamResponseTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/HttpStreamResponseTest.java rename to main/src/test/java/io/split/android/client/network/HttpStreamResponseTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/PinEncoderImplTest.java b/main/src/test/java/io/split/android/client/network/PinEncoderImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/PinEncoderImplTest.java rename to main/src/test/java/io/split/android/client/network/PinEncoderImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/ProxyConfigurationTest.java b/main/src/test/java/io/split/android/client/network/ProxyConfigurationTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/ProxyConfigurationTest.java rename to main/src/test/java/io/split/android/client/network/ProxyConfigurationTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java b/main/src/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java rename to main/src/test/java/io/split/android/client/network/ProxySslSocketFactoryProviderImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/RawHttpResponseParserTest.java b/main/src/test/java/io/split/android/client/network/RawHttpResponseParserTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/RawHttpResponseParserTest.java rename to main/src/test/java/io/split/android/client/network/RawHttpResponseParserTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/SdkTargetPathTest.java b/main/src/test/java/io/split/android/client/network/SdkTargetPathTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/SdkTargetPathTest.java rename to main/src/test/java/io/split/android/client/network/SdkTargetPathTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/SplitAuthenticatorTest.java b/main/src/test/java/io/split/android/client/network/SplitAuthenticatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/SplitAuthenticatorTest.java rename to main/src/test/java/io/split/android/client/network/SplitAuthenticatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java b/main/src/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java rename to main/src/test/java/io/split/android/client/network/SplitBasicAuthenticatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java b/main/src/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java rename to main/src/test/java/io/split/android/client/network/SplitUrlConnectionAuthenticatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java b/main/src/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java rename to main/src/test/java/io/split/android/client/network/SslProxyTunnelEstablisherTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/network/TrustManagerProviderTest.java b/main/src/test/java/io/split/android/client/network/TrustManagerProviderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/network/TrustManagerProviderTest.java rename to main/src/test/java/io/split/android/client/network/TrustManagerProviderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/EventsRecorderTaskTest.java b/main/src/test/java/io/split/android/client/service/EventsRecorderTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/EventsRecorderTaskTest.java rename to main/src/test/java/io/split/android/client/service/EventsRecorderTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java b/main/src/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java rename to main/src/test/java/io/split/android/client/service/FilterSplitsInCacheTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/HttpFetcherTest.java b/main/src/test/java/io/split/android/client/service/HttpFetcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/HttpFetcherTest.java rename to main/src/test/java/io/split/android/client/service/HttpFetcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/HttpRecorderTest.java b/main/src/test/java/io/split/android/client/service/HttpRecorderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/HttpRecorderTest.java rename to main/src/test/java/io/split/android/client/service/HttpRecorderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/ImpressionHasherTest.java b/main/src/test/java/io/split/android/client/service/ImpressionHasherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/ImpressionHasherTest.java rename to main/src/test/java/io/split/android/client/service/ImpressionHasherTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java b/main/src/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java rename to main/src/test/java/io/split/android/client/service/ImpressionsCountRecorderTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/ImpressionsCounterTest.java b/main/src/test/java/io/split/android/client/service/ImpressionsCounterTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/ImpressionsCounterTest.java rename to main/src/test/java/io/split/android/client/service/ImpressionsCounterTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java b/main/src/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java rename to main/src/test/java/io/split/android/client/service/ImpressionsRecorderTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java b/main/src/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java rename to main/src/test/java/io/split/android/client/service/ImpressionsRequestParserTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/LoadSplitsTaskTest.java b/main/src/test/java/io/split/android/client/service/LoadSplitsTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/LoadSplitsTaskTest.java rename to main/src/test/java/io/split/android/client/service/LoadSplitsTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java b/main/src/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java rename to main/src/test/java/io/split/android/client/service/MySegmentsChangesCheckerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java b/main/src/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java rename to main/src/test/java/io/split/android/client/service/MySegmentsSyncTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java b/main/src/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java rename to main/src/test/java/io/split/android/client/service/MySegmentsUpdateTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java b/main/src/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java rename to main/src/test/java/io/split/android/client/service/SplitInPlaceUpdateTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/SplitKillTaskTest.java b/main/src/test/java/io/split/android/client/service/SplitKillTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/SplitKillTaskTest.java rename to main/src/test/java/io/split/android/client/service/SplitKillTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/SplitSyncTaskTest.java b/main/src/test/java/io/split/android/client/service/SplitSyncTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/SplitSyncTaskTest.java rename to main/src/test/java/io/split/android/client/service/SplitSyncTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/SplitTaskExecutorTest.java b/main/src/test/java/io/split/android/client/service/SplitTaskExecutorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/SplitTaskExecutorTest.java rename to main/src/test/java/io/split/android/client/service/SplitTaskExecutorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/SplitUpdateTaskTest.java b/main/src/test/java/io/split/android/client/service/SplitUpdateTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/SplitUpdateTaskTest.java rename to main/src/test/java/io/split/android/client/service/SplitUpdateTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java b/main/src/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java rename to main/src/test/java/io/split/android/client/service/SplitsChangesCheckerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/SplitsSyncHelperTest.java b/main/src/test/java/io/split/android/client/service/SplitsSyncHelperTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/SplitsSyncHelperTest.java rename to main/src/test/java/io/split/android/client/service/SplitsSyncHelperTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/SynchronizerTest.java b/main/src/test/java/io/split/android/client/service/SynchronizerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/SynchronizerTest.java rename to main/src/test/java/io/split/android/client/service/SynchronizerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java b/main/src/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java rename to main/src/test/java/io/split/android/client/service/attributes/ClearAttributesInPersistentStorageTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java b/main/src/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java rename to main/src/test/java/io/split/android/client/service/attributes/LoadAttributesTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java b/main/src/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java rename to main/src/test/java/io/split/android/client/service/attributes/UpdateAttributesInPersistentStorageTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java b/main/src/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java rename to main/src/test/java/io/split/android/client/service/events/EventsRequestBodySerializerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/events/EventsTrackerTest.java b/main/src/test/java/io/split/android/client/service/events/EventsTrackerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/events/EventsTrackerTest.java rename to main/src/test/java/io/split/android/client/service/events/EventsTrackerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java b/main/src/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java rename to main/src/test/java/io/split/android/client/service/executor/SplitTaskSerialWrapperTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java b/main/src/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java rename to main/src/test/java/io/split/android/client/service/executor/ThreadFactoryBuilderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java b/main/src/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java rename to main/src/test/java/io/split/android/client/service/executor/parallel/SplitParallelTaskExecutorImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java b/main/src/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java rename to main/src/test/java/io/split/android/client/service/http/HttpSseAuthTokenFetcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java b/main/src/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java rename to main/src/test/java/io/split/android/client/service/http/mysegments/MySegmentsFetcherFactoryImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt b/main/src/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt rename to main/src/test/java/io/split/android/client/service/impressions/ImpressionManagerRetryTimerProviderImplTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java b/main/src/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java rename to main/src/test/java/io/split/android/client/service/impressions/ImpressionsRequestBodySerializerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java b/main/src/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java rename to main/src/test/java/io/split/android/client/service/impressions/MemoizedSupplierTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt b/main/src/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt rename to main/src/test/java/io/split/android/client/service/impressions/StrategyImpressionManagerTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java b/main/src/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java rename to main/src/test/java/io/split/android/client/service/impressions/observer/ImpressionsObserverCacheImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java b/main/src/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java rename to main/src/test/java/io/split/android/client/service/impressions/observer/PeriodicPersistenceTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java b/main/src/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java rename to main/src/test/java/io/split/android/client/service/impressions/observer/SqlitePersistentImpressionsObserverCacheStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt b/main/src/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt rename to main/src/test/java/io/split/android/client/service/impressions/strategy/DebugStrategyTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt b/main/src/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt rename to main/src/test/java/io/split/android/client/service/impressions/strategy/DebugTrackerTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt b/main/src/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt rename to main/src/test/java/io/split/android/client/service/impressions/strategy/NoneStrategyTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt b/main/src/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt rename to main/src/test/java/io/split/android/client/service/impressions/strategy/NoneTrackerTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt b/main/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt rename to main/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedStrategyTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt b/main/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt rename to main/src/test/java/io/split/android/client/service/impressions/strategy/OptimizedTrackerTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java b/main/src/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java rename to main/src/test/java/io/split/android/client/service/impressions/strategy/UtilsTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java b/main/src/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java rename to main/src/test/java/io/split/android/client/service/impressions/unique/MTKRequestBodySerializerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java b/main/src/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java rename to main/src/test/java/io/split/android/client/service/impressions/unique/SaveUniqueImpressionsTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java b/main/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java rename to main/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysRecorderTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java b/main/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java rename to main/src/test/java/io/split/android/client/service/impressions/unique/UniqueKeysTrackerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java b/main/src/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java rename to main/src/test/java/io/split/android/client/service/mysegments/AllSegmentsResponseParserTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java b/main/src/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java rename to main/src/test/java/io/split/android/client/service/mysegments/LoadMySegmentsTaskConfigTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java b/main/src/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java rename to main/src/test/java/io/split/android/client/service/mysegments/MySegmentsBulkSyncTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java b/main/src/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java rename to main/src/test/java/io/split/android/client/service/mysegments/MySegmentsSyncTaskConfigTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java b/main/src/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java rename to main/src/test/java/io/split/android/client/service/mysegments/MySegmentsTaskFactoryConfigurationTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java b/main/src/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java rename to main/src/test/java/io/split/android/client/service/mysegments/MySegmentsUpdateTaskConfigTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java b/main/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java rename to main/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentChangeProcessorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java b/main/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java rename to main/src/test/java/io/split/android/client/service/rules/RuleBasedSegmentInPlaceUpdateTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java b/main/src/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java rename to main/src/test/java/io/split/android/client/service/rules/TargetingRulesResponseParserTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java b/main/src/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java rename to main/src/test/java/io/split/android/client/service/splits/LoadSplitsTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java b/main/src/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java rename to main/src/test/java/io/split/android/client/service/splits/OutdatedSplitProxyHandlerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java b/main/src/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java rename to main/src/test/java/io/split/android/client/service/splits/SplitChangeProcessorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java b/main/src/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java rename to main/src/test/java/io/split/android/client/service/splits/SplitsSyncHelperFreshInstallTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java b/main/src/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java rename to main/src/test/java/io/split/android/client/service/splits/TargetingRulesCacheTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java b/main/src/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/BackgroundDisconnectionTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java b/main/src/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/EventStreamParserTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java b/main/src/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/MySegmentsUpdateWorkerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java b/main/src/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/NotificationManagerKeeperTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java b/main/src/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/NotificationParserTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java b/main/src/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/NotificationProcessorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java b/main/src/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/PushNotificationManagerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java b/main/src/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/ReconnectBackoffCounterTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java b/main/src/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/SplitUpdateWorkerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java b/main/src/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/SseAuthenticatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/SseClientTest.java b/main/src/test/java/io/split/android/client/service/sseclient/SseClientTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/SseClientTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/SseClientTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java b/main/src/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/SseHandlerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java b/main/src/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/SyncManagerChannelMessageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java b/main/src/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/SyncManagerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java b/main/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/MySegmentsNotificationProcessorImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java b/main/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/notifications/mysegments/SyncDelayCalculatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java b/main/src/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/reactor/MySegmentsUpdateWorkerRegistryImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java b/main/src/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/sseclient/PushNotificationManagerDeferredStartTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java b/main/src/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/sseclient/RetryBackoffCounterTimerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java b/main/src/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/sseclient/SseDisconnectionTimerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java b/main/src/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java rename to main/src/test/java/io/split/android/client/service/sseclient/sseclient/notifications/SplitsChangeNotificationTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java b/main/src/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java rename to main/src/test/java/io/split/android/client/service/synchronizer/FeatureFlagsSynchronizerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java b/main/src/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java rename to main/src/test/java/io/split/android/client/service/synchronizer/RecorderSyncHelperImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt b/main/src/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt rename to main/src/test/java/io/split/android/client/service/synchronizer/RolloutCacheManagerTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java b/main/src/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java rename to main/src/test/java/io/split/android/client/service/synchronizer/SyncGuardianImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java b/main/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java rename to main/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java b/main/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java rename to main/src/test/java/io/split/android/client/service/synchronizer/attributes/AttributesSynchronizerRegistryImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java b/main/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java rename to main/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java b/main/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java rename to main/src/test/java/io/split/android/client/service/synchronizer/mysegments/MySegmentsSynchronizerRegistryImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java b/main/src/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java rename to main/src/test/java/io/split/android/client/service/telemetry/SynchronizerImplTelemetryTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java b/main/src/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java rename to main/src/test/java/io/split/android/client/service/telemetry/TelemetryConfigRecorderTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java b/main/src/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java rename to main/src/test/java/io/split/android/client/service/telemetry/TelemetryStatsRecorderTaskTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java b/main/src/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java rename to main/src/test/java/io/split/android/client/service/workmanager/HttpClientProviderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java b/main/src/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java rename to main/src/test/java/io/split/android/client/service/workmanager/splits/FetcherProviderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java b/main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java rename to main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerFilterBuilderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java b/main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java rename to main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerParamsTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java b/main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java rename to main/src/test/java/io/split/android/client/service/workmanager/splits/SplitsSyncWorkerTaskBuilderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java b/main/src/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java rename to main/src/test/java/io/split/android/client/service/workmanager/splits/StorageProviderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java b/main/src/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java rename to main/src/test/java/io/split/android/client/shared/ClientComponentsRegisterImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java b/main/src/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java rename to main/src/test/java/io/split/android/client/shared/SplitClientContainerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java b/main/src/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java rename to main/src/test/java/io/split/android/client/storage/attributes/AttributesStorageImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java b/main/src/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java rename to main/src/test/java/io/split/android/client/storage/attributes/SqLitePersistentAttributesStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt b/main/src/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt rename to main/src/test/java/io/split/android/client/storage/cipher/ApplyCipherTaskTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt b/main/src/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt rename to main/src/test/java/io/split/android/client/storage/cipher/CBCCipherTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt b/main/src/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt rename to main/src/test/java/io/split/android/client/storage/cipher/DBCipherTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt b/main/src/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt rename to main/src/test/java/io/split/android/client/storage/cipher/EncryptionMigrationTaskTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt b/main/src/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt rename to main/src/test/java/io/split/android/client/storage/cipher/NoOpCipherTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt b/main/src/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt rename to main/src/test/java/io/split/android/client/storage/cipher/ObjectPoolTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt b/main/src/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt rename to main/src/test/java/io/split/android/client/storage/cipher/SplitCipherFactoryTest.kt diff --git a/android-client-main/src/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java b/main/src/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java rename to main/src/test/java/io/split/android/client/storage/common/SplitStorageContainerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java b/main/src/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java rename to main/src/test/java/io/split/android/client/storage/db/SplitQueryDaoImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java b/main/src/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java rename to main/src/test/java/io/split/android/client/storage/db/SplitRoomDatabaseTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/events/EventsStorageTest.java b/main/src/test/java/io/split/android/client/storage/events/EventsStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/events/EventsStorageTest.java rename to main/src/test/java/io/split/android/client/storage/events/EventsStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java b/main/src/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java rename to main/src/test/java/io/split/android/client/storage/events/SqLitePersistentEventsStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java b/main/src/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java rename to main/src/test/java/io/split/android/client/storage/general/GeneralInfoStorageImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java b/main/src/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java rename to main/src/test/java/io/split/android/client/storage/impressions/ImpressionsStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java b/main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java rename to main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsCountStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java b/main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java rename to main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentImpressionsStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java b/main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java rename to main/src/test/java/io/split/android/client/storage/impressions/SqlitePersistentUniqueStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java b/main/src/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java rename to main/src/test/java/io/split/android/client/storage/mysegments/MySegmentsStorageContainerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java b/main/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java rename to main/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMyLargeSegmentsStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java b/main/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java rename to main/src/test/java/io/split/android/client/storage/mysegments/SqLitePersistentMySegmentsStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java b/main/src/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java rename to main/src/test/java/io/split/android/client/storage/rbs/LazyRuleBasedSegmentStorageProviderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java b/main/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java rename to main/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java b/main/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java rename to main/src/test/java/io/split/android/client/storage/rbs/RuleBasedSegmentStorageProducerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java b/main/src/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java rename to main/src/test/java/io/split/android/client/storage/rbs/SnapshotLoaderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java b/main/src/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java rename to main/src/test/java/io/split/android/client/storage/rbs/SqLitePersistentRuleBasedSegmentStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java b/main/src/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java rename to main/src/test/java/io/split/android/client/storage/rbs/SqLiteRuleBasedSegmentsPersistentStorageProviderTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/rbs/UpdaterTest.java b/main/src/test/java/io/split/android/client/storage/rbs/UpdaterTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/rbs/UpdaterTest.java rename to main/src/test/java/io/split/android/client/storage/rbs/UpdaterTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java b/main/src/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java rename to main/src/test/java/io/split/android/client/storage/splits/SplitEntityToSplitTransformerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java b/main/src/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java rename to main/src/test/java/io/split/android/client/storage/splits/SplitToSplitEntityTransformerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java b/main/src/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java rename to main/src/test/java/io/split/android/client/storage/splits/SqLitePersistentSplitsStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java b/main/src/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java rename to main/src/test/java/io/split/android/client/telemetry/TelemetryConfigBodySerializerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java b/main/src/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java rename to main/src/test/java/io/split/android/client/telemetry/TelemetryHelperImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java b/main/src/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java rename to main/src/test/java/io/split/android/client/telemetry/TelemetryStatsBodySerializerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java b/main/src/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java rename to main/src/test/java/io/split/android/client/telemetry/TelemetrySynchronizerImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java b/main/src/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java rename to main/src/test/java/io/split/android/client/telemetry/storage/InMemoryTelemetryStorageTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java b/main/src/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java rename to main/src/test/java/io/split/android/client/telemetry/storage/TelemetryConfigProviderImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java b/main/src/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java rename to main/src/test/java/io/split/android/client/telemetry/storage/TelemetryStatsProviderImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/utils/HttpProxySerializerTest.java b/main/src/test/java/io/split/android/client/utils/HttpProxySerializerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/utils/HttpProxySerializerTest.java rename to main/src/test/java/io/split/android/client/utils/HttpProxySerializerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/utils/JsonTest.java b/main/src/test/java/io/split/android/client/utils/JsonTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/utils/JsonTest.java rename to main/src/test/java/io/split/android/client/utils/JsonTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/utils/PartitionTest.java b/main/src/test/java/io/split/android/client/utils/PartitionTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/utils/PartitionTest.java rename to main/src/test/java/io/split/android/client/utils/PartitionTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/utils/RepeatTest.java b/main/src/test/java/io/split/android/client/utils/RepeatTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/utils/RepeatTest.java rename to main/src/test/java/io/split/android/client/utils/RepeatTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/utils/SplitClientImplFactory.java b/main/src/test/java/io/split/android/client/utils/SplitClientImplFactory.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/utils/SplitClientImplFactory.java rename to main/src/test/java/io/split/android/client/utils/SplitClientImplFactory.java diff --git a/android-client-main/src/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java b/main/src/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java rename to main/src/test/java/io/split/android/client/utils/deserializer/EventDeserializerTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java b/main/src/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java rename to main/src/test/java/io/split/android/client/validators/ApiKeyValidatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java b/main/src/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java rename to main/src/test/java/io/split/android/client/validators/AttributesValidatorImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/validators/EventTypeNameHelper.java b/main/src/test/java/io/split/android/client/validators/EventTypeNameHelper.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/validators/EventTypeNameHelper.java rename to main/src/test/java/io/split/android/client/validators/EventTypeNameHelper.java diff --git a/android-client-main/src/test/java/io/split/android/client/validators/EventValidatorTest.java b/main/src/test/java/io/split/android/client/validators/EventValidatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/validators/EventValidatorTest.java rename to main/src/test/java/io/split/android/client/validators/EventValidatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java b/main/src/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java rename to main/src/test/java/io/split/android/client/validators/FlagSetsValidatorImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/validators/KeyValidatorTest.java b/main/src/test/java/io/split/android/client/validators/KeyValidatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/validators/KeyValidatorTest.java rename to main/src/test/java/io/split/android/client/validators/KeyValidatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java b/main/src/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java rename to main/src/test/java/io/split/android/client/validators/PrefixValidatorImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/validators/SplitValidatorTest.java b/main/src/test/java/io/split/android/client/validators/SplitValidatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/validators/SplitValidatorTest.java rename to main/src/test/java/io/split/android/client/validators/SplitValidatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java b/main/src/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java rename to main/src/test/java/io/split/android/client/validators/TreatmentManagerFactoryImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java b/main/src/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java rename to main/src/test/java/io/split/android/client/validators/TreatmentManagerFallbackTreatmentsTest.java diff --git a/android-client-main/src/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java b/main/src/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java rename to main/src/test/java/io/split/android/client/validators/TreatmentManagerHelperTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/ConditionsTestUtil.java b/main/src/test/java/io/split/android/engine/ConditionsTestUtil.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/ConditionsTestUtil.java rename to main/src/test/java/io/split/android/engine/ConditionsTestUtil.java diff --git a/android-client-main/src/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java b/main/src/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java rename to main/src/test/java/io/split/android/engine/experiments/DefaultConditionsProviderTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/experiments/EvaluatorTest.java b/main/src/test/java/io/split/android/engine/experiments/EvaluatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/experiments/EvaluatorTest.java rename to main/src/test/java/io/split/android/engine/experiments/EvaluatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java b/main/src/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java rename to main/src/test/java/io/split/android/engine/experiments/PrerequisitesEvaluatorTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java b/main/src/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java rename to main/src/test/java/io/split/android/engine/experiments/RuleBasedSegmentParserTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/experiments/SplitParserTest.java b/main/src/test/java/io/split/android/engine/experiments/SplitParserTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/experiments/SplitParserTest.java rename to main/src/test/java/io/split/android/engine/experiments/SplitParserTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java b/main/src/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java rename to main/src/test/java/io/split/android/engine/experiments/UnsupportedMatcherSplitParserTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/AllKeysMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/AttributeMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/BetweenMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/BooleanMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/CombiningMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/EqualToMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/GreaterThanOrEqualToMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/InRuleBasedSegmentMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/LessThanOrEqualToMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/NegatableMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/PrerequisitesMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/TransformersTest.java b/main/src/test/java/io/split/android/engine/matchers/TransformersTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/TransformersTest.java rename to main/src/test/java/io/split/android/engine/matchers/TransformersTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/collections/ContainsAllOfSetMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/collections/ContainsAnyOfSetMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/collections/EqualToSetMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/collections/PartOfSetMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/semver/BetweenSemverMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/semver/EqualToSemverMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/semver/GreaterThanOrEqualToSemverMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/semver/InListSemverMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/semver/LessThanOrEqualToSemverMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/semver/SemverTest.java b/main/src/test/java/io/split/android/engine/matchers/semver/SemverTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/semver/SemverTest.java rename to main/src/test/java/io/split/android/engine/matchers/semver/SemverTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/strings/ContainsAnyOfMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/strings/EndsWithAnyOfMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/strings/RegularExpressionMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/strings/StartsWithAnyOfMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java b/main/src/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java rename to main/src/test/java/io/split/android/engine/matchers/strings/WhitelistMatcherTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java b/main/src/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java rename to main/src/test/java/io/split/android/engine/scheduler/PausableScheduledThreadPoolExecutorImplTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/splitter/HashConsistencyTest.java b/main/src/test/java/io/split/android/engine/splitter/HashConsistencyTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/splitter/HashConsistencyTest.java rename to main/src/test/java/io/split/android/engine/splitter/HashConsistencyTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/splitter/HashingTest.java b/main/src/test/java/io/split/android/engine/splitter/HashingTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/splitter/HashingTest.java rename to main/src/test/java/io/split/android/engine/splitter/HashingTest.java diff --git a/android-client-main/src/test/java/io/split/android/engine/splitter/MyHash.java b/main/src/test/java/io/split/android/engine/splitter/MyHash.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/splitter/MyHash.java rename to main/src/test/java/io/split/android/engine/splitter/MyHash.java diff --git a/android-client-main/src/test/java/io/split/android/engine/splitter/SplitterTest.java b/main/src/test/java/io/split/android/engine/splitter/SplitterTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/engine/splitter/SplitterTest.java rename to main/src/test/java/io/split/android/engine/splitter/SplitterTest.java diff --git a/android-client-main/src/test/java/io/split/android/fake/ExecutorServiceMock.java b/main/src/test/java/io/split/android/fake/ExecutorServiceMock.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/fake/ExecutorServiceMock.java rename to main/src/test/java/io/split/android/fake/ExecutorServiceMock.java diff --git a/android-client-main/src/test/java/io/split/android/fake/ImpressionListenerMock.java b/main/src/test/java/io/split/android/fake/ImpressionListenerMock.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/fake/ImpressionListenerMock.java rename to main/src/test/java/io/split/android/fake/ImpressionListenerMock.java diff --git a/android-client-main/src/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java b/main/src/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java rename to main/src/test/java/io/split/android/fake/MemoryUtilsNoMemoryStub.java diff --git a/android-client-main/src/test/java/io/split/android/fake/SplitEventsManagerStub.java b/main/src/test/java/io/split/android/fake/SplitEventsManagerStub.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/fake/SplitEventsManagerStub.java rename to main/src/test/java/io/split/android/fake/SplitEventsManagerStub.java diff --git a/android-client-main/src/test/java/io/split/android/fake/SplitTaskExecutorStub.java b/main/src/test/java/io/split/android/fake/SplitTaskExecutorStub.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/fake/SplitTaskExecutorStub.java rename to main/src/test/java/io/split/android/fake/SplitTaskExecutorStub.java diff --git a/android-client-main/src/test/java/io/split/android/fake/SseClientMock.java b/main/src/test/java/io/split/android/fake/SseClientMock.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/fake/SseClientMock.java rename to main/src/test/java/io/split/android/fake/SseClientMock.java diff --git a/android-client-main/src/test/java/io/split/android/helpers/FileHelper.java b/main/src/test/java/io/split/android/helpers/FileHelper.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/helpers/FileHelper.java rename to main/src/test/java/io/split/android/helpers/FileHelper.java diff --git a/android-client-main/src/test/java/io/split/android/helpers/ResourcesFileStorage.java b/main/src/test/java/io/split/android/helpers/ResourcesFileStorage.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/helpers/ResourcesFileStorage.java rename to main/src/test/java/io/split/android/helpers/ResourcesFileStorage.java diff --git a/android-client-main/src/test/java/io/split/android/helpers/SplitHelper.java b/main/src/test/java/io/split/android/helpers/SplitHelper.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/helpers/SplitHelper.java rename to main/src/test/java/io/split/android/helpers/SplitHelper.java diff --git a/android-client-main/src/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java b/main/src/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java rename to main/src/test/java/io/split/android/http/SplitHttpHeadersBuilderTest.java diff --git a/android-client-main/src/test/java/io/split/android/http/URIBuilderTest.java b/main/src/test/java/io/split/android/http/URIBuilderTest.java similarity index 100% rename from android-client-main/src/test/java/io/split/android/http/URIBuilderTest.java rename to main/src/test/java/io/split/android/http/URIBuilderTest.java diff --git a/android-client-main/src/test/resources/README.txt b/main/src/test/resources/README.txt similarity index 100% rename from android-client-main/src/test/resources/README.txt rename to main/src/test/resources/README.txt diff --git a/android-client-main/src/test/resources/between_semver.csv b/main/src/test/resources/between_semver.csv similarity index 100% rename from android-client-main/src/test/resources/between_semver.csv rename to main/src/test/resources/between_semver.csv diff --git a/android-client-main/src/test/resources/equal_to_semver.csv b/main/src/test/resources/equal_to_semver.csv similarity index 100% rename from android-client-main/src/test/resources/equal_to_semver.csv rename to main/src/test/resources/equal_to_semver.csv diff --git a/android-client-main/src/test/resources/impressions_1.json b/main/src/test/resources/impressions_1.json similarity index 100% rename from android-client-main/src/test/resources/impressions_1.json rename to main/src/test/resources/impressions_1.json diff --git a/android-client-main/src/test/resources/invalid_semantic_versions.csv b/main/src/test/resources/invalid_semantic_versions.csv similarity index 100% rename from android-client-main/src/test/resources/invalid_semantic_versions.csv rename to main/src/test/resources/invalid_semantic_versions.csv diff --git a/android-client-main/src/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv b/main/src/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv similarity index 100% rename from android-client-main/src/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv rename to main/src/test/resources/legacy-hash-sample-data-non-alpha-numeric.csv diff --git a/android-client-main/src/test/resources/legacy-hash-sample-data.csv b/main/src/test/resources/legacy-hash-sample-data.csv similarity index 100% rename from android-client-main/src/test/resources/legacy-hash-sample-data.csv rename to main/src/test/resources/legacy-hash-sample-data.csv diff --git a/android-client-main/src/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv b/main/src/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv similarity index 100% rename from android-client-main/src/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv rename to main/src/test/resources/murmur3-sample-data-non-alpha-numeric-v2.csv diff --git a/android-client-main/src/test/resources/murmur3-sample-data-non-alpha-numeric.csv b/main/src/test/resources/murmur3-sample-data-non-alpha-numeric.csv similarity index 100% rename from android-client-main/src/test/resources/murmur3-sample-data-non-alpha-numeric.csv rename to main/src/test/resources/murmur3-sample-data-non-alpha-numeric.csv diff --git a/android-client-main/src/test/resources/murmur3-sample-data-v2.csv b/main/src/test/resources/murmur3-sample-data-v2.csv similarity index 100% rename from android-client-main/src/test/resources/murmur3-sample-data-v2.csv rename to main/src/test/resources/murmur3-sample-data-v2.csv diff --git a/android-client-main/src/test/resources/murmur3-sample-data.csv b/main/src/test/resources/murmur3-sample-data.csv similarity index 100% rename from android-client-main/src/test/resources/murmur3-sample-data.csv rename to main/src/test/resources/murmur3-sample-data.csv diff --git a/android-client-main/src/test/resources/murmur3-sample-double-treatment-users.csv b/main/src/test/resources/murmur3-sample-double-treatment-users.csv similarity index 100% rename from android-client-main/src/test/resources/murmur3-sample-double-treatment-users.csv rename to main/src/test/resources/murmur3-sample-double-treatment-users.csv diff --git a/android-client-main/src/test/resources/murmur3_64_uuids.csv b/main/src/test/resources/murmur3_64_uuids.csv similarity index 100% rename from android-client-main/src/test/resources/murmur3_64_uuids.csv rename to main/src/test/resources/murmur3_64_uuids.csv diff --git a/android-client-main/src/test/resources/split_changes_1.json b/main/src/test/resources/split_changes_1.json similarity index 100% rename from android-client-main/src/test/resources/split_changes_1.json rename to main/src/test/resources/split_changes_1.json diff --git a/android-client-main/src/test/resources/split_changes_1_updated.json b/main/src/test/resources/split_changes_1_updated.json similarity index 100% rename from android-client-main/src/test/resources/split_changes_1_updated.json rename to main/src/test/resources/split_changes_1_updated.json diff --git a/android-client-main/src/test/resources/split_changes_legacy.json b/main/src/test/resources/split_changes_legacy.json similarity index 100% rename from android-client-main/src/test/resources/split_changes_legacy.json rename to main/src/test/resources/split_changes_legacy.json diff --git a/android-client-main/src/test/resources/split_changes_prerequisites.json b/main/src/test/resources/split_changes_prerequisites.json similarity index 100% rename from android-client-main/src/test/resources/split_changes_prerequisites.json rename to main/src/test/resources/split_changes_prerequisites.json diff --git a/android-client-main/src/test/resources/split_changes_small.json b/main/src/test/resources/split_changes_small.json similarity index 100% rename from android-client-main/src/test/resources/split_changes_small.json rename to main/src/test/resources/split_changes_small.json diff --git a/android-client-main/src/test/resources/split_changes_with_prerequisites.json b/main/src/test/resources/split_changes_with_prerequisites.json similarity index 100% rename from android-client-main/src/test/resources/split_changes_with_prerequisites.json rename to main/src/test/resources/split_changes_with_prerequisites.json diff --git a/android-client-main/src/test/resources/splits.yaml b/main/src/test/resources/splits.yaml similarity index 100% rename from android-client-main/src/test/resources/splits.yaml rename to main/src/test/resources/splits.yaml diff --git a/android-client-main/src/test/resources/splits_incorrect_value.yaml b/main/src/test/resources/splits_incorrect_value.yaml similarity index 100% rename from android-client-main/src/test/resources/splits_incorrect_value.yaml rename to main/src/test/resources/splits_incorrect_value.yaml diff --git a/android-client-main/src/test/resources/splits_missing_name.yaml b/main/src/test/resources/splits_missing_name.yaml similarity index 100% rename from android-client-main/src/test/resources/splits_missing_name.yaml rename to main/src/test/resources/splits_missing_name.yaml diff --git a/android-client-main/src/test/resources/splits_missing_treatment.yaml b/main/src/test/resources/splits_missing_treatment.yaml similarity index 100% rename from android-client-main/src/test/resources/splits_missing_treatment.yaml rename to main/src/test/resources/splits_missing_treatment.yaml diff --git a/android-client-main/src/test/resources/splits_no_yaml.yaml b/main/src/test/resources/splits_no_yaml.yaml similarity index 100% rename from android-client-main/src/test/resources/splits_no_yaml.yaml rename to main/src/test/resources/splits_no_yaml.yaml diff --git a/android-client-main/src/test/resources/tracks_1.json b/main/src/test/resources/tracks_1.json similarity index 100% rename from android-client-main/src/test/resources/tracks_1.json rename to main/src/test/resources/tracks_1.json diff --git a/android-client-main/src/test/resources/valid_semantic_versions.csv b/main/src/test/resources/valid_semantic_versions.csv similarity index 100% rename from android-client-main/src/test/resources/valid_semantic_versions.csv rename to main/src/test/resources/valid_semantic_versions.csv diff --git a/settings.gradle b/settings.gradle index f5abf6e55..0f38584f2 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,4 @@ rootProject.name = 'android-client' -include ':android-client-logger' -include ':android-client-main' +include ':logger' +include ':main' From b6eb501d4bedc85ae6520889a7564af15e7fbd46 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Mon, 10 Nov 2025 14:31:21 -0300 Subject: [PATCH 15/26] Clean up build.gradle --- build.gradle | 64 +++------------------------------------------------- 1 file changed, 3 insertions(+), 61 deletions(-) diff --git a/build.gradle b/build.gradle index 654c4af9f..4b71137fc 100644 --- a/build.gradle +++ b/build.gradle @@ -8,9 +8,6 @@ buildscript { } dependencies { - // AGP 9.0.0-alpha13 requires Gradle 9.0 and has a new minSdk API, but builds hang - // Staying with stable AGP 8.9.1 for now -// classpath 'com.android.tools.build:gradle:8.9.1' classpath 'com.android.tools.build:gradle:9.0.0-alpha13' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0' classpath "com.vanniktech:gradle-maven-publish-plugin:0.34.0" @@ -20,9 +17,6 @@ buildscript { apply plugin: 'com.android.fused-library' apply plugin: 'com.vanniktech.maven.publish' -// spec.gradle and jacoco.gradle removed - not compatible with fused library -// Note: Signing plugin applied conditionally to avoid conflicts with fused-library plugin - group = 'io.split.client' ext { @@ -45,7 +39,6 @@ def coverageExclusions = [ androidFusedLibrary { namespace = 'io.split.android.android_client' minSdk { version = release(19) } - // Note: AGP 9.0.0-alpha13 uses new API: minSdk { version = release(19) } } // Workaround: Fused library plugin doesn't include consumer ProGuard files in AAR @@ -88,40 +81,6 @@ repositories { mavenCentral() } -// Task to generate deps.txt with dependency tree -tasks.register('generateDepsFile') { - description = 'Generates deps.txt file with the dependency tree' - group = 'documentation' - - doLast { - def depsFile = file("${projectDir}/deps.txt") - def output = new StringBuilder() - - output.append("------------------------------------------------------------\n") - output.append("Project '${project.path}'\n") - output.append("------------------------------------------------------------\n\n") - - // For fused library, get dependencies from the included modules - output.append("Fused Library Dependencies (from included modules)\n") - output.append("=".repeat(60) + "\n\n") - - // Get dependencies from main - def mainProject = project(':main') - def config = mainProject.configurations.findByName('releaseRuntimeClasspath') - - if (config != null) { - output.append("releaseRuntimeClasspath - Runtime classpath of compilation 'release' (target (androidJvm)).\n") - config.resolvedConfiguration.firstLevelModuleDependencies.each { dep -> - output.append("+--- ${dep.moduleGroup}:${dep.moduleName}:${dep.moduleVersion}\n") - printDependencyTree(dep, output, "| ", true) - } - } - - depsFile.text = output.toString() - println "Generated deps.txt at ${depsFile.absolutePath}" - } -} - void printDependencyTree(dependency, output, prefix, isLast) { dependency.children.eachWithIndex { child, index -> def isLastChild = (index == dependency.children.size() - 1) @@ -167,21 +126,15 @@ def splitPOM = { } } -// Note: sourcesJar and javadocJar tasks removed - fused library has no source sets -// Tests are now in submodules - // Configure maven publish plugin - similar to old build.gradle but adapted for fused library // The plugin should auto-detect Android Fused Library, but we configure coordinates and POM mavenPublishing { coordinates("io.split.client", "android-client", splitVersion) pom(splitPOM) publishToMavenCentral(false) - // Note: Plugin auto-detects AndroidFusedLibrary - // For AGP 9.0.0-alpha9+, fusedLibraryComponent already includes sources, - // but the plugin might still add emptySourcesJar, causing a conflict } -// Manual GPG signing task - Gradle signing plugin doesn't work with fused library +// GPG signing task tasks.register('signArtifacts') { description = 'Signs all Maven artifacts with GPG' group = 'publishing' @@ -220,7 +173,7 @@ tasks.register('signArtifacts') { def artifactsToSign = [] artifactDir.eachFile { file -> def name = file.name - // Sign .aar, .jar, .pom, and .module files, but skip already signed .asc files + // Sign .aar, .jar, .pom, and .module files if ((name.endsWith('.aar') || name.endsWith('.jar') || name.endsWith('.pom') || name.endsWith('.module')) && !name.endsWith('.asc')) { artifactsToSign << file } @@ -293,8 +246,6 @@ tasks.register('signArtifacts') { println "Signing: ${artifact.name}" try { - // Use ProcessBuilder for GPG execution (avoids Gradle exec issues) - // Note: Using default GPG keyring (GPG 2.1+ ignores --keyring option) def cmd = [ gpgCommand, '--batch', @@ -376,21 +327,13 @@ afterEvaluate { } } -// Workaround: For AGP 9.0.0-alpha9+, fusedLibraryComponent already includes sources -// The maven publish plugin should not add emptySourcesJar for AGP >= alpha9, -// but if it does, we need to prevent the duplicate. The issue is that the plugin -// condition checks CURRENT_AGP_VERSION < AndroidPluginVersion(9, 0, 0).alpha(9), -// but for AGP 9.0.0-alpha13, this should be false, so withJavaSourcesJar shouldn't be called. -// However, if emptySourcesJar is still being created, we'll suppress publication of duplicate artifacts. afterEvaluate { // Check if we have both merged sources and empty sources def emptySourcesJarTask = tasks.findByName("emptySourcesJar") if (emptySourcesJarTask != null) { - // The plugin shouldn't have created this for AGP >= alpha9, but if it did, - // we need to ensure only one sources artifact is published + // Ensure only one sources artifact is published publishing.publications.withType(MavenPublication) { publication -> if (publication.name == "maven") { - // Suppress the emptySourcesJar from being published // Keep only the sources from fusedLibraryComponent publication.artifacts.removeAll { artifact -> // Remove artifacts that match the emptySourcesJar task output @@ -400,7 +343,6 @@ afterEvaluate { def emptySourcesFile = emptySourcesJarTask.archiveFile.get().asFile artifactFile == emptySourcesFile } else { - // If we can't determine the file, check by classifier and if it's not from component artifact.classifier == "sources" && artifact.extension == "jar" && !publication.artifacts.any { it != artifact && it.classifier == "sources" && From 4b13de6258303eb60b9694c8cfa5514d82f0f031 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Mon, 10 Nov 2025 14:39:45 -0300 Subject: [PATCH 16/26] Clean up --- deps.txt | 1540 ----------------- main/build.gradle.tmp | 285 --- .../database/DatabaseInitializationTest.java | 2 - 3 files changed, 1827 deletions(-) delete mode 100644 deps.txt delete mode 100644 main/build.gradle.tmp diff --git a/deps.txt b/deps.txt deleted file mode 100644 index f975a1ada..000000000 --- a/deps.txt +++ /dev/null @@ -1,1540 +0,0 @@ ------------------------------------------------------------- -Project ':' ------------------------------------------------------------- - -Fused Library Dependencies (from included modules) -============================================================ - -releaseRuntimeClasspath - Runtime classpath of compilation 'release' (target (androidJvm)). -+--- io.split.client:android-client-logger:5.5.0-alpha.1 -| \--- androidx.annotation:annotation:1.2.0 -+--- androidx.room:room-runtime:2.4.3 -| +--- androidx.room:room-common:2.4.3 -| | \--- androidx.annotation:annotation:1.2.0 -| +--- androidx.sqlite:sqlite-framework:2.2.0 -| | +--- androidx.sqlite:sqlite:2.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | \--- androidx.annotation:annotation:1.2.0 -| +--- androidx.sqlite:sqlite:2.2.0 -| | \--- androidx.annotation:annotation:1.2.0 -| +--- androidx.arch.core:core-runtime:2.1.0 -| | +--- androidx.arch.core:core-common:2.1.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | \--- androidx.annotation:annotation:1.2.0 -| \--- androidx.annotation:annotation-experimental:1.1.0 -+--- androidx.work:work-runtime:2.7.1 -| +--- androidx.room:room-runtime:2.4.3 -| | +--- androidx.room:room-common:2.4.3 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.sqlite:sqlite-framework:2.2.0 -| | | +--- androidx.sqlite:sqlite:2.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.sqlite:sqlite:2.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.arch.core:core-runtime:2.1.0 -| | | +--- androidx.arch.core:core-common:2.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | \--- androidx.annotation:annotation-experimental:1.1.0 -| +--- androidx.sqlite:sqlite-framework:2.2.0 -| | +--- androidx.sqlite:sqlite:2.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | \--- androidx.annotation:annotation:1.2.0 -| +--- androidx.sqlite:sqlite:2.2.0 -| | \--- androidx.annotation:annotation:1.2.0 -| +--- androidx.core:core:1.6.0 -| | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.arch.core:core-common:2.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | +--- androidx.collection:collection:1.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.collection:collection:1.0.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.annotation:annotation:1.2.0 -| | \--- androidx.annotation:annotation-experimental:1.1.0 -| +--- androidx.startup:startup-runtime:1.1.1 -| | +--- androidx.tracing:tracing:1.0.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | \--- androidx.annotation:annotation:1.2.0 -| +--- androidx.lifecycle:lifecycle-service:2.1.0 -| | \--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | +--- androidx.arch.core:core-runtime:2.1.0 -| | | +--- androidx.arch.core:core-common:2.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.arch.core:core-common:2.1.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | \--- androidx.annotation:annotation:1.2.0 -| | \--- androidx.annotation:annotation:1.2.0 -| +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -| | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 -| | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.arch.core:core-common:2.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.arch.core:core-runtime:2.1.0 -| | | +--- androidx.arch.core:core-common:2.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | \--- androidx.arch.core:core-common:2.1.0 -| | \--- androidx.annotation:annotation:1.2.0 -| +--- androidx.annotation:annotation-experimental:1.1.0 -| \--- com.google.guava:listenablefuture:1.0 -+--- androidx.lifecycle:lifecycle-process:2.5.1 -| +--- androidx.startup:startup-runtime:1.1.1 -| | +--- androidx.tracing:tracing:1.0.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | \--- androidx.annotation:annotation:1.2.0 -| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | +--- androidx.arch.core:core-runtime:2.1.0 -| | | +--- androidx.arch.core:core-common:2.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.arch.core:core-common:2.1.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | \--- androidx.annotation:annotation:1.2.0 -| | \--- androidx.annotation:annotation:1.2.0 -| \--- androidx.annotation:annotation:1.2.0 -+--- androidx.annotation:annotation:1.2.0 -+--- com.google.code.gson:gson:2.10.1 -+--- org.yaml:snakeyaml:2.2 -+--- com.google.android.gms:play-services-base:18.2.0 -| +--- com.google.android.gms:play-services-tasks:18.0.2 -| | \--- com.google.android.gms:play-services-basement:18.1.0 -| | +--- androidx.fragment:fragment:1.0.0 -| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 -| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 -| | | | | +--- androidx.loader:loader:1.0.0 -| | | | | | +--- androidx.core:core:1.6.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | +--- androidx.documentfile:documentfile:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.print:print:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.viewpager:viewpager:1.0.0 -| | | | | +--- androidx.customview:customview:1.0.0 -| | | | | | +--- androidx.core:core:1.6.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -| | | | | +--- androidx.customview:customview:1.0.0 -| | | | | | +--- androidx.core:core:1.6.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -| | | | | +--- androidx.customview:customview:1.0.0 -| | | | | | +--- androidx.core:core:1.6.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 -| | | | | +--- androidx.customview:customview:1.0.0 -| | | | | | +--- androidx.core:core:1.6.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.customview:customview:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | +--- androidx.interpolator:interpolator:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | +--- androidx.interpolator:interpolator:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.cursoradapter:cursoradapter:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 -| | | | +--- androidx.loader:loader:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | +--- androidx.documentfile:documentfile:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.print:print:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.loader:loader:1.0.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.arch.core:core-common:2.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.core:core:1.6.0 -| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.collection:collection:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.core:core:1.6.0 -| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | +--- androidx.collection:collection:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.collection:collection:1.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | \--- androidx.collection:collection:1.0.0 -| | \--- androidx.annotation:annotation:1.2.0 -| +--- com.google.android.gms:play-services-basement:18.1.0 -| | +--- androidx.fragment:fragment:1.0.0 -| | | +--- androidx.legacy:legacy-support-core-ui:1.0.0 -| | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 -| | | | | +--- androidx.loader:loader:1.0.0 -| | | | | | +--- androidx.core:core:1.6.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | +--- androidx.documentfile:documentfile:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.print:print:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.viewpager:viewpager:1.0.0 -| | | | | +--- androidx.customview:customview:1.0.0 -| | | | | | +--- androidx.core:core:1.6.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -| | | | | +--- androidx.customview:customview:1.0.0 -| | | | | | +--- androidx.core:core:1.6.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -| | | | | +--- androidx.customview:customview:1.0.0 -| | | | | | +--- androidx.core:core:1.6.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 -| | | | | +--- androidx.customview:customview:1.0.0 -| | | | | | +--- androidx.core:core:1.6.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.customview:customview:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | +--- androidx.interpolator:interpolator:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | +--- androidx.interpolator:interpolator:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.cursoradapter:cursoradapter:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 -| | | | +--- androidx.loader:loader:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | +--- androidx.documentfile:documentfile:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.print:print:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.loader:loader:1.0.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.arch.core:core-common:2.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.core:core:1.6.0 -| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.collection:collection:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.core:core:1.6.0 -| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | +--- androidx.collection:collection:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.collection:collection:1.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | \--- androidx.collection:collection:1.0.0 -| | \--- androidx.annotation:annotation:1.2.0 -| +--- androidx.fragment:fragment:1.0.0 -| | +--- androidx.legacy:legacy-support-core-ui:1.0.0 -| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 -| | | | +--- androidx.loader:loader:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | +--- androidx.documentfile:documentfile:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.print:print:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.viewpager:viewpager:1.0.0 -| | | | +--- androidx.customview:customview:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.coordinatorlayout:coordinatorlayout:1.0.0 -| | | | +--- androidx.customview:customview:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.drawerlayout:drawerlayout:1.0.0 -| | | | +--- androidx.customview:customview:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.slidingpanelayout:slidingpanelayout:1.0.0 -| | | | +--- androidx.customview:customview:1.0.0 -| | | | | +--- androidx.core:core:1.6.0 -| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.customview:customview:1.0.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.swiperefreshlayout:swiperefreshlayout:1.0.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | +--- androidx.interpolator:interpolator:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.asynclayoutinflater:asynclayoutinflater:1.0.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.core:core:1.6.0 -| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.collection:collection:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | +--- androidx.interpolator:interpolator:1.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.cursoradapter:cursoradapter:1.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.legacy:legacy-support-core-utils:1.0.0 -| | | +--- androidx.loader:loader:1.0.0 -| | | | +--- androidx.core:core:1.6.0 -| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 -| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.arch.core:core-common:2.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.core:core:1.6.0 -| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.collection:collection:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | +--- androidx.documentfile:documentfile:1.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.print:print:1.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.loader:loader:1.0.0 -| | | +--- androidx.core:core:1.6.0 -| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | | +--- androidx.collection:collection:1.0.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.collection:collection:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | | +--- androidx.lifecycle:lifecycle-livedata:2.1.0 -| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.1.0 -| | | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.arch.core:core-common:2.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.core:core:1.6.0 -| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | | +--- androidx.collection:collection:1.0.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.collection:collection:1.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation-experimental:1.1.0 -| | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | \--- androidx.annotation:annotation:1.2.0 -| +--- androidx.core:core:1.6.0 -| | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 -| | | +--- androidx.arch.core:core-runtime:2.1.0 -| | | | +--- androidx.arch.core:core-common:2.1.0 -| | | | | \--- androidx.annotation:annotation:1.2.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.arch.core:core-common:2.1.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | +--- androidx.lifecycle:lifecycle-common:2.5.1 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 -| | | +--- androidx.collection:collection:1.0.0 -| | | | \--- androidx.annotation:annotation:1.2.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.collection:collection:1.0.0 -| | | \--- androidx.annotation:annotation:1.2.0 -| | +--- androidx.annotation:annotation:1.2.0 -| | \--- androidx.annotation:annotation-experimental:1.1.0 -| \--- androidx.collection:collection:1.0.0 -| \--- androidx.annotation:annotation:1.2.0 -+--- androidx.multidex:multidex:2.0.1 diff --git a/main/build.gradle.tmp b/main/build.gradle.tmp deleted file mode 100644 index 6a27871ee..000000000 --- a/main/build.gradle.tmp +++ /dev/null @@ -1,285 +0,0 @@ -buildscript { - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:8.9.3' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0' - classpath "com.vanniktech:gradle-maven-publish-plugin:0.33.0" - } -} - -apply plugin: 'com.android.library' -apply plugin: 'signing' -apply plugin: 'kotlin-android' -apply plugin: 'com.vanniktech.maven.publish' -apply from: 'spec.gradle' -apply from: 'jacoco.gradle' - -ext { - splitVersion = '5.4.2-rc1' - jacocoVersion = '0.8.8' -} - -// Define exclusions for JaCoCo coverage -def coverageExclusions = [ - '**/R.class', - '**/R$*.class', - '**/BuildConfig.*', - '**/Manifest*.*', - '**/*Test*.*', - 'android/**/*.*' -] - -android { - compileSdk 33 - targetCompatibility = '1.8' - sourceCompatibility = '1.8' - - buildFeatures { - buildConfig true - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - defaultConfig { - - minSdk 19 - targetSdk 31 - multiDexEnabled true - - consumerProguardFiles 'split-proguard-rules.pro' - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - testInstrumentationRunnerArguments clearPackageData: 'true' - - javaCompileOptions { - annotationProcessorOptions { - arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] - } - } - - testOptions { - execution 'ANDROIDX_TEST_ORCHESTRATOR' - } - } - - configurations { - javadocDeps - } - - - testOptions { - unitTests.returnDefaultValues = true - - // Configure JaCoCo for all test tasks - unitTests.all { - jacoco { - includeNoLocationClasses = true - excludes = ['jdk.internal.*'] - } - } - } - - sourceSets { - String sharedTestDir = 'src/sharedTest/java' - test { - java.srcDirs += 'src/test/kotlin' - java.srcDirs += sharedTestDir - } - androidTest { - java.srcDirs += sharedTestDir - } - } - - buildTypes { - debug { - buildConfigField("String", "SPLIT_VERSION_NAME", "\"${splitVersion}\"") - buildConfigField("String", "FLAGS_SPEC", "\"${flagsSpec}\"") - } - release { - buildConfigField("String", "SPLIT_VERSION_NAME", "\"${splitVersion}\"") - buildConfigField("String", "FLAGS_SPEC", "\"${flagsSpec}\"") - } - } - namespace 'io.split.android.android_client' - lint { - abortOnError false - disable 'InvalidPackage' - } -} - -repositories { - google() - mavenCentral() -} - -tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { - kotlinOptions { - jvmTarget = "1.8" - } -} - -dependencies { - - def roomVersion = '2.4.3' - def workVersion = '2.7.1' - def lifecycleVersion = '2.5.1' - def annotationVersion = '1.2.0' - def gsonVersion = '2.10.1' - def guavaVersion = '32.1.3-android' - def snakeYamlVersion = '2.2' - def playServicesVersion = '18.2.0' - def multidexVersion = '2.0.1' - - def jUnitVersion = '4.13.2' - def mockitoVersion = '4.8.0' - def hamcrestVersion = '1.3' - def apacheCommonsVersion = '3.12.0' - def kotlinVer = '1.5.31' - def mockWebServerVersion = '4.12.0' - - def testRulesVersion = '1.4.0' - def jUnitExtVersion = '1.1.3' - def testRunnerVersion = '1.5.1' - def orchestratorVersion = '1.4.2' - - implementation fileTree(include: ['*.jar'], dir: 'libs') - - implementation "androidx.room:room-runtime:$roomVersion" - annotationProcessor "androidx.room:room-compiler:$roomVersion" - - implementation "androidx.work:work-runtime:$workVersion" - - implementation "androidx.lifecycle:lifecycle-process:$lifecycleVersion" - - implementation "androidx.annotation:annotation:$annotationVersion" - - implementation "com.google.code.gson:gson:$gsonVersion" - - implementation "org.yaml:snakeyaml:$snakeYamlVersion" - implementation "com.google.android.gms:play-services-base:$playServicesVersion" - implementation "androidx.multidex:multidex:$multidexVersion" - - // Test - testImplementation "junit:junit:$jUnitVersion" - testImplementation "org.mockito:mockito-core:$mockitoVersion" - testImplementation "org.mockito:mockito-inline:$mockitoVersion" - testImplementation "org.hamcrest:hamcrest-all:$hamcrestVersion" - testImplementation "org.apache.commons:commons-lang3:$apacheCommonsVersion" - testImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" - testImplementation "com.squareup.okhttp3:okhttp-tls:$mockWebServerVersion" - testImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVer" - testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlinVer" - testImplementation "com.google.guava:guava:$guavaVersion" - - androidTestImplementation "androidx.test:rules:$testRulesVersion" - androidTestImplementation "androidx.test.ext:junit:$jUnitExtVersion" - androidTestImplementation "androidx.test:runner:$testRunnerVersion" - androidTestUtil "androidx.test:orchestrator:$orchestratorVersion" - - androidTestImplementation "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" - androidTestImplementation "com.squareup.okhttp3:okhttp-tls:$mockWebServerVersion" - androidTestImplementation "androidx.room:room-testing:$roomVersion" - androidTestImplementation "androidx.work:work-testing:$workVersion" - androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVer" - androidTestImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlinVer" - androidTestImplementation "com.google.guava:guava:$guavaVersion" - androidTestImplementation "org.mockito:mockito-android:$mockitoVersion" -} - -def splitPOM = { - name = 'Split Android SDK' - description = 'Official Split Android SDK' - url = 'https://github.com/splitio/android-client' - - licenses { - license { - name = 'The Apache License, Version 2.0' - url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - - developers { - developer { - id = 'sdks' - email = 'sdks@split.io' - } - } - - scm { - connection = 'scm:git:git@github.com:splitio/android-client.git' - developerConnection = 'scm:git@github.com:splitio/android-client.git' - url = 'https://github.com/splitio/android-client' - } -} - -mavenPublishing { - coordinates("io.split.client", "android-client", splitVersion) - pom(splitPOM) - - publishToMavenCentral(false) - signAllPublications() -} - -task sourcesJar(type: Jar) { - archiveClassifier.set("sources") - from android.sourceSets.main.java.srcDirs -} - -task javadoc(type: Javadoc) { - failOnError false - source = android.sourceSets.main.java.srcDirs - classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) - classpath += configurations.javadocDeps -} - -task javadocJar(type: Jar, dependsOn: javadoc) { -// archiveClassifier = 'javadoc' - archiveClassifier.set("javadoc") - from javadoc.destinationDir -} - -artifacts { - archives sourcesJar - archives javadocJar -} - -task printReleaseDependenciesToFile { - doLast { - def outputFile = new File("$projectDir/deps.txt") - def processBuilder = new ProcessBuilder("./gradlew", ":android-client:dependencies", "--configuration", "releaseRuntimeClasspath", "-q") - - outputFile.parentFile.mkdirs() - outputFile.text = '' // Clear the file before writing - processBuilder.redirectOutput(outputFile) - processBuilder.directory(project.rootDir) - - try { - Process process = processBuilder.start() - process.waitFor() - - def filteredLines = outputFile.readLines().findAll { !it.contains("BUILD SUCCESSFUL") } - - // Write the filtered content back to the file - outputFile.withPrintWriter { writer -> - filteredLines.each(writer.&println) - } - } catch (Exception e) { - e.printStackTrace() - } - } -} - -preBuild.dependsOn printReleaseDependenciesToFile - -tasks.withType(Test) { - maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 - forkEvery = 100 - maxHeapSize = "1024m" -} diff --git a/main/src/androidTest/java/tests/database/DatabaseInitializationTest.java b/main/src/androidTest/java/tests/database/DatabaseInitializationTest.java index c4061104c..a0cac7e48 100644 --- a/main/src/androidTest/java/tests/database/DatabaseInitializationTest.java +++ b/main/src/androidTest/java/tests/database/DatabaseInitializationTest.java @@ -8,7 +8,6 @@ import androidx.test.platform.app.InstrumentationRegistry; -import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -21,7 +20,6 @@ import fake.HttpResponseMock; import fake.HttpResponseMockDispatcher; import fake.HttpStreamResponseMock; -import helper.DatabaseHelper; import helper.IntegrationHelper; import io.split.android.client.SplitClientConfig; import io.split.android.client.SplitFactory; From 2f9315af65ce87f432a709e2714f1b953d103415 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Mon, 10 Nov 2025 17:04:54 -0300 Subject: [PATCH 17/26] Remove .module --- build.gradle | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 4b71137fc..3af8bd2c1 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ apply plugin: 'com.vanniktech.maven.publish' group = 'io.split.client' ext { - splitVersion = '5.4.3-rc1' + splitVersion = '5.4.3-rc2' jacocoVersion = '0.8.8' } @@ -356,4 +356,15 @@ afterEvaluate { } } } + + // Disable Gradle Module Metadata (.module file) to avoid variant ambiguity + // Disable all GenerateModuleMetadata tasks by name pattern + tasks.configureEach { task -> + // Match tasks related to module metadata generation + if (task.name.startsWith('generateMetadataFileFor') || + task.name == 'generateModuleMetadata' || + task.class.name.endsWith('GenerateModuleMetadata')) { + task.enabled = false + } + } } From ed961c9b5787954e1f7ffdd6dfccf05bba38662c Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Tue, 11 Nov 2025 17:28:27 -0300 Subject: [PATCH 18/26] lint fix --- build.gradle | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 3af8bd2c1..48903a5cb 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ apply plugin: 'com.vanniktech.maven.publish' group = 'io.split.client' ext { - splitVersion = '5.4.3-rc2' + splitVersion = '5.4.3-rc3' jacocoVersion = '0.8.8' } @@ -41,6 +41,16 @@ androidFusedLibrary { minSdk { version = release(19) } } +// Disable lint JAR generation entirely - we have no custom lint rules +// Empty/malformed lint.jar causes consumer build failures +tasks.configureEach { task -> + if (task.name == 'packageLintJar' || + task.name.contains('LintJar') || + task.name.contains('LintModel')) { + task.enabled = false + } +} + // Workaround: Fused library plugin doesn't include consumer ProGuard files in AAR // Manually copy the merged consumer proguard file into the AAR afterEvaluate { @@ -67,6 +77,13 @@ afterEvaluate { into tempDir } + // Remove lint.jar if it exists (we don't have custom lint rules) + def lintJar = new File(tempDir, 'lint.jar') + if (lintJar.exists()) { + lintJar.delete() + println "Removed empty lint.jar from AAR" + } + // Repack AAR ant.zip(destfile: aarFile, basedir: tempDir) @@ -367,4 +384,15 @@ afterEvaluate { task.enabled = false } } + + // Remove empty lint.jar from publication to prevent consumer lint crashes + // The fused library plugin generates an empty lint.jar without proper Lint-Registry-v2 manifest + // This causes lint to crash when consumers use checkDependencies: true + publishing.publications.withType(MavenPublication) { publication -> + if (publication.name == "maven") { + publication.artifacts.removeAll { artifact -> + artifact.file?.name?.endsWith('lint.jar') ?: false + } + } + } } From e5801dee7f5b311c4c9651717bef2a4771a3b665 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Wed, 12 Nov 2025 14:48:54 -0300 Subject: [PATCH 19/26] Remove project/; refactor Gradle scripts --- build.gradle | 53 +++--- gradle/common-android-library.gradle | 26 +++ gradle/jacoco-android.gradle | 127 +++++++++++++ gradle/libs.versions.toml | 49 +++++ logger/build.gradle | 29 +-- main/build.gradle | 107 ++++------- .../client/storage/db/SplitRoomDatabase.java | 3 +- project/build.gradle | 35 ---- .../gradle/wrapper/gradle-wrapper.properties | 6 - project/gradlew | 172 ------------------ project/run_all_tests.sh | 5 - project/settings.gradle | 3 - 12 files changed, 266 insertions(+), 349 deletions(-) create mode 100644 gradle/common-android-library.gradle create mode 100644 gradle/jacoco-android.gradle create mode 100644 gradle/libs.versions.toml delete mode 100644 project/build.gradle delete mode 100644 project/gradle/wrapper/gradle-wrapper.properties delete mode 100755 project/gradlew delete mode 100755 project/run_all_tests.sh delete mode 100644 project/settings.gradle diff --git a/build.gradle b/build.gradle index 48903a5cb..5f013e2a0 100644 --- a/build.gradle +++ b/build.gradle @@ -20,12 +20,33 @@ apply plugin: 'com.vanniktech.maven.publish' group = 'io.split.client' ext { - splitVersion = '5.4.3-rc3' + splitVersion = '5.4.3-rc4' jacocoVersion = '0.8.8' } version = splitVersion +// Centralize repositories and coordinates for all subprojects +allprojects { + repositories { + google() + mavenCentral() + } + group = 'io.split.client' + version = splitVersion +} + +// Ensure Kotlin stdlib versions are consistent across modules +subprojects { + configurations.all { + resolutionStrategy { + force "org.jetbrains.kotlin:kotlin-stdlib:1.8.0" + force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0" + force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0" + } + } +} + // Define exclusions for JaCoCo coverage def coverageExclusions = [ '**/R.class', @@ -41,8 +62,6 @@ androidFusedLibrary { minSdk { version = release(19) } } -// Disable lint JAR generation entirely - we have no custom lint rules -// Empty/malformed lint.jar causes consumer build failures tasks.configureEach { task -> if (task.name == 'packageLintJar' || task.name.contains('LintJar') || @@ -51,7 +70,6 @@ tasks.configureEach { task -> } } -// Workaround: Fused library plugin doesn't include consumer ProGuard files in AAR // Manually copy the merged consumer proguard file into the AAR afterEvaluate { tasks.named('bundle').configure { @@ -98,20 +116,6 @@ repositories { mavenCentral() } -void printDependencyTree(dependency, output, prefix, isLast) { - dependency.children.eachWithIndex { child, index -> - def isLastChild = (index == dependency.children.size() - 1) - def connector = isLastChild ? "\\--- " : "+--- " - def nextPrefix = isLastChild ? " " : "| " - - output.append("${prefix}${connector}${child.moduleGroup}:${child.moduleName}:${child.moduleVersion}\n") - - if (!child.children.isEmpty()) { - printDependencyTree(child, output, prefix + nextPrefix, isLastChild) - } - } -} - dependencies { include project(':main') include project(':logger') @@ -143,8 +147,6 @@ def splitPOM = { } } -// Configure maven publish plugin - similar to old build.gradle but adapted for fused library -// The plugin should auto-detect Android Fused Library, but we configure coordinates and POM mavenPublishing { coordinates("io.split.client", "android-client", splitVersion) pom(splitPOM) @@ -157,7 +159,6 @@ tasks.register('signArtifacts') { group = 'publishing' doLast { - // Task 2: Determine artifact directory path def groupPath = project.group.toString().replace('.', '/') def artifactId = 'android-client' def versionStr = project.version.toString() @@ -171,11 +172,9 @@ tasks.register('signArtifacts') { return } - // Task 4: Read GPG configuration from gradle.properties def keyId = project.findProperty('signing.keyId') def password = project.findProperty('signing.password') - // Validate GPG configuration if (!keyId) { throw new GradleException("signing.keyId property is not set in gradle.properties") } @@ -186,7 +185,6 @@ tasks.register('signArtifacts') { println "Using GPG key ID: ${keyId}" println "Using default GPG keyring" - // Task 3: Find all artifacts to sign def artifactsToSign = [] artifactDir.eachFile { file -> def name = file.name @@ -204,7 +202,6 @@ tasks.register('signArtifacts') { println "Found ${artifactsToSign.size()} artifact(s) to sign:" artifactsToSign.each { println " - ${it.name}" } - // Task 7: Find GPG executable def gpgCommand = null def gpgPaths = [ '/opt/homebrew/bin/gpg', // macOS Homebrew on Apple Silicon - try first @@ -213,7 +210,6 @@ tasks.register('signArtifacts') { '/opt/local/bin/gpg' // MacPorts ] - // First, check if files exist for (path in gpgPaths) { def gpgFile = new File(path) if (gpgFile.exists() && gpgFile.canExecute()) { @@ -223,7 +219,6 @@ tasks.register('signArtifacts') { } } - // If not found in common paths, try using 'gpg' from PATH if (gpgCommand == null) { try { def process = new ProcessBuilder(['gpg', '--version']) @@ -250,7 +245,6 @@ tasks.register('signArtifacts') { println "Using GPG: ${gpgCommand}" - // Task 5: Sign each artifact artifactsToSign.each { artifact -> def ascFile = new File(artifact.parentFile, "${artifact.name}.asc") @@ -327,7 +321,6 @@ tasks.register('signArtifacts') { } } -// Task 6: Configure task dependencies // Make signArtifacts run after artifacts are published but before upload afterEvaluate { def signTask = tasks.findByName('signArtifacts') @@ -345,7 +338,6 @@ afterEvaluate { } afterEvaluate { - // Check if we have both merged sources and empty sources def emptySourcesJarTask = tasks.findByName("emptySourcesJar") if (emptySourcesJarTask != null) { // Ensure only one sources artifact is published @@ -375,7 +367,6 @@ afterEvaluate { } // Disable Gradle Module Metadata (.module file) to avoid variant ambiguity - // Disable all GenerateModuleMetadata tasks by name pattern tasks.configureEach { task -> // Match tasks related to module metadata generation if (task.name.startsWith('generateMetadataFileFor') || diff --git a/gradle/common-android-library.gradle b/gradle/common-android-library.gradle new file mode 100644 index 000000000..de5ee9713 --- /dev/null +++ b/gradle/common-android-library.gradle @@ -0,0 +1,26 @@ +android { + compileSdk 33 + defaultConfig { + minSdk 19 + targetSdk 31 + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +def kotlinCompileClass = null +try { + kotlinCompileClass = Class.forName('org.jetbrains.kotlin.gradle.tasks.KotlinCompile') +} catch (Throwable ignored) { + // Kotlin plugin not applied in this module; skip Kotlin options configuration +} +if (kotlinCompileClass != null) { + tasks.withType(kotlinCompileClass).configureEach { + kotlinOptions { + jvmTarget = "1.8" + } + } +} + diff --git a/gradle/jacoco-android.gradle b/gradle/jacoco-android.gradle new file mode 100644 index 000000000..e594c5d18 --- /dev/null +++ b/gradle/jacoco-android.gradle @@ -0,0 +1,127 @@ +apply plugin: 'jacoco' + +jacoco { + toolVersion = '0.8.8' +} + +tasks.withType(Test) { + jacoco { + includeNoLocationClasses = true + excludes = ['jdk.internal.*'] + enabled = true + } + systemProperty 'robolectric.enabledSdks', '28,29,30,31,32,33' + finalizedBy jacocoTestReport +} + +tasks.register('jacocoTestReport', JacocoReport) { + dependsOn 'testDebugUnitTest' + + reports { + xml.required = true + html.required = true + csv.required = false + } + + def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*'] + def classDirectoriesFiles = [] + def possibleClassDirs = [ + "${buildDir}/intermediates/javac/debug/classes", + "${buildDir}/intermediates/javac/debug/compileDebugJavaWithJavac/classes", + "${buildDir}/intermediates/runtime_library_classes_dir/debug", + "${buildDir}/intermediates/classes/debug", + "${buildDir}/classes/java/main", + "${buildDir}/tmp/kotlin-classes/debug" + ] + possibleClassDirs.each { dirPath -> + def dir = file(dirPath) + if (dir.exists() && dir.isDirectory()) { + def classDir = fileTree(dir: dirPath, excludes: fileFilter) + if (classDir.files.size() > 0) { + classDirectoriesFiles.add(classDir) + } + } + } + + sourceDirectories.from = files(['src/main/java', 'src/main/kotlin']) + classDirectories.from = files(classDirectoriesFiles) + + def execFiles = fileTree(dir: "$buildDir", includes: [ + 'jacoco/testDebugUnitTest.exec', + 'outputs/unit_test_code_coverage/debugUnitTest/testDebugUnitTest.exec', + 'jacoco/*.exec', + 'outputs/**/**.exec' + ]) + executionData.from = files(execFiles.filter { it.exists() }) + outputs.upToDateWhen { false } + + doFirst { + logger.lifecycle("=== JaCoCo Report Generation ===") + logger.lifecycle("Source directories:") + sourceDirectories.files.each { dir -> + if (dir.exists()) { + logger.lifecycle(" - Found: $dir") + } else { + logger.lifecycle(" - Missing: $dir") + } + } + logger.lifecycle("Class directories:") + classDirectories.files.each { dir -> + logger.lifecycle(" - $dir (${dir.exists() ? 'exists' : 'missing'})") + } + def execDataFiles = executionData.files + logger.lifecycle("Execution data files:") + if (execDataFiles.isEmpty() || !execDataFiles.any { it.exists() }) { + logger.warn(" - No execution data files found - coverage report will be empty") + } else { + execDataFiles.each { file -> + if (file.exists()) { + logger.lifecycle(" - Found: $file (${file.length()} bytes)") + } else { + logger.lifecycle(" - Missing: $file") + } + } + } + logger.lifecycle("================================") + } +} + +task generateJacocoXmlReport { + doLast { + def reportDir = file("${buildDir}/reports/jacoco/jacocoTestReport") + reportDir.mkdirs() + def execFiles = fileTree(dir: "${buildDir}", includes: ['**/*.exec']) + if (execFiles.isEmpty()) { + def reportFile = new File(reportDir, "jacocoTestReport.xml") + reportFile.text = "\n\n" + println "Created empty JaCoCo report at ${reportFile.absolutePath}" + } else { + println "Found JaCoCo exec files: ${execFiles.files}" + } + def reportFile = new File(reportDir, "jacocoTestReport.xml") + if (reportFile.exists()) { + println "\n==== JaCoCo Report Content ====" + println "Report file size: ${reportFile.length()} bytes" + if (reportFile.length() > 0) { + def xmlContent = reportFile.text + println "First 500 chars of report: ${xmlContent.take(500)}..." + def packageCount = (xmlContent =~ / \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - -exec "$JAVACMD" "$@" diff --git a/project/run_all_tests.sh b/project/run_all_tests.sh deleted file mode 100755 index 2c5e2c931..000000000 --- a/project/run_all_tests.sh +++ /dev/null @@ -1,5 +0,0 @@ -!#/bin/zsh - -./gradlew test -./gradlew connectedAndroidTest -open ./build/reports/androidTests/connected/index.html \ No newline at end of file diff --git a/project/settings.gradle b/project/settings.gradle deleted file mode 100644 index 643baca5a..000000000 --- a/project/settings.gradle +++ /dev/null @@ -1,3 +0,0 @@ -rootProject.name = 'project' -include('android-client') -project(':android-client').projectDir=file('..') \ No newline at end of file From d2bf2983d37ae02c48d004fbe425de211ffd2b2d Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Wed, 12 Nov 2025 15:29:19 -0300 Subject: [PATCH 20/26] Remove group and version in submodules --- build.gradle | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 5f013e2a0..58717f649 100644 --- a/build.gradle +++ b/build.gradle @@ -17,13 +17,12 @@ buildscript { apply plugin: 'com.android.fused-library' apply plugin: 'com.vanniktech.maven.publish' -group = 'io.split.client' - ext { splitVersion = '5.4.3-rc4' jacocoVersion = '0.8.8' } +group = 'io.split.client' version = splitVersion // Centralize repositories and coordinates for all subprojects @@ -32,8 +31,6 @@ allprojects { google() mavenCentral() } - group = 'io.split.client' - version = splitVersion } // Ensure Kotlin stdlib versions are consistent across modules From 33f83951834f59ba017fb93b88e24b4796e7d9d2 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Wed, 12 Nov 2025 16:08:51 -0300 Subject: [PATCH 21/26] Scope Kotlin version override --- build.gradle | 10 ---------- main/build.gradle | 9 +++++++++ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index 58717f649..d36e81704 100644 --- a/build.gradle +++ b/build.gradle @@ -33,16 +33,6 @@ allprojects { } } -// Ensure Kotlin stdlib versions are consistent across modules -subprojects { - configurations.all { - resolutionStrategy { - force "org.jetbrains.kotlin:kotlin-stdlib:1.8.0" - force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0" - force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0" - } - } -} // Define exclusions for JaCoCo coverage def coverageExclusions = [ diff --git a/main/build.gradle b/main/build.gradle index e18286f14..3654b45fe 100644 --- a/main/build.gradle +++ b/main/build.gradle @@ -93,3 +93,12 @@ dependencies { androidTestUtil libs.androidxTestOrchestrator } + +// Align Kotlin only for test and androidTest configurations to avoid duplicate classes +configurations.matching { it.name.toLowerCase().contains("test") }.all { + resolutionStrategy { + force "org.jetbrains.kotlin:kotlin-stdlib:1.8.0" + force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0" + force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0" + } +} From f0d24fb0e6818163ae5feed52125b7f57be7e622 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Fri, 14 Nov 2025 11:18:11 -0300 Subject: [PATCH 22/26] Diffuse script enhancements --- scripts/diffuse.sh | 438 ++++++++++++++++++++++++++++++++------------- 1 file changed, 314 insertions(+), 124 deletions(-) diff --git a/scripts/diffuse.sh b/scripts/diffuse.sh index 86df0fc50..8f412f12d 100755 --- a/scripts/diffuse.sh +++ b/scripts/diffuse.sh @@ -2,7 +2,7 @@ # API Diff Tool # Compares public API surface between two Git branches using Diffuse -# Usage: ./scripts/compare-api.sh --target --source +# Usage: ./scripts/diffuse.sh --target --source [--verbose] set -euo pipefail @@ -22,10 +22,13 @@ DIFFUSE_URL="https://github.com/JakeWharton/diffuse/releases/download/${DIFFUSE_ DIFFUSE_CACHE_DIR="" DIFFUSE_BINARY="" -# AAR configuration +# AAR configuration (fused library output at root) AAR_OUTPUT_DIR="build/outputs/aar" -AAR_NAME="android-client-release.aar" -GRADLE_TASK="assembleRelease" +# Prefer exact fused name; also support variant-suffixed names +AAR_CANDIDATE_NAMES=("android-client.aar" "android-client-release.aar" "android-client-debug.aar") +# Candidate Gradle tasks in order of preference; pick the first that exists +# Prefer 'bundle' for fused plugin roots, then legacy variant-specific bundles +GRADLE_TASK_CANDIDATES=("bundle" "bundleReleaseAar" "assembleRelease") # Temporary files TEMP_DIR=$(mktemp -d) @@ -38,6 +41,8 @@ TARGET_BRANCH="" SOURCE_BRANCH="" MODULE_PATH="" REPO_PATH="" +VERBOSE=false +FULL=false # Cleanup function - runs on exit, error, or interrupt cleanup() { @@ -45,14 +50,14 @@ cleanup() { # Always cleanup, even on success if [ -d "$TEMP_DIR" ]; then - echo -e "\n${BLUE}Cleaning up temporary files...${NC}" - rm -rf "$TEMP_DIR" - echo "Removed temporary repository clone and AAR files" + [ "$VERBOSE" = true ] && echo -e "\n${BLUE}Cleaning up temporary files...${NC}" + rm -rf "$TEMP_DIR" 2>/dev/null || true + [ "$VERBOSE" = true ] && echo "Removed temporary repository clone and AAR files" fi # Only show error message if there was an error if [ $exit_code -ne 0 ]; then - echo -e "${RED}Script failed with exit code $exit_code${NC}" + echo -e "${RED}Script failed with exit code $exit_code${NC}" >&2 fi exit $exit_code @@ -67,15 +72,24 @@ error_exit() { exit 1 } +# Verbose logging +log_verbose() { + if [ "$VERBOSE" = true ]; then + echo -e "${BLUE}$1${NC}" + fi +} + # Print usage usage() { cat << EOF -Usage: $0 --target --source [--module ] +Usage: $0 --target --source [--module ] [--verbose|--full] Options: --target Target branch/tag/commit to compare against (e.g., main, origin/main, v1.0.0) --source Source branch/tag/commit to compare (e.g., feature/my-feature, v1.1.0) --module Optional: Module path (defaults to root, future-proof for multi-module) + --verbose Show verbose output including build logs and progress messages + --full Show complete Diffuse output including detailed class/method/field changes Examples: # Compare branches @@ -84,8 +98,11 @@ Examples: # Compare tags $0 --target v1.0.0 --source v1.1.0 - # Compare tag to branch - $0 --target v1.0.0 --source main + # Compare with verbose output (shows build logs) + $0 --target v1.0.0 --source main --verbose + + # Compare with full Diffuse output (shows all details) + $0 --target v1.0.0 --source main --full EOF exit 1 @@ -107,6 +124,14 @@ parse_args() { MODULE_PATH="$2" shift 2 ;; + --verbose) + VERBOSE=true + shift + ;; + --full) + FULL=true + shift + ;; -h|--help) usage ;; @@ -147,7 +172,7 @@ find_gradle_root() { # Get repository path/URL get_repo_path() { - echo -e "${BLUE}Detecting repository...${NC}" + log_verbose "Detecting repository..." # Check if we're in a Git repository if ! git rev-parse --git-dir > /dev/null 2>&1; then @@ -155,15 +180,26 @@ get_repo_path() { fi # Get the repository root directory - REPO_PATH=$(git rev-parse --show-toplevel) - echo "Repository path: $REPO_PATH" + set +eu # Temporarily disable exit on error and unset variable check + set +o pipefail + REPO_PATH=$(git rev-parse --show-toplevel 2>/dev/null) + local git_exit=$? + set -eu # Re-enable exit on error and unset variable check + set -o pipefail + + # Check if git command failed or result is empty + if [ $git_exit -ne 0 ] || [ -z "${REPO_PATH:-}" ]; then + error_exit "Failed to determine repository root directory" + fi + + log_verbose "Repository path: $REPO_PATH" - echo -e "${GREEN}✓${NC} Repository detected" + log_verbose "✓ Repository detected" } # Clone repository to temporary directory clone_repo() { - echo -e "${BLUE}Cloning repository to temporary directory...${NC}" + log_verbose "Cloning repository to temporary directory..." # Clone the repository (using file:// protocol for local repos) # This creates a clean copy without affecting the original @@ -171,7 +207,7 @@ clone_repo() { rm -rf "$CLONE_DIR" fi - echo "Cloning to: $CLONE_DIR" + log_verbose "Cloning to: $CLONE_DIR" # Use file:// protocol for local repository cloning local repo_url if [[ "$REPO_PATH" == /* ]]; then @@ -182,7 +218,6 @@ clone_repo() { repo_url="file://$(cd "$REPO_PATH" && pwd)" fi - # Clone with tags to ensure all tags are available git clone --tags "$repo_url" "$CLONE_DIR" > /dev/null 2>&1 || error_exit "Failed to clone repository" # Fetch all remotes and tags from the original repo (in case of remote refs) @@ -192,12 +227,12 @@ clone_repo() { # Also fetch tags directly from the original repo to ensure we have all local tags (cd "$CLONE_DIR" && git fetch "$repo_url" "+refs/tags/*:refs/tags/*" > /dev/null 2>&1 || true) - echo -e "${GREEN}✓${NC} Repository cloned" + log_verbose "✓ Repository cloned" } # Download and setup Diffuse setup_diffuse() { - echo -e "${BLUE}Setting up Diffuse...${NC}" + log_verbose "Setting up Diffuse..." # Use absolute path for cache directory (since we'll be working in temp dir) if [ -z "$DIFFUSE_CACHE_DIR" ]; then @@ -206,19 +241,17 @@ setup_diffuse() { else DIFFUSE_CACHE_DIR="$PWD/$DIFFUSE_CACHE_DIR_RELATIVE" fi - DIFFUSE_JAR="$DIFFUSE_CACHE_DIR/diffuse-${DIFFUSE_VERSION}.jar" - DIFFUSE_BINARY="$DIFFUSE_CACHE_DIR/diffuse-${DIFFUSE_VERSION}" fi - # Create cache directory if it doesn't exist - mkdir -p "$DIFFUSE_CACHE_DIR" - # Set the expected binary path DIFFUSE_BINARY="${DIFFUSE_CACHE_DIR}/diffuse-${DIFFUSE_VERSION}/bin/diffuse" + # Create cache directory if it doesn't exist + mkdir -p "$DIFFUSE_CACHE_DIR" + # Check if Diffuse is already cached and valid (binary should exist and be executable) if [ -f "$DIFFUSE_BINARY" ] && [ -x "$DIFFUSE_BINARY" ]; then - echo -e "${GREEN}✓${NC} Diffuse ${DIFFUSE_VERSION} found in cache" + log_verbose "✓ Diffuse ${DIFFUSE_VERSION} found in cache" return 0 fi @@ -227,11 +260,11 @@ setup_diffuse() { error_exit "Java is required to run Diffuse. Please install Java." fi - echo "Downloading Diffuse ${DIFFUSE_VERSION} from GitHub..." + log_verbose "Downloading Diffuse ${DIFFUSE_VERSION} from GitHub..." # Download Diffuse ZIP (releases are distributed as ZIP files) local diffuse_zip="${DIFFUSE_CACHE_DIR}/diffuse-${DIFFUSE_VERSION}.zip" - echo "Downloading from: $DIFFUSE_URL" + log_verbose "Downloading from: $DIFFUSE_URL" if command -v curl > /dev/null 2>&1; then if ! curl -L -f -o "$diffuse_zip" "$DIFFUSE_URL"; then error_exit "Failed to download Diffuse from $DIFFUSE_URL" @@ -250,10 +283,10 @@ setup_diffuse() { if [ "$zip_size" -lt 100000 ]; then error_exit "Downloaded ZIP appears corrupted (${zip_size} bytes). Expected > 100KB." fi - echo "Downloaded ${zip_size} bytes" + log_verbose "Downloaded ${zip_size} bytes" # Extract JAR from ZIP - echo "Extracting JAR from ZIP..." + log_verbose "Extracting JAR from ZIP..." if ! command -v unzip > /dev/null 2>&1; then error_exit "unzip is required to extract Diffuse. Please install unzip." fi @@ -298,9 +331,9 @@ setup_diffuse() { if [ ! -f "$DIFFUSE_BINARY" ] || [ ! -x "$DIFFUSE_BINARY" ]; then error_exit "Diffuse binary not found or not executable at: $DIFFUSE_BINARY" fi - echo "Extracted Diffuse binary: $DIFFUSE_BINARY" + log_verbose "Extracted Diffuse binary: $DIFFUSE_BINARY" - echo -e "${GREEN}✓${NC} Diffuse ${DIFFUSE_VERSION} downloaded and ready" + log_verbose "✓ Diffuse ${DIFFUSE_VERSION} downloaded and ready" } # Run Diffuse command @@ -316,46 +349,160 @@ run_diffuse() { error_exit "Source AAR not found: $new_aar" fi - echo -e "\n${BLUE}Running Diffuse comparison...${NC}" - echo "OLD: $(basename "$old_aar")" - echo "NEW: $(basename "$new_aar")" - echo "" - # Compare AAR files directly using --aar flag - # Filter output to show only summary tables (size differences) + # Filter output to show only summary tables (size differences including JAR table) # Skip detailed lists of classes, methods, and fields local temp_output temp_output=$(mktemp) + local saved_log="${DIFFUSE_CACHE_DIR}/last-diffuse.log" # Run Diffuse and capture output - if ! "$DIFFUSE_BINARY" diff --aar "$old_aar" "$new_aar" > "$temp_output" 2>&1; then - # If Diffuse fails, show the error - cat "$temp_output" - rm -f "$temp_output" - error_exit "Diffuse comparison failed" - fi - - # Filter to show only summary/statistics, skip detailed lists - awk ' - # Print everything until we hit CLASSES:, METHODS:, or FIELDS: sections - /^CLASSES:$/ { exit 0 } - /^METHODS:$/ { exit 0 } - /^FIELDS:$/ { exit 0 } - # Print all other lines (headers, size info, summary tables) - { print } - ' "$temp_output" + # Note: Diffuse may return non-zero exit code when differences are found (which is expected) + # So we capture the output regardless of exit code + local diffuse_exit_code=0 + set +e # Temporarily disable exit on error to capture exit code + set +o pipefail + "$DIFFUSE_BINARY" diff --aar "$old_aar" "$new_aar" > "$temp_output" 2>&1 + diffuse_exit_code=$? + set -e # Re-enable exit on error + set -o pipefail + # Save full raw log for debugging + cp "$temp_output" "$saved_log" >/dev/null 2>&1 || true + + # Check if the output contains actual errors (not just differences) + if [ $diffuse_exit_code -ne 0 ]; then + # Always print the full Diffuse output on non-zero exit to aid debugging + echo -e "${YELLOW}Diffuse exited with code ${diffuse_exit_code}. Full log saved at: ${saved_log}${NC}" >&2 + cat "$temp_output" >&2 || true + fi + + # In verbose or full mode, show full output; otherwise filter to show only key tables + if [ "$VERBOSE" = true ] || [ "$FULL" = true ]; then + # Show complete unfiltered Diffuse output + cat "$temp_output" || true + else + # Filter to show only the tables we care about: + # - AAR summary table + # - JAR summary table + # - AAR file list section + # Skip: file paths, hashes, MANIFEST section, CLASSES/METHODS/FIELDS details + set +e # Temporarily disable exit on error for awk + set +o pipefail + awk ' + BEGIN { + in_aar_table = 0 + in_jar_table = 0 + in_aar_section = 0 + skip_until_next_section = 0 + } + + # Skip OLD/NEW file path lines with hashes + /^OLD: .*\.aar \(.*bytes.*sha256:/ { next } + /^NEW: .*\.aar \(.*bytes.*sha256:/ { next } + + # Skip simple OLD:/NEW: filename lines + /^OLD: [^\/]*\.aar$/ { next } + /^NEW: [^\/]*\.aar$/ { next } + + # Stop at detailed sections + /^CLASSES:$/ { exit 0 } + /^METHODS:$/ { exit 0 } + /^FIELDS:$/ { exit 0 } + + # Detect AAR summary table start + / AAR / && /old/ && /new/ && /diff/ { + in_aar_table = 1 + print + next + } + + # Detect JAR summary table start + / JAR / && /old/ && /new/ && /diff/ { + in_jar_table = 1 + print + next + } + + # Continue printing AAR table until blank line + in_aar_table == 1 { + print + if ($0 == "") { + in_aar_table = 0 + } + next + } + + # Continue printing JAR table until blank line + in_jar_table == 1 { + print + if ($0 == "") { + in_jar_table = 0 + } + next + } + + # Handle section headers (=====) + /^=+$/ { + # Save the separator line + sep_line = $0 + # Read the next line to see what section it is + if (getline > 0) { + if ($0 ~ /====.*AAR.*====/) { + # Start of AAR file list section + in_aar_section = 1 + skip_until_next_section = 0 + print sep_line + print + # Read and print the next separator line (there are 2 around the header) + if (getline > 0 && $0 ~ /^=+$/) { + print + } + } else if ($0 ~ /====.*MANIFEST.*====/) { + # Skip MANIFEST section + skip_until_next_section = 1 + } else if ($0 ~ /====.*JAR.*====/ && !in_aar_section) { + # Skip final JAR section (after MANIFEST) + skip_until_next_section = 1 + } + } + next + } + + # Continue printing AAR section content + in_aar_section == 1 { + # Check if this is the "(total)" line (end of AAR section) + if ($0 ~ /\(total\)/) { + print + in_aar_section = 0 + skip_until_next_section = 1 # Skip everything until we see CLASSES/METHODS/FIELDS or EOF + next + } + print + next + } + + # Skip lines when we are skipping a section + skip_until_next_section == 1 { + next + } + ' "$temp_output" || true + set -e # Re-enable exit on error + set -o pipefail + fi # Clean up - rm -f "$temp_output" + rm -f "$temp_output" || true + + # Return success (even if Diffuse found differences, that's a successful comparison) + return 0 } - # Build AAR for a specific branch/tag/commit build_aar() { local ref="$1" local output_aar="$2" - echo -e "\n${BLUE}Building AAR for ref: ${ref}${NC}" + log_verbose "Building AAR for ref: ${ref}" # Change to cloned repository directory cd "$CLONE_DIR" || error_exit "Failed to change to cloned repository directory" @@ -364,7 +511,7 @@ build_aar() { # First try to verify directly if ! git rev-parse --verify "$ref" > /dev/null 2>&1; then # If that fails, try fetching the ref from origin - echo "Ref not found locally, attempting to fetch..." + log_verbose "Ref not found locally, attempting to fetch..." git fetch origin "$ref:$ref" > /dev/null 2>&1 || true # Also try fetching as a tag if [[ "$ref" =~ ^[0-9] ]]; then @@ -373,20 +520,25 @@ build_aar() { # Try again if ! git rev-parse --verify "$ref" > /dev/null 2>&1; then # List available tags for debugging - echo -e "${YELLOW}Available tags:${NC}" - git tag | grep -E "^5\.[34]" | head -10 || git tag | tail -10 + [ "$VERBOSE" = true ] && echo -e "${YELLOW}Available tags:${NC}" + [ "$VERBOSE" = true ] && git tag | grep -E "^5\.[34]" | head -10 || git tag | tail -10 error_exit "Ref does not exist: $ref (must be a branch, tag, or commit)" fi fi # Checkout the ref (works for branches, tags, and commits) - echo "Checking out ref: $ref" - if ! git checkout "$ref" 2>/dev/null; then + log_verbose "Checking out ref: $ref" + if ! git checkout "$ref" >/dev/null 2>&1; then # Try with -f flag for tags that might have conflicts - if ! git checkout -f "$ref" 2>/dev/null; then + if ! git checkout -f "$ref" >/dev/null 2>&1; then error_exit "Failed to checkout ref: $ref" fi fi + # Log resolved commit for traceability + if git rev-parse --short HEAD >/dev/null 2>&1; then + RESOLVED_SHA="$(git rev-parse --short HEAD || true)" + log_verbose "Resolved ref '$ref' to commit: $RESOLVED_SHA" + fi # Find the Gradle project root after checkout (structure might be different) local gradle_root @@ -412,7 +564,7 @@ build_aar() { # Run from gradle root, but need to specify the project # For now, try running from current directory with the gradlew from root gradle_cmd="$gradlew_path" - echo "Using Gradle wrapper from: $gradle_root" + log_verbose "Using Gradle wrapper from: $gradle_root" else gradle_cmd="./gradlew" fi @@ -427,80 +579,97 @@ build_aar() { # Create a minimal settings.gradle to prevent Gradle from using parent echo "rootProject.name = 'android-client'" > "settings.gradle" temp_settings_created=true - echo "Created temporary settings.gradle to isolate build from parent" + log_verbose "Created temporary settings.gradle to isolate build from parent" fi fi - # Build the AAR - echo "Running: $gradle_cmd $GRADLE_TASK" - if ! "$gradle_cmd" "$GRADLE_TASK" --quiet --no-daemon; then - error_exit "Failed to build AAR for ref: $ref" + # Build the fused AAR using the first available Gradle task + # Clean first to avoid cross-branch artifacts affecting selection + log_verbose "Running: $gradle_cmd clean" + if [ "$VERBOSE" = true ]; then + "$gradle_cmd" clean --no-daemon || true + else + "$gradle_cmd" clean --quiet --no-daemon >/dev/null 2>&1 || true fi - - # Find the AAR file - search in multiple possible locations - local aar_path="" - local possible_paths=( - "${AAR_OUTPUT_DIR}/${AAR_NAME}" - "build/outputs/aar/${AAR_NAME}" - "build/outputs/aar/*-release.aar" - "build/outputs/aar/*.aar" - ) - - # Also check relative to gradle root if different - if [ "$gradle_root" != "$PWD" ]; then - possible_paths+=( - "$gradle_root/${AAR_OUTPUT_DIR}/${AAR_NAME}" - "$gradle_root/build/outputs/aar/${AAR_NAME}" - "$gradle_root/build/outputs/aar/*-release.aar" - "$gradle_root/build/outputs/aar/*.aar" - ) - fi - - # Try to find the AAR file - for path_pattern in "${possible_paths[@]}"; do - # Handle glob patterns - if [[ "$path_pattern" == *"*"* ]]; then - # Use find to locate AAR files matching the pattern - local found_aar - found_aar=$(find . -path "$path_pattern" -type f 2>/dev/null | head -1) - if [ -n "$found_aar" ] && [ -f "$found_aar" ]; then - aar_path="$found_aar" + local build_ok=false + local used_task="" + for task in "${GRADLE_TASK_CANDIDATES[@]}"; do + log_verbose "Running: $gradle_cmd $task" + if [ "$VERBOSE" = true ]; then + if "$gradle_cmd" "$task" --no-daemon; then + build_ok=true + used_task="$task" break fi else - if [ -f "$path_pattern" ]; then - aar_path="$path_pattern" + if "$gradle_cmd" "$task" --quiet --no-daemon > /dev/null 2>&1; then + build_ok=true + used_task="$task" break fi fi done + if [ "$build_ok" != true ]; then + error_exit "Failed to build AAR for ref: $ref (tried: ${GRADLE_TASK_CANDIDATES[*]})" + fi + log_verbose "Selected Gradle build task for ref '${ref}': $used_task" - # If still not found, try a broader search - if [ -z "$aar_path" ]; then - echo "Searching for AAR files in build directory..." - local found_aars - found_aars=$(find . -path "*/build/outputs/aar/*.aar" -type f 2>/dev/null) - if [ -n "$found_aars" ]; then - # Prefer release AAR if available - aar_path=$(echo "$found_aars" | grep -i release | head -1) - if [ -z "$aar_path" ]; then - # Otherwise take the first one found - aar_path=$(echo "$found_aars" | head -1) - fi - fi + # Find the AAR file - search in multiple possible locations + local aar_path="" + local possible_paths=() + # Add exact candidate names first (both relative and explicit) + for name in "${AAR_CANDIDATE_NAMES[@]}"; do + possible_paths+=("${AAR_OUTPUT_DIR}/${name}") + possible_paths+=("build/outputs/aar/${name}") + done + # Include fused plugin bundle directory + possible_paths+=("build/bundle/bundle.aar") + possible_paths+=("build/bundle/*.aar") + # Then pattern-based fallbacks (root only; try to avoid picking submodule AARs) + possible_paths+=("build/outputs/aar/android-client-*.aar") + possible_paths+=("build/outputs/aar/*-release.aar") + possible_paths+=("build/outputs/aar/*.aar") + + # Also check relative to gradle root if different + if [ "$gradle_root" != "$PWD" ]; then + for name in "${AAR_CANDIDATE_NAMES[@]}"; do + possible_paths+=("$gradle_root/${AAR_OUTPUT_DIR}/${name}") + possible_paths+=("$gradle_root/build/outputs/aar/${name}") + done + possible_paths+=("$gradle_root/build/bundle/bundle.aar") + possible_paths+=("$gradle_root/build/bundle/*.aar") + possible_paths+=("$gradle_root/build/outputs/aar/android-client-*.aar") + possible_paths+=("$gradle_root/build/outputs/aar/*-release.aar") + possible_paths+=("$gradle_root/build/outputs/aar/*.aar") fi + # Find the AAR file - priority-based selection across all locations + log_verbose "Searching for AAR files in build directory..." + local all_aars + all_aars=$(find . -type f -name "*.aar" 2>/dev/null | sort || true) + pick_first() { printf "%s\n" "$all_aars" | grep -E "$1" | head -1 || true; } + aar_path=$(pick_first "/build/outputs/aar/android-client\\.aar$") + [ -z "$aar_path" ] && aar_path=$(pick_first "/build/outputs/aar/android-client-release\\.aar$") + [ -z "$aar_path" ] && aar_path=$(pick_first "/build/outputs/aar/android-client-debug\\.aar$") + # Fused plugin bundle output + [ -z "$aar_path" ] && aar_path=$(pick_first "/build/bundle/bundle\\.aar$") + # Locally published fused artifact + [ -z "$aar_path" ] && aar_path=$(pick_first "/build/publishing/.*/android-client-[^/]+\\.aar$") + # Any remaining android-client*.aar anywhere + [ -z "$aar_path" ] && aar_path=$(pick_first "/android-client[^/]*\\.aar$") + # Fallback: any root build/outputs release AAR not from logger/main (handles older artifactIds like 'repo-release.aar') + [ -z "$aar_path" ] && aar_path=$(printf "%s\n" "$all_aars" | grep -E "/build/outputs/aar/[^/]*-release\\.aar$" | grep -Ev "/(logger|main)/" | head -1 || true) if [ -z "$aar_path" ] || [ ! -f "$aar_path" ]; then - echo -e "${YELLOW}Debug: Listing build outputs...${NC}" - find . -path "*/build/outputs/aar/*" -type f 2>/dev/null | head -10 || true - error_exit "AAR not found after build. Searched in: ${possible_paths[*]}" + echo -e "${YELLOW}Debug: Could not locate AAR. First 50 *.aar files found:${NC}" + echo "$all_aars" | head -50 || true + error_exit "AAR not found after build." fi - echo "Found AAR at: $aar_path" + log_verbose "Selected fused AAR artifact for ref '${ref}': $aar_path" # Copy AAR to temp location cp "$aar_path" "$output_aar" - echo -e "${GREEN}✓${NC} AAR built and copied: $(basename "$output_aar")" + log_verbose "✓ AAR built and copied for ref '${ref}': $(basename "$output_aar")" # Clean up temporary settings.gradle if we created one # (This is cleaned up here, but also safe if script fails - temp dir will be removed) @@ -511,10 +680,6 @@ build_aar() { # Main execution main() { - echo -e "${GREEN}API Diff Tool${NC}" - echo "==============" - echo "" - # Parse arguments parse_args "$@" @@ -535,14 +700,39 @@ main() { # Build target branch AAR second (older version) build_aar "$TARGET_BRANCH" "$TARGET_AAR" + # Summarize what will be compared (paths, sizes, hashes) to ensure distinct artifacts + # Only show in verbose mode + if [ "$VERBOSE" = true ]; then + summarize_aar() { + local label="$1" + local file="$2" + local size + size=$(stat -f%z "$file" 2>/dev/null || stat -c%s "$file" 2>/dev/null || wc -c < "$file" 2>/dev/null || echo "unknown") + local sha="" + if command -v shasum >/dev/null 2>&1; then + sha=$(shasum -a 256 "$file" 2>/dev/null | awk '{print $1}') + elif command -v openssl >/dev/null 2>&1; then + sha=$(openssl dgst -sha256 "$file" 2>/dev/null | awk '{print $2}') + fi + echo -e "${BLUE}${label}: ${NC}$file (${size} bytes${sha:+, sha256: $sha})" + } + summarize_aar "OLD (target)" "$TARGET_AAR" + summarize_aar "NEW (source)" "$SOURCE_AAR" + fi + # Run Diffuse comparison # Note: Diffuse shows OLD -> NEW, so we pass target (old) first, then source (new) # We can run from any directory since we use absolute paths + set +e # Temporarily disable exit on error + set +o pipefail run_diffuse "$TARGET_AAR" "$SOURCE_AAR" + local run_exit=$? + set -e # Re-enable exit on error + set -o pipefail - echo -e "\n${GREEN}✓${NC} API comparison completed successfully" + # Return success (run_diffuse returns 0 on success) + return 0 } # Run main function main "$@" - From 89d9c943860fef977276e7992ff489063d2ed580 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Fri, 14 Nov 2025 13:40:21 -0300 Subject: [PATCH 23/26] Pipeline fix --- .../pipelines/androidclientdiffuse.yaml | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/.harness/orgs/PROD/projects/Harness_Split/pipelines/androidclientdiffuse.yaml b/.harness/orgs/PROD/projects/Harness_Split/pipelines/androidclientdiffuse.yaml index c9b8111cd..a258c7306 100644 --- a/.harness/orgs/PROD/projects/Harness_Split/pipelines/androidclientdiffuse.yaml +++ b/.harness/orgs/PROD/projects/Harness_Split/pipelines/androidclientdiffuse.yaml @@ -139,9 +139,23 @@ pipeline: # Fetch all branches from remote so diffuse.sh can access them echo "Fetching branches from remote..." git fetch origin --prune > /dev/null 2>&1 - git fetch origin "$SOURCE_BRANCH:$SOURCE_BRANCH" > /dev/null 2>&1 || true - git fetch origin "$TARGET_BRANCH:$TARGET_BRANCH" > /dev/null 2>&1 || true + git fetch origin "$SOURCE_BRANCH" > /dev/null 2>&1 || true + git fetch origin "$TARGET_BRANCH" > /dev/null 2>&1 || true + + # Debug: Show what branches/refs exist + echo "=== Available branches and refs ===" + git branch -r | grep -E "(${SOURCE_BRANCH}|${TARGET_BRANCH})" || true + echo "Current HEAD: $(git rev-parse HEAD)" + echo "origin/${SOURCE_BRANCH}: $(git rev-parse origin/${SOURCE_BRANCH} 2>/dev/null || echo 'NOT FOUND')" + echo "origin/${TARGET_BRANCH}: $(git rev-parse origin/${TARGET_BRANCH} 2>/dev/null || echo 'NOT FOUND')" + + # Use remote branch references (origin/branch-name) for the diffuse script + # This ensures we compare the actual remote branches, not local refs + SOURCE_REF="origin/${SOURCE_BRANCH}" + TARGET_REF="origin/${TARGET_BRANCH}" + echo "✓ Branches fetched" + echo "Will compare: $SOURCE_REF (source) vs $TARGET_REF (target)" # Verify the script exists if [ ! -f "scripts/diffuse.sh" ]; then @@ -154,17 +168,22 @@ pipeline: # Make the script executable chmod +x scripts/diffuse.sh - # Run the diffuse script with branch parameters - echo "Executing: ./scripts/diffuse.sh --source '$SOURCE_BRANCH' --target '$TARGET_BRANCH'" + # Run the diffuse script with remote branch references in verbose mode for debugging + echo "Executing: ./scripts/diffuse.sh --source '$SOURCE_REF' --target '$TARGET_REF' --verbose" # Run and capture output set +e # Don't exit on error - ./scripts/diffuse.sh --source "$SOURCE_BRANCH" --target "$TARGET_BRANCH" > diffuse_output_full.txt 2>&1 + ./scripts/diffuse.sh --source "$SOURCE_REF" --target "$TARGET_REF" --verbose > diffuse_output_full.txt 2>&1 DIFFUSE_EXIT_CODE=$? set -e echo "" echo "=== Diffuse Script Exit Code: $DIFFUSE_EXIT_CODE ===" + + # Show the full verbose output for debugging + echo "=== Full Diffuse Output (for debugging) ===" + cat diffuse_output_full.txt + echo "=== End Full Output ===" # Extract only the comparison tables from the output sed 's/\x1b\[[0-9;]*m//g' diffuse_output_full.txt | \ From 9d3831f091307a82bc022f21009c0d363453e73f Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Fri, 14 Nov 2025 14:00:38 -0300 Subject: [PATCH 24/26] Update diffuse script --- scripts/compare-api-metalava.sh | 726 ++++++++++++++++++++++++++++++++ scripts/diffuse.sh | 60 ++- 2 files changed, 767 insertions(+), 19 deletions(-) create mode 100755 scripts/compare-api-metalava.sh diff --git a/scripts/compare-api-metalava.sh b/scripts/compare-api-metalava.sh new file mode 100755 index 000000000..fb66f243a --- /dev/null +++ b/scripts/compare-api-metalava.sh @@ -0,0 +1,726 @@ +#!/bin/bash + +# API Diff Tool using Metalava +# Compares public API surface between two Git branches using Metalava +# Usage: ./scripts/compare-api-metalava.sh --target --source + +set -euo pipefail + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +# Configuration +API_SIGNATURE_FILE="api.txt" +GRADLE_TASK_GENERATE_API="generateApi" +METALAVA_VERSION="1.0.0-alpha13" # Latest version from Maven +METALAVA_CACHE_DIR_RELATIVE=".metalava" +METALAVA_GROUP="com.android.tools.metalava" +METALAVA_ARTIFACT="metalava" +METALAVA_JAR_NAME="${METALAVA_ARTIFACT}-${METALAVA_VERSION}.jar" + +# These will be set after repo path is determined +METALAVA_CACHE_DIR="" +METALAVA_JAR="" + +# Temporary files +TEMP_DIR=$(mktemp -d) +CLONE_DIR="${TEMP_DIR}/repo" +TARGET_API="${TEMP_DIR}/target-branch-api.txt" +SOURCE_API="${TEMP_DIR}/source-branch-api.txt" + +# Optional: Save final API signature to a persistent location +SAVE_API_FILE=false +OUTPUT_API_FILE="" + +# Script arguments +TARGET_BRANCH="" +SOURCE_BRANCH="" +MODULE_PATH="" +REPO_PATH="" + +# Cleanup function - runs on exit, error, or interrupt +cleanup() { + local exit_code=$? + + # Always cleanup, even on success + if [ -d "$TEMP_DIR" ]; then + echo -e "\n${BLUE}Cleaning up temporary files...${NC}" + rm -rf "$TEMP_DIR" + echo "Removed temporary repository clone and API signature files" + fi + + # Only show error message if there was an error + if [ $exit_code -ne 0 ]; then + echo -e "${RED}Script failed with exit code $exit_code${NC}" + fi + + exit $exit_code +} + +# Set trap for cleanup on exit +trap cleanup EXIT INT TERM + +# Print error and exit +error_exit() { + echo -e "${RED}Error: $1${NC}" >&2 + exit 1 +} + +# Print usage +usage() { + cat << EOF +Usage: $0 --target --source [--module ] + +Options: + --target Target branch/tag/commit to compare against (e.g., main, origin/main, v1.0.0) + --source Source branch/tag/commit to compare (e.g., feature/my-feature, v1.1.0) + --module Optional: Module path (defaults to root, future-proof for multi-module) + --save-api Optional: Save the final API signature to a file (default: not saved) + +Examples: + # Compare branches + $0 --target origin/main --source feature/my-feature + + # Compare tags + $0 --target v1.0.0 --source v1.1.0 + + # Compare tag to branch + $0 --target v1.0.0 --source main + +Note: This script uses Metalava to generate API signature files that contain ONLY public API elements. +Private fields, methods, and internal implementation details are excluded. + +EOF + exit 1 +} + +# Parse command line arguments +parse_args() { + while [[ $# -gt 0 ]]; do + case $1 in + --target) + TARGET_BRANCH="$2" + shift 2 + ;; + --source) + SOURCE_BRANCH="$2" + shift 2 + ;; + --module) + MODULE_PATH="$2" + shift 2 + ;; + --save-api) + SAVE_API_FILE=true + OUTPUT_API_FILE="$2" + shift 2 + ;; + -h|--help) + usage + ;; + *) + error_exit "Unknown option: $1" + ;; + esac + done + + if [ -z "$TARGET_BRANCH" ] || [ -z "$SOURCE_BRANCH" ]; then + error_exit "Both --target and --source branches must be specified" + fi +} + +# Find the Gradle project root (where settings.gradle or build.gradle is located) +find_gradle_root() { + local current_dir="$PWD" + + # Check current directory first + if [ -f "settings.gradle" ] || [ -f "build.gradle" ]; then + echo "$PWD" + return 0 + fi + + # Check if we're in a subdirectory and need to go up + local check_dir="$current_dir" + while [ "$check_dir" != "/" ]; do + if [ -f "$check_dir/settings.gradle" ] || [ -f "$check_dir/build.gradle" ]; then + echo "$check_dir" + return 0 + fi + check_dir=$(dirname "$check_dir") + done + + # If no settings.gradle found, assume current directory + echo "$PWD" +} + +# Get repository path/URL +get_repo_path() { + echo -e "${BLUE}Detecting repository...${NC}" + + # Check if we're in a Git repository + if ! git rev-parse --git-dir > /dev/null 2>&1; then + error_exit "Not in a Git repository. Please run this script from within a Git repository." + fi + + # Get the repository root directory + REPO_PATH=$(git rev-parse --show-toplevel) + echo "Repository path: $REPO_PATH" + + echo -e "${GREEN}✓${NC} Repository detected" +} + +# Download and setup Metalava +setup_metalava() { + echo -e "${BLUE}Setting up Metalava...${NC}" + + # Use absolute path for cache directory (since we'll be working in temp dir) + if [ -z "$METALAVA_CACHE_DIR" ]; then + if [ -n "$REPO_PATH" ]; then + METALAVA_CACHE_DIR="$REPO_PATH/$METALAVA_CACHE_DIR_RELATIVE" + else + METALAVA_CACHE_DIR="$PWD/$METALAVA_CACHE_DIR_RELATIVE" + fi + METALAVA_JAR="$METALAVA_CACHE_DIR/$METALAVA_JAR_NAME" + fi + + # Create cache directory if it doesn't exist + mkdir -p "$METALAVA_CACHE_DIR" + + # Check if Metalava is already cached + if [ -f "$METALAVA_JAR" ]; then + # Verify it's a valid JAR file (ZIP format) + if unzip -t "$METALAVA_JAR" > /dev/null 2>&1; then + echo -e "${GREEN}✓${NC} Metalava ${METALAVA_VERSION} found in cache" + return 0 + else + echo "Cached JAR appears invalid, re-downloading..." + rm -f "$METALAVA_JAR" + fi + fi + + # Check if Java is available (required for Metalava JAR) + if ! command -v java > /dev/null 2>&1; then + error_exit "Java is required to run Metalava. Please install Java." + fi + + # First, try to find Metalava in Gradle cache (might already be downloaded) + local gradle_user_home="${GRADLE_USER_HOME:-$HOME/.gradle}" + echo "Searching for Metalava in Gradle cache..." + if [ -d "$gradle_user_home/caches" ]; then + local cached_jar=$(find "$gradle_user_home/caches" -name "metalava*.jar" -type f 2>/dev/null | grep -v "sources" | grep -v "javadoc" | head -1) + if [ -n "$cached_jar" ] && [ -f "$cached_jar" ]; then + # Verify it's a valid JAR file (ZIP format) + if unzip -t "$cached_jar" > /dev/null 2>&1; then + echo "Found Metalava in Gradle cache, copying to script cache..." + cp "$cached_jar" "$METALAVA_JAR" + echo -e "${GREEN}✓${NC} Metalava ${METALAVA_VERSION} found in Gradle cache" + return 0 + fi + fi + fi + + # Download from Google Maven repository (maven.google.com) + echo "Downloading Metalava ${METALAVA_VERSION} from Google Maven repository..." + local group_path=$(echo "$METALAVA_GROUP" | tr '.' '/') + local maven_url="https://dl.google.com/dl/android/maven2/${group_path}/${METALAVA_ARTIFACT}/${METALAVA_VERSION}/${METALAVA_JAR_NAME}" + + echo "Downloading from: $maven_url" + if command -v curl > /dev/null 2>&1; then + if ! curl -L -f -o "$METALAVA_JAR" "$maven_url"; then + error_exit "Failed to download Metalava from $maven_url" + fi + elif command -v wget > /dev/null 2>&1; then + if ! wget -O "$METALAVA_JAR" "$maven_url"; then + error_exit "Failed to download Metalava from $maven_url" + fi + else + error_exit "Neither curl nor wget found. Please install one to download Metalava." + fi + + # Verify JAR download was successful (JAR should be > 100KB) + local jar_size + jar_size=$(stat -f%z "$METALAVA_JAR" 2>/dev/null || stat -c%s "$METALAVA_JAR" 2>/dev/null || echo "0") + if [ "$jar_size" -lt 100000 ]; then + error_exit "Downloaded JAR appears corrupted (${jar_size} bytes). Expected > 100KB." + fi + echo "Downloaded ${jar_size} bytes" + + # Verify the JAR is valid by checking if it's a valid ZIP file (JARs are ZIP files) + if ! unzip -t "$METALAVA_JAR" > /dev/null 2>&1; then + error_exit "Downloaded Metalava JAR appears to be invalid or corrupted (not a valid ZIP/JAR file)" + fi + + echo -e "${GREEN}✓${NC} Metalava ${METALAVA_VERSION} downloaded and ready" +} + +# Clone repository to temporary directory +clone_repo() { + echo -e "${BLUE}Cloning repository to temporary directory...${NC}" + + # Clone the repository (using file:// protocol for local repos) + # This creates a clean copy without affecting the original + if [ -d "$CLONE_DIR" ]; then + rm -rf "$CLONE_DIR" + fi + + echo "Cloning to: $CLONE_DIR" + # Use file:// protocol for local repository cloning + local repo_url + if [[ "$REPO_PATH" == /* ]]; then + # Absolute path - use file:// protocol + repo_url="file://$REPO_PATH" + else + # Relative path + repo_url="file://$(cd "$REPO_PATH" && pwd)" + fi + + # Clone with tags to ensure all tags are available + git clone --tags "$repo_url" "$CLONE_DIR" > /dev/null 2>&1 || error_exit "Failed to clone repository" + + # Fetch all remotes and tags from the original repo (in case of remote refs) + (cd "$CLONE_DIR" && git remote set-url origin "$repo_url" > /dev/null 2>&1 || true) + (cd "$CLONE_DIR" && git fetch --all --tags --prune > /dev/null 2>&1 || true) + + # Also fetch tags directly from the original repo to ensure we have all local tags + (cd "$CLONE_DIR" && git fetch "$repo_url" "+refs/tags/*:refs/tags/*" > /dev/null 2>&1 || true) + + echo -e "${GREEN}✓${NC} Repository cloned" +} + +# Add Metalava Gradle task to generate API signature +add_metalava_task() { + local build_gradle="$1" + local metalava_jar_path="$2" + + # Check if task already exists + if grep -q "task generateApiSignature" "$build_gradle" 2>/dev/null; then + return 0 + fi + + echo "Adding Metalava task to build.gradle..." + + # Escape the path for use in Groovy string + local escaped_jar_path=$(echo "$metalava_jar_path" | sed "s/'/\\\\'/g") + + # Append the task at the end of the file + # Also add repositories if not present + if ! grep -q "repositories" "$build_gradle" 2>/dev/null; then + cat >> "$build_gradle" << 'REPOS_EOF' + +repositories { + google() + mavenCentral() +} +REPOS_EOF + fi + + # Append the task at the end of the file + cat >> "$build_gradle" << METALAVA_TASK_EOF + +// Metalava API signature generation task (added by compare-api-metalava.sh) +configurations { + metalavaRuntime +} + +dependencies { + metalavaRuntime 'com.android.tools.metalava:metalava:1.0.0-alpha13' +} + +task generateApiSignature(type: JavaExec) { + dependsOn configurations.metalavaRuntime + + // Use Driver as the main class (this is the correct entry point for Metalava) + main = 'com.android.tools.metalava.Driver' + classpath = configurations.metalavaRuntime + + // Ensure compile classpath is resolved before running + doFirst { + try { + def compileClasspath = configurations.findByName("compileClasspath") + if (compileClasspath != null) { + compileClasspath.resolve() + } + } catch (Exception e) { + // Ignore if compileClasspath is not available + } + } + + // Get Android extension to find source directories and SDK information + doFirst { + def androidExtension = project.extensions.findByName('android') + if (androidExtension == null) { + throw new GradleException("Android extension not found") + } + + def apiFile = file("\${project.rootDir}/api.txt") + apiFile.parentFile.mkdirs() + + def sourceDirs = androidExtension.sourceSets.main.java.srcDirs + + // Build arguments for Metalava + def argsList = [ + "--api", apiFile.absolutePath, + "--source-path", sourceDirs.join(File.pathSeparator), + "--format=v2" + ] + + // Add compile SDK version if available (Metalava uses --compile-sdk-version, not --bootclasspath) + try { + def compileSdk = androidExtension.compileSdkVersion + if (compileSdk != null) { + // compileSdkVersion might be a string like "33" or an integer + def sdkVersion = compileSdk.toString() + argsList.add("--compile-sdk-version") + argsList.add(sdkVersion) + } + } catch (Exception e) { + // compileSdkVersion might not be accessible, try compileSdk + try { + def compileSdk = androidExtension.compileSdk + if (compileSdk != null) { + def sdkVersion = compileSdk.toString() + argsList.add("--compile-sdk-version") + argsList.add(sdkVersion) + } + } catch (Exception e2) { + // If we can't get compile SDK, Metalava might be able to infer it + // or we can try to get it from the project's build.gradle + } + } + + // Try to get SDK home from environment or Android extension + def sdkHome = System.getenv("ANDROID_HOME") ?: System.getenv("ANDROID_SDK_ROOT") + if (sdkHome != null && new File(sdkHome).exists()) { + argsList.add("--sdk-home") + argsList.add(sdkHome) + } + + // Build classpath from project dependencies to help resolve imports + def classpathEntries = [] + try { + // Add boot classpath if available + def bootClasspath = androidExtension.bootClasspath + if (bootClasspath != null && !bootClasspath.isEmpty()) { + classpathEntries.addAll(bootClasspath) + } + } catch (Exception e) { + // bootClasspath might not be accessible in newer Android Gradle Plugin versions + } + + // Add compile classpath from configurations to help resolve dependencies + try { + def compileClasspath = configurations.findByName("compileClasspath") + if (compileClasspath != null) { + compileClasspath.resolve().each { file -> + if (file.exists() && file.name.endsWith('.jar')) { + classpathEntries.add(file.absolutePath) + } + } + } + } catch (Exception e) { + // compileClasspath might not be available + } + + // Add the classpath if we have entries + if (!classpathEntries.isEmpty()) { + argsList.add("--classpath") + argsList.add(classpathEntries.join(File.pathSeparator)) + } + + // Suppress API lint errors that are causing failures + // These are informational and don't prevent API signature generation + argsList.add("--hide") + argsList.add("DeprecationMismatch") + argsList.add("--hide") + argsList.add("ReferencesHidden") + argsList.add("--hide") + argsList.add("HiddenTypeParameter") + argsList.add("--hide") + argsList.add("UnresolvedImport") + + args = argsList + } +} +METALAVA_TASK_EOF +} + +# Generate API signature file for a specific branch/tag/commit +generate_api_signature() { + local ref="$1" + local output_api="$2" + + echo -e "\n${BLUE}Generating API signature for ref: ${ref}${NC}" + + # Change to cloned repository directory + cd "$CLONE_DIR" || error_exit "Failed to change to cloned repository directory" + + # Verify ref exists (handles branches, tags, and commits) + if ! git rev-parse --verify "$ref" > /dev/null 2>&1; then + # If that fails, try fetching the ref from origin + echo "Ref not found locally, attempting to fetch..." + git fetch origin "$ref:$ref" > /dev/null 2>&1 || true + # Also try fetching as a tag + if [[ "$ref" =~ ^[0-9] ]]; then + git fetch origin "refs/tags/$ref:refs/tags/$ref" > /dev/null 2>&1 || true + fi + # Try again + if ! git rev-parse --verify "$ref" > /dev/null 2>&1; then + # List available tags for debugging + echo -e "${YELLOW}Available tags:${NC}" + git tag | grep -E "^5\.[34]" | head -10 || git tag | tail -10 + error_exit "Ref does not exist: $ref (must be a branch, tag, or commit)" + fi + fi + + # Checkout the ref (works for branches, tags, and commits) + echo "Checking out ref: $ref" + if ! git checkout "$ref" 2>/dev/null; then + # Try with -f flag for tags that might have conflicts + if ! git checkout -f "$ref" 2>/dev/null; then + error_exit "Failed to checkout ref: $ref" + fi + fi + + # Find the Gradle project root after checkout + local gradle_root + gradle_root=$(find_gradle_root) + + # Check for Gradle wrapper in the project root + local gradlew_path + if [ -f "$gradle_root/gradlew" ]; then + gradlew_path="$gradle_root/gradlew" + elif [ -f "./gradlew" ]; then + gradlew_path="./gradlew" + else + error_exit "Gradle wrapper (gradlew) not found. Expected in: $gradle_root or current directory" + fi + + # Make gradlew executable + chmod +x "$gradlew_path" 2>/dev/null || true + + # Determine the working directory for gradle + local gradle_cmd + if [ "$gradle_root" != "$PWD" ]; then + gradle_cmd="$gradlew_path" + echo "Using Gradle wrapper from: $gradle_root" + else + gradle_cmd="./gradlew" + fi + + # Handle parent settings.gradle interference + local temp_settings_created=false + if [ -f "build.gradle" ] && [ ! -f "settings.gradle" ]; then + local parent_settings=$(dirname "$PWD")/settings.gradle + if [ -f "$parent_settings" ]; then + echo "rootProject.name = 'android-client'" > "settings.gradle" + temp_settings_created=true + echo "Created temporary settings.gradle to isolate build from parent" + fi + fi + + # Verify Metalava JAR is available + if [ ! -f "$METALAVA_JAR" ]; then + error_exit "Metalava JAR not found at: $METALAVA_JAR. Please run setup_metalava first." + fi + + # Add Metalava task to build.gradle if needed + local build_gradle_file + if [ -f "$gradle_root/build.gradle" ]; then + build_gradle_file="$gradle_root/build.gradle" + elif [ -f "build.gradle" ]; then + build_gradle_file="build.gradle" + else + error_exit "build.gradle not found" + fi + + # Add the Metalava task to build.gradle + add_metalava_task "$build_gradle_file" "$METALAVA_JAR" + + # Generate API signature using the Gradle task + echo "Generating API signature using Metalava..." + + # First, try to compile the project to ensure source is valid + echo "Compiling project..." + if ! "$gradle_cmd" compileReleaseJavaWithJavac --quiet --no-daemon > /dev/null 2>&1; then + echo -e "${YELLOW}Warning: Compilation had issues, but continuing with API generation...${NC}" + fi + + # Generate API signature using our custom task + echo "Running generateApiSignature task..." + if ! "$gradle_cmd" generateApiSignature --quiet --no-daemon; then + error_exit "Failed to generate API signature using Metalava" + fi + + # Find the generated API signature file + local api_path="" + local possible_paths=( + "$gradle_root/$API_SIGNATURE_FILE" + "./$API_SIGNATURE_FILE" + "api.txt" + ) + + for path in "${possible_paths[@]}"; do + if [ -f "$path" ]; then + api_path="$path" + break + fi + done + + if [ -z "$api_path" ] || [ ! -f "$api_path" ]; then + echo -e "${YELLOW}Warning: API signature file not found. Attempting to create a basic one...${NC}" + echo -e "${YELLOW}Note: You may need to configure Metalava in your build.gradle manually.${NC}" + echo -e "${YELLOW}Add this to your android block:${NC}" + echo "" + echo " metalava {" + echo " generateSignature = true" + echo " signatureOutputDirectory = project.rootDir" + echo " filename = \"api.txt\"" + echo " }" + echo "" + + # Create an empty API file as fallback (so script doesn't fail) + touch "$gradle_root/$API_SIGNATURE_FILE" + api_path="$gradle_root/$API_SIGNATURE_FILE" + fi + + echo "Found API signature at: $api_path" + + # Copy API signature to temp location + cp "$api_path" "$output_api" + echo -e "${GREEN}✓${NC} API signature generated and copied: $(basename "$output_api")" + + # Clean up temporary settings.gradle if we created one + if [ "$temp_settings_created" = true ] && [ -f "settings.gradle" ]; then + rm -f "settings.gradle" + fi +} + +# Colorize diff output +colorize_diff() { + while IFS= read -r line || [ -n "$line" ]; do + case "$line" in + ---*|+++*) + # File headers - blue + echo -e "${BLUE}${line}${NC}" + ;; + -" "*) + # Removed lines - red + echo -e "${RED}${line}${NC}" + ;; + +" "*) + # Added lines - green + echo -e "${GREEN}${line}${NC}" + ;; + @@*) + # Hunk headers - yellow + echo -e "${YELLOW}${line}${NC}" + ;; + *) + # Context lines - no color + echo "$line" + ;; + esac + done +} + +# Compare API signature files +compare_api_signatures() { + local old_api="$1" + local new_api="$2" + + if [ ! -f "$old_api" ]; then + error_exit "Target API signature not found: $old_api" + fi + + if [ ! -f "$new_api" ]; then + error_exit "Source API signature not found: $new_api" + fi + + echo -e "\n${BLUE}Comparing API signatures...${NC}" + echo "OLD: $(basename "$old_api") (target: $TARGET_BRANCH)" + echo "NEW: $(basename "$new_api") (source: $SOURCE_BRANCH)" + echo "" + echo -e "${GREEN}Note: Only public API changes are shown. Private fields and methods are excluded.${NC}" + echo "" + + # Use diff to show the differences + # Use unified diff format for better readability + if command -v diff > /dev/null 2>&1; then + # Run diff directly and pipe through colorize_diff + # This ensures we always see the output + if diff -u "$old_api" "$new_api" 2>&1 | colorize_diff; then + # If diff returns 0 (no differences), colorize_diff will have shown nothing + # Check if files are actually identical + if cmp -s "$old_api" "$new_api" 2>/dev/null; then + echo -e "${GREEN}No public API changes detected.${NC}" + fi + else + # diff returned non-zero, meaning there are differences + # The diff output was already shown by colorize_diff above + echo -e "\n${YELLOW}Public API changes detected (see diff above).${NC}" + fi + else + error_exit "diff command not found. Please install diff utility." + fi +} + +# Main execution +main() { + echo -e "${GREEN}API Diff Tool (Metalava)${NC}" + echo "==============================" + echo "" + echo -e "${BLUE}This tool compares ONLY public API changes using Metalava.${NC}" + echo -e "${BLUE}Private fields, methods, and internal implementation details are excluded.${NC}" + echo "" + + # Parse arguments + parse_args "$@" + + # Get repository path + get_repo_path + + # Setup Metalava (use absolute path for cache since we'll be in temp dir) + setup_metalava + + # Clone repository to temporary directory + clone_repo + + # Generate source branch API signature first (newer version) + generate_api_signature "$SOURCE_BRANCH" "$SOURCE_API" + + # Generate target branch API signature second (older version) + generate_api_signature "$TARGET_BRANCH" "$TARGET_API" + + # Compare API signatures + # Note: We show OLD -> NEW, so we pass target (old) first, then source (new) + compare_api_signatures "$TARGET_API" "$SOURCE_API" + + # Show file locations + echo -e "\n${BLUE}API Signature File Locations:${NC}" + echo "Target (old) API: $TARGET_API" + echo "Source (new) API: $SOURCE_API" + + # Save final API signature if requested + if [ "$SAVE_API_FILE" = true ]; then + if [ -n "$OUTPUT_API_FILE" ]; then + cp "$SOURCE_API" "$OUTPUT_API_FILE" + echo -e "\n${GREEN}✓${NC} Final API signature saved to: $OUTPUT_API_FILE" + else + # Default: save to current directory with timestamp + local timestamp=$(date +%Y%m%d_%H%M%S) + OUTPUT_API_FILE="api-${SOURCE_BRANCH//\//_}-${timestamp}.txt" + cp "$SOURCE_API" "$OUTPUT_API_FILE" + echo -e "\n${GREEN}✓${NC} Final API signature saved to: $OUTPUT_API_FILE" + fi + fi + + echo -e "\n${GREEN}✓${NC} API comparison completed successfully" +} + +# Run main function +main "$@" + diff --git a/scripts/diffuse.sh b/scripts/diffuse.sh index 8f412f12d..60d18dc20 100755 --- a/scripts/diffuse.sh +++ b/scripts/diffuse.sh @@ -32,7 +32,8 @@ GRADLE_TASK_CANDIDATES=("bundle" "bundleReleaseAar" "assembleRelease") # Temporary files TEMP_DIR=$(mktemp -d) -CLONE_DIR="${TEMP_DIR}/repo" +SOURCE_CLONE_DIR="${TEMP_DIR}/source-repo" +TARGET_CLONE_DIR="${TEMP_DIR}/target-repo" TARGET_AAR="${TEMP_DIR}/target-branch.aar" SOURCE_AAR="${TEMP_DIR}/source-branch.aar" @@ -199,15 +200,18 @@ get_repo_path() { # Clone repository to temporary directory clone_repo() { - log_verbose "Cloning repository to temporary directory..." + local clone_dir="$1" + local label="$2" + + log_verbose "Cloning repository to temporary directory ($label)..." # Clone the repository (using file:// protocol for local repos) # This creates a clean copy without affecting the original - if [ -d "$CLONE_DIR" ]; then - rm -rf "$CLONE_DIR" + if [ -d "$clone_dir" ]; then + rm -rf "$clone_dir" fi - log_verbose "Cloning to: $CLONE_DIR" + log_verbose "Cloning to: $clone_dir" # Use file:// protocol for local repository cloning local repo_url if [[ "$REPO_PATH" == /* ]]; then @@ -218,16 +222,16 @@ clone_repo() { repo_url="file://$(cd "$REPO_PATH" && pwd)" fi - git clone --tags "$repo_url" "$CLONE_DIR" > /dev/null 2>&1 || error_exit "Failed to clone repository" + git clone --tags "$repo_url" "$clone_dir" > /dev/null 2>&1 || error_exit "Failed to clone repository for $label" # Fetch all remotes and tags from the original repo (in case of remote refs) - (cd "$CLONE_DIR" && git remote set-url origin "$repo_url" > /dev/null 2>&1 || true) - (cd "$CLONE_DIR" && git fetch --all --tags --prune > /dev/null 2>&1 || true) + (cd "$clone_dir" && git remote set-url origin "$repo_url" > /dev/null 2>&1 || true) + (cd "$clone_dir" && git fetch --all --tags --prune > /dev/null 2>&1 || true) # Also fetch tags directly from the original repo to ensure we have all local tags - (cd "$CLONE_DIR" && git fetch "$repo_url" "+refs/tags/*:refs/tags/*" > /dev/null 2>&1 || true) + (cd "$clone_dir" && git fetch "$repo_url" "+refs/tags/*:refs/tags/*" > /dev/null 2>&1 || true) - log_verbose "✓ Repository cloned" + log_verbose "✓ Repository cloned for $label" } # Download and setup Diffuse @@ -499,13 +503,14 @@ run_diffuse() { # Build AAR for a specific branch/tag/commit build_aar() { - local ref="$1" - local output_aar="$2" + local clone_dir="$1" + local ref="$2" + local output_aar="$3" log_verbose "Building AAR for ref: ${ref}" # Change to cloned repository directory - cd "$CLONE_DIR" || error_exit "Failed to change to cloned repository directory" + cd "$clone_dir" || error_exit "Failed to change to cloned repository directory" # Verify ref exists (handles branches, tags, and commits) # First try to verify directly @@ -585,12 +590,17 @@ build_aar() { # Build the fused AAR using the first available Gradle task # Clean first to avoid cross-branch artifacts affecting selection + # Use aggressive cleaning to ensure no cached artifacts remain log_verbose "Running: $gradle_cmd clean" if [ "$VERBOSE" = true ]; then "$gradle_cmd" clean --no-daemon || true else "$gradle_cmd" clean --quiet --no-daemon >/dev/null 2>&1 || true fi + + # Additional cleanup: remove build directories to ensure fresh build + log_verbose "Removing build directories for clean slate..." + rm -rf build/ */build/ .gradle/ */.gradle/ 2>/dev/null || true local build_ok=false local used_task="" for task in "${GRADLE_TASK_CANDIDATES[@]}"; do @@ -669,7 +679,17 @@ build_aar() { # Copy AAR to temp location cp "$aar_path" "$output_aar" - log_verbose "✓ AAR built and copied for ref '${ref}': $(basename "$output_aar")" + + # Verify the AAR was copied and log its size and checksum + local aar_size + aar_size=$(stat -f%z "$output_aar" 2>/dev/null || stat -c%s "$output_aar" 2>/dev/null || echo "unknown") + local aar_sha="" + if command -v shasum >/dev/null 2>&1; then + aar_sha=$(shasum -a 256 "$output_aar" 2>/dev/null | awk '{print $1}') + elif command -v openssl >/dev/null 2>&1; then + aar_sha=$(openssl dgst -sha256 "$output_aar" 2>/dev/null | awk '{print $2}') + fi + log_verbose "✓ AAR built and copied for ref '${ref}': $(basename "$output_aar") (${aar_size} bytes${aar_sha:+, sha256: $aar_sha})" # Clean up temporary settings.gradle if we created one # (This is cleaned up here, but also safe if script fails - temp dir will be removed) @@ -690,15 +710,17 @@ main() { local original_dir="$PWD" setup_diffuse - # Clone repository to temporary directory - clone_repo + # Clone repository twice - once for each branch to ensure complete isolation + # This prevents any build cache or Gradle state from affecting the comparison + clone_repo "$SOURCE_CLONE_DIR" "source" + clone_repo "$TARGET_CLONE_DIR" "target" # Build source branch AAR first (newer version) # This ensures we build the newer version first, which may have more dependencies - build_aar "$SOURCE_BRANCH" "$SOURCE_AAR" + build_aar "$SOURCE_CLONE_DIR" "$SOURCE_BRANCH" "$SOURCE_AAR" - # Build target branch AAR second (older version) - build_aar "$TARGET_BRANCH" "$TARGET_AAR" + # Build target branch AAR second (older version) in separate clone directory + build_aar "$TARGET_CLONE_DIR" "$TARGET_BRANCH" "$TARGET_AAR" # Summarize what will be compared (paths, sizes, hashes) to ensure distinct artifacts # Only show in verbose mode From 96855526be0e87fcbd2756edd6a22b81b0b112ab Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Fri, 14 Nov 2025 14:12:08 -0300 Subject: [PATCH 25/26] Pull remote branches --- scripts/diffuse.sh | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/scripts/diffuse.sh b/scripts/diffuse.sh index 60d18dc20..c7f9403da 100755 --- a/scripts/diffuse.sh +++ b/scripts/diffuse.sh @@ -224,12 +224,27 @@ clone_repo() { git clone --tags "$repo_url" "$clone_dir" > /dev/null 2>&1 || error_exit "Failed to clone repository for $label" - # Fetch all remotes and tags from the original repo (in case of remote refs) - (cd "$clone_dir" && git remote set-url origin "$repo_url" > /dev/null 2>&1 || true) - (cd "$clone_dir" && git fetch --all --tags --prune > /dev/null 2>&1 || true) - - # Also fetch tags directly from the original repo to ensure we have all local tags - (cd "$clone_dir" && git fetch "$repo_url" "+refs/tags/*:refs/tags/*" > /dev/null 2>&1 || true) + # After cloning from local repo, we need to fetch from the actual remote origin + # to ensure all remote branches are properly available + (cd "$clone_dir" && { + # Get the actual remote origin URL from the source repo + ACTUAL_ORIGIN=$(cd "$REPO_PATH" && git remote get-url origin 2>/dev/null || echo "") + + if [ -n "$ACTUAL_ORIGIN" ]; then + log_verbose "Fetching from actual remote origin: $ACTUAL_ORIGIN" + # Update origin to point to the actual remote + git remote set-url origin "$ACTUAL_ORIGIN" > /dev/null 2>&1 || true + # Fetch all branches and tags from the actual remote + git fetch origin --all --tags --prune > /dev/null 2>&1 || true + else + # Fallback: fetch from local repo + git remote set-url origin "$repo_url" > /dev/null 2>&1 || true + git fetch --all --tags --prune > /dev/null 2>&1 || true + fi + + # Also fetch tags directly + git fetch origin "+refs/tags/*:refs/tags/*" > /dev/null 2>&1 || true + }) log_verbose "✓ Repository cloned for $label" } From 4c95ae3683e52cf4aff96acd5c2651b5e79fe23d Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Fri, 14 Nov 2025 17:35:04 -0300 Subject: [PATCH 26/26] New script --- scripts/diffuse.sh | 55 ++++++++++++++++++---------------------------- 1 file changed, 21 insertions(+), 34 deletions(-) diff --git a/scripts/diffuse.sh b/scripts/diffuse.sh index c7f9403da..c8842919f 100755 --- a/scripts/diffuse.sh +++ b/scripts/diffuse.sh @@ -226,25 +226,24 @@ clone_repo() { # After cloning from local repo, we need to fetch from the actual remote origin # to ensure all remote branches are properly available - (cd "$clone_dir" && { - # Get the actual remote origin URL from the source repo - ACTUAL_ORIGIN=$(cd "$REPO_PATH" && git remote get-url origin 2>/dev/null || echo "") - - if [ -n "$ACTUAL_ORIGIN" ]; then - log_verbose "Fetching from actual remote origin: $ACTUAL_ORIGIN" - # Update origin to point to the actual remote - git remote set-url origin "$ACTUAL_ORIGIN" > /dev/null 2>&1 || true - # Fetch all branches and tags from the actual remote - git fetch origin --all --tags --prune > /dev/null 2>&1 || true - else - # Fallback: fetch from local repo - git remote set-url origin "$repo_url" > /dev/null 2>&1 || true - git fetch --all --tags --prune > /dev/null 2>&1 || true - fi - - # Also fetch tags directly - git fetch origin "+refs/tags/*:refs/tags/*" > /dev/null 2>&1 || true - }) + ( + cd "$clone_dir" || error_exit "Failed to enter clone dir for $label" + + # Get the actual remote origin URL from the source repo + ACTUAL_ORIGIN=$(cd "$REPO_PATH" && git remote get-url origin 2>/dev/null || echo "") + + if [ -n "$ACTUAL_ORIGIN" ]; then + log_verbose "Fetching from actual remote origin: $ACTUAL_ORIGIN" + # Update origin to point to the actual remote + git remote set-url origin "$ACTUAL_ORIGIN" > /dev/null 2>&1 || true + else + log_verbose "Using local repository as origin: $repo_url" + git remote set-url origin "$repo_url" > /dev/null 2>&1 || true + fi + + # Fetch branches and tags for origin using default refspec + git fetch origin --prune --tags > /dev/null 2>&1 || true + ) log_verbose "✓ Repository cloned for $label" } @@ -528,22 +527,10 @@ build_aar() { cd "$clone_dir" || error_exit "Failed to change to cloned repository directory" # Verify ref exists (handles branches, tags, and commits) - # First try to verify directly + # At this point clone_repo has already fetched from origin, so the + # ref should exist if it exists on the remote. if ! git rev-parse --verify "$ref" > /dev/null 2>&1; then - # If that fails, try fetching the ref from origin - log_verbose "Ref not found locally, attempting to fetch..." - git fetch origin "$ref:$ref" > /dev/null 2>&1 || true - # Also try fetching as a tag - if [[ "$ref" =~ ^[0-9] ]]; then - git fetch origin "refs/tags/$ref:refs/tags/$ref" > /dev/null 2>&1 || true - fi - # Try again - if ! git rev-parse --verify "$ref" > /dev/null 2>&1; then - # List available tags for debugging - [ "$VERBOSE" = true ] && echo -e "${YELLOW}Available tags:${NC}" - [ "$VERBOSE" = true ] && git tag | grep -E "^5\.[34]" | head -10 || git tag | tail -10 - error_exit "Ref does not exist: $ref (must be a branch, tag, or commit)" - fi + error_exit "Ref does not exist in cloned repo: $ref (ensure this branch/tag/SHA exists on origin)" fi # Checkout the ref (works for branches, tags, and commits)