first commit

This commit is contained in:
Justin 2026-04-15 12:19:48 -05:00
commit 13a51517c1
1738 changed files with 53987 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
y4akcrjq7vhprlphb6sjf6zh5e/ÇüCÄ~cÈ· %"$êˆclasses y,xý¤#h'²óH‰ˆsourcesh±FÊv¢<76>b+`¶]uQ¥

View File

@ -0,0 +1,931 @@
package org.gradle.accessors.dm;
import org.gradle.api.NonNullApi;
import org.gradle.api.artifacts.MinimalExternalModuleDependency;
import org.gradle.plugin.use.PluginDependency;
import org.gradle.api.artifacts.ExternalModuleDependencyBundle;
import org.gradle.api.artifacts.MutableVersionConstraint;
import org.gradle.api.provider.Provider;
import org.gradle.api.model.ObjectFactory;
import org.gradle.api.provider.ProviderFactory;
import org.gradle.api.internal.catalog.AbstractExternalDependencyFactory;
import org.gradle.api.internal.catalog.DefaultVersionCatalog;
import java.util.Map;
import org.gradle.api.internal.attributes.ImmutableAttributesFactory;
import org.gradle.api.internal.artifacts.dsl.CapabilityNotationParser;
import javax.inject.Inject;
/**
* A catalog of dependencies accessible via the {@code libs} extension.
*/
@NonNullApi
public class LibrariesForLibs extends AbstractExternalDependencyFactory {
private final AbstractExternalDependencyFactory owner = this;
private final AndroidxLibraryAccessors laccForAndroidxLibraryAccessors = new AndroidxLibraryAccessors(owner);
private final DatastoreLibraryAccessors laccForDatastoreLibraryAccessors = new DatastoreLibraryAccessors(owner);
private final HiltLibraryAccessors laccForHiltLibraryAccessors = new HiltLibraryAccessors(owner);
private final KotlinxLibraryAccessors laccForKotlinxLibraryAccessors = new KotlinxLibraryAccessors(owner);
private final OkhttpLibraryAccessors laccForOkhttpLibraryAccessors = new OkhttpLibraryAccessors(owner);
private final RetrofitLibraryAccessors laccForRetrofitLibraryAccessors = new RetrofitLibraryAccessors(owner);
private final StartupLibraryAccessors laccForStartupLibraryAccessors = new StartupLibraryAccessors(owner);
private final WorkLibraryAccessors laccForWorkLibraryAccessors = new WorkLibraryAccessors(owner);
private final VersionAccessors vaccForVersionAccessors = new VersionAccessors(providers, config);
private final BundleAccessors baccForBundleAccessors = new BundleAccessors(objects, providers, config, attributesFactory, capabilityNotationParser);
private final PluginAccessors paccForPluginAccessors = new PluginAccessors(providers, config);
@Inject
public LibrariesForLibs(DefaultVersionCatalog config, ProviderFactory providers, ObjectFactory objects, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) {
super(config, providers, objects, attributesFactory, capabilityNotationParser);
}
/**
* Group of libraries at <b>androidx</b>
*/
public AndroidxLibraryAccessors getAndroidx() {
return laccForAndroidxLibraryAccessors;
}
/**
* Group of libraries at <b>datastore</b>
*/
public DatastoreLibraryAccessors getDatastore() {
return laccForDatastoreLibraryAccessors;
}
/**
* Group of libraries at <b>hilt</b>
*/
public HiltLibraryAccessors getHilt() {
return laccForHiltLibraryAccessors;
}
/**
* Group of libraries at <b>kotlinx</b>
*/
public KotlinxLibraryAccessors getKotlinx() {
return laccForKotlinxLibraryAccessors;
}
/**
* Group of libraries at <b>okhttp</b>
*/
public OkhttpLibraryAccessors getOkhttp() {
return laccForOkhttpLibraryAccessors;
}
/**
* Group of libraries at <b>retrofit</b>
*/
public RetrofitLibraryAccessors getRetrofit() {
return laccForRetrofitLibraryAccessors;
}
/**
* Group of libraries at <b>startup</b>
*/
public StartupLibraryAccessors getStartup() {
return laccForStartupLibraryAccessors;
}
/**
* Group of libraries at <b>work</b>
*/
public WorkLibraryAccessors getWork() {
return laccForWorkLibraryAccessors;
}
/**
* Group of versions at <b>versions</b>
*/
public VersionAccessors getVersions() {
return vaccForVersionAccessors;
}
/**
* Group of bundles at <b>bundles</b>
*/
public BundleAccessors getBundles() {
return baccForBundleAccessors;
}
/**
* Group of plugins at <b>plugins</b>
*/
public PluginAccessors getPlugins() {
return paccForPluginAccessors;
}
public static class AndroidxLibraryAccessors extends SubDependencyFactory {
private final AndroidxActivityLibraryAccessors laccForAndroidxActivityLibraryAccessors = new AndroidxActivityLibraryAccessors(owner);
private final AndroidxComposeLibraryAccessors laccForAndroidxComposeLibraryAccessors = new AndroidxComposeLibraryAccessors(owner);
private final AndroidxCoreLibraryAccessors laccForAndroidxCoreLibraryAccessors = new AndroidxCoreLibraryAccessors(owner);
private final AndroidxLifecycleLibraryAccessors laccForAndroidxLifecycleLibraryAccessors = new AndroidxLifecycleLibraryAccessors(owner);
private final AndroidxMaterialLibraryAccessors laccForAndroidxMaterialLibraryAccessors = new AndroidxMaterialLibraryAccessors(owner);
private final AndroidxNavigationLibraryAccessors laccForAndroidxNavigationLibraryAccessors = new AndroidxNavigationLibraryAccessors(owner);
private final AndroidxUiLibraryAccessors laccForAndroidxUiLibraryAccessors = new AndroidxUiLibraryAccessors(owner);
public AndroidxLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>appcompat</b> with <b>androidx.appcompat:appcompat</b> coordinates and
* with version <b>1.7.0</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getAppcompat() {
return create("androidx.appcompat");
}
/**
* Dependency provider for <b>material3</b> with <b>androidx.compose.material3:material3</b> coordinates and
* with <b>no version specified</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getMaterial3() {
return create("androidx.material3");
}
/**
* Group of libraries at <b>androidx.activity</b>
*/
public AndroidxActivityLibraryAccessors getActivity() {
return laccForAndroidxActivityLibraryAccessors;
}
/**
* Group of libraries at <b>androidx.compose</b>
*/
public AndroidxComposeLibraryAccessors getCompose() {
return laccForAndroidxComposeLibraryAccessors;
}
/**
* Group of libraries at <b>androidx.core</b>
*/
public AndroidxCoreLibraryAccessors getCore() {
return laccForAndroidxCoreLibraryAccessors;
}
/**
* Group of libraries at <b>androidx.lifecycle</b>
*/
public AndroidxLifecycleLibraryAccessors getLifecycle() {
return laccForAndroidxLifecycleLibraryAccessors;
}
/**
* Group of libraries at <b>androidx.material</b>
*/
public AndroidxMaterialLibraryAccessors getMaterial() {
return laccForAndroidxMaterialLibraryAccessors;
}
/**
* Group of libraries at <b>androidx.navigation</b>
*/
public AndroidxNavigationLibraryAccessors getNavigation() {
return laccForAndroidxNavigationLibraryAccessors;
}
/**
* Group of libraries at <b>androidx.ui</b>
*/
public AndroidxUiLibraryAccessors getUi() {
return laccForAndroidxUiLibraryAccessors;
}
}
public static class AndroidxActivityLibraryAccessors extends SubDependencyFactory {
public AndroidxActivityLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>compose</b> with <b>androidx.activity:activity-compose</b> coordinates and
* with version reference <b>activityCompose</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getCompose() {
return create("androidx.activity.compose");
}
}
public static class AndroidxComposeLibraryAccessors extends SubDependencyFactory {
public AndroidxComposeLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>bom</b> with <b>androidx.compose:compose-bom</b> coordinates and
* with version reference <b>composeBom</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getBom() {
return create("androidx.compose.bom");
}
}
public static class AndroidxCoreLibraryAccessors extends SubDependencyFactory {
public AndroidxCoreLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>ktx</b> with <b>androidx.core:core-ktx</b> coordinates and
* with version reference <b>coreKtx</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getKtx() {
return create("androidx.core.ktx");
}
}
public static class AndroidxLifecycleLibraryAccessors extends SubDependencyFactory {
private final AndroidxLifecycleRuntimeLibraryAccessors laccForAndroidxLifecycleRuntimeLibraryAccessors = new AndroidxLifecycleRuntimeLibraryAccessors(owner);
private final AndroidxLifecycleViewmodelLibraryAccessors laccForAndroidxLifecycleViewmodelLibraryAccessors = new AndroidxLifecycleViewmodelLibraryAccessors(owner);
public AndroidxLifecycleLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Group of libraries at <b>androidx.lifecycle.runtime</b>
*/
public AndroidxLifecycleRuntimeLibraryAccessors getRuntime() {
return laccForAndroidxLifecycleRuntimeLibraryAccessors;
}
/**
* Group of libraries at <b>androidx.lifecycle.viewmodel</b>
*/
public AndroidxLifecycleViewmodelLibraryAccessors getViewmodel() {
return laccForAndroidxLifecycleViewmodelLibraryAccessors;
}
}
public static class AndroidxLifecycleRuntimeLibraryAccessors extends SubDependencyFactory {
public AndroidxLifecycleRuntimeLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>compose</b> with <b>androidx.lifecycle:lifecycle-runtime-compose</b> coordinates and
* with version reference <b>lifecycleRuntimeKtx</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getCompose() {
return create("androidx.lifecycle.runtime.compose");
}
/**
* Dependency provider for <b>ktx</b> with <b>androidx.lifecycle:lifecycle-runtime-ktx</b> coordinates and
* with version reference <b>lifecycleRuntimeKtx</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getKtx() {
return create("androidx.lifecycle.runtime.ktx");
}
}
public static class AndroidxLifecycleViewmodelLibraryAccessors extends SubDependencyFactory {
public AndroidxLifecycleViewmodelLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>compose</b> with <b>androidx.lifecycle:lifecycle-viewmodel-compose</b> coordinates and
* with version reference <b>lifecycleRuntimeKtx</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getCompose() {
return create("androidx.lifecycle.viewmodel.compose");
}
}
public static class AndroidxMaterialLibraryAccessors extends SubDependencyFactory {
private final AndroidxMaterialIconsLibraryAccessors laccForAndroidxMaterialIconsLibraryAccessors = new AndroidxMaterialIconsLibraryAccessors(owner);
public AndroidxMaterialLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Group of libraries at <b>androidx.material.icons</b>
*/
public AndroidxMaterialIconsLibraryAccessors getIcons() {
return laccForAndroidxMaterialIconsLibraryAccessors;
}
}
public static class AndroidxMaterialIconsLibraryAccessors extends SubDependencyFactory {
public AndroidxMaterialIconsLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>extended</b> with <b>androidx.compose.material:material-icons-extended</b> coordinates and
* with <b>no version specified</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getExtended() {
return create("androidx.material.icons.extended");
}
}
public static class AndroidxNavigationLibraryAccessors extends SubDependencyFactory {
public AndroidxNavigationLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>compose</b> with <b>androidx.navigation:navigation-compose</b> coordinates and
* with version reference <b>navigationCompose</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getCompose() {
return create("androidx.navigation.compose");
}
}
public static class AndroidxUiLibraryAccessors extends SubDependencyFactory implements DependencyNotationSupplier {
private final AndroidxUiToolingLibraryAccessors laccForAndroidxUiToolingLibraryAccessors = new AndroidxUiToolingLibraryAccessors(owner);
public AndroidxUiLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>ui</b> with <b>androidx.compose.ui:ui</b> coordinates and
* with <b>no version specified</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> asProvider() {
return create("androidx.ui");
}
/**
* Dependency provider for <b>graphics</b> with <b>androidx.compose.ui:ui-graphics</b> coordinates and
* with <b>no version specified</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getGraphics() {
return create("androidx.ui.graphics");
}
/**
* Group of libraries at <b>androidx.ui.tooling</b>
*/
public AndroidxUiToolingLibraryAccessors getTooling() {
return laccForAndroidxUiToolingLibraryAccessors;
}
}
public static class AndroidxUiToolingLibraryAccessors extends SubDependencyFactory implements DependencyNotationSupplier {
public AndroidxUiToolingLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>tooling</b> with <b>androidx.compose.ui:ui-tooling</b> coordinates and
* with <b>no version specified</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> asProvider() {
return create("androidx.ui.tooling");
}
/**
* Dependency provider for <b>preview</b> with <b>androidx.compose.ui:ui-tooling-preview</b> coordinates and
* with <b>no version specified</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getPreview() {
return create("androidx.ui.tooling.preview");
}
}
public static class DatastoreLibraryAccessors extends SubDependencyFactory {
public DatastoreLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>preferences</b> with <b>androidx.datastore:datastore-preferences</b> coordinates and
* with version reference <b>datastorePreferences</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getPreferences() {
return create("datastore.preferences");
}
}
public static class HiltLibraryAccessors extends SubDependencyFactory {
private final HiltNavigationLibraryAccessors laccForHiltNavigationLibraryAccessors = new HiltNavigationLibraryAccessors(owner);
private final HiltWorkLibraryAccessors laccForHiltWorkLibraryAccessors = new HiltWorkLibraryAccessors(owner);
public HiltLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>android</b> with <b>com.google.dagger:hilt-android</b> coordinates and
* with version reference <b>hilt</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getAndroid() {
return create("hilt.android");
}
/**
* Dependency provider for <b>compiler</b> with <b>com.google.dagger:hilt-compiler</b> coordinates and
* with version reference <b>hilt</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getCompiler() {
return create("hilt.compiler");
}
/**
* Group of libraries at <b>hilt.navigation</b>
*/
public HiltNavigationLibraryAccessors getNavigation() {
return laccForHiltNavigationLibraryAccessors;
}
/**
* Group of libraries at <b>hilt.work</b>
*/
public HiltWorkLibraryAccessors getWork() {
return laccForHiltWorkLibraryAccessors;
}
}
public static class HiltNavigationLibraryAccessors extends SubDependencyFactory {
public HiltNavigationLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>compose</b> with <b>androidx.hilt:hilt-navigation-compose</b> coordinates and
* with version reference <b>hiltNavigationCompose</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getCompose() {
return create("hilt.navigation.compose");
}
}
public static class HiltWorkLibraryAccessors extends SubDependencyFactory implements DependencyNotationSupplier {
public HiltWorkLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>work</b> with <b>androidx.hilt:hilt-work</b> coordinates and
* with version <b>1.2.0</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> asProvider() {
return create("hilt.work");
}
/**
* Dependency provider for <b>compiler</b> with <b>androidx.hilt:hilt-compiler</b> coordinates and
* with version <b>1.2.0</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getCompiler() {
return create("hilt.work.compiler");
}
}
public static class KotlinxLibraryAccessors extends SubDependencyFactory {
private final KotlinxCoroutinesLibraryAccessors laccForKotlinxCoroutinesLibraryAccessors = new KotlinxCoroutinesLibraryAccessors(owner);
private final KotlinxSerializationLibraryAccessors laccForKotlinxSerializationLibraryAccessors = new KotlinxSerializationLibraryAccessors(owner);
public KotlinxLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Group of libraries at <b>kotlinx.coroutines</b>
*/
public KotlinxCoroutinesLibraryAccessors getCoroutines() {
return laccForKotlinxCoroutinesLibraryAccessors;
}
/**
* Group of libraries at <b>kotlinx.serialization</b>
*/
public KotlinxSerializationLibraryAccessors getSerialization() {
return laccForKotlinxSerializationLibraryAccessors;
}
}
public static class KotlinxCoroutinesLibraryAccessors extends SubDependencyFactory {
public KotlinxCoroutinesLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>android</b> with <b>org.jetbrains.kotlinx:kotlinx-coroutines-android</b> coordinates and
* with version reference <b>kotlinxCoroutines</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getAndroid() {
return create("kotlinx.coroutines.android");
}
}
public static class KotlinxSerializationLibraryAccessors extends SubDependencyFactory {
public KotlinxSerializationLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>json</b> with <b>org.jetbrains.kotlinx:kotlinx-serialization-json</b> coordinates and
* with version reference <b>kotlinxSerializationJson</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getJson() {
return create("kotlinx.serialization.json");
}
}
public static class OkhttpLibraryAccessors extends SubDependencyFactory implements DependencyNotationSupplier {
public OkhttpLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>okhttp</b> with <b>com.squareup.okhttp3:okhttp</b> coordinates and
* with version reference <b>okhttp</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> asProvider() {
return create("okhttp");
}
/**
* Dependency provider for <b>logging</b> with <b>com.squareup.okhttp3:logging-interceptor</b> coordinates and
* with version reference <b>okhttp</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getLogging() {
return create("okhttp.logging");
}
}
public static class RetrofitLibraryAccessors extends SubDependencyFactory implements DependencyNotationSupplier {
private final RetrofitKotlinxLibraryAccessors laccForRetrofitKotlinxLibraryAccessors = new RetrofitKotlinxLibraryAccessors(owner);
public RetrofitLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>retrofit</b> with <b>com.squareup.retrofit2:retrofit</b> coordinates and
* with version reference <b>retrofit</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> asProvider() {
return create("retrofit");
}
/**
* Group of libraries at <b>retrofit.kotlinx</b>
*/
public RetrofitKotlinxLibraryAccessors getKotlinx() {
return laccForRetrofitKotlinxLibraryAccessors;
}
}
public static class RetrofitKotlinxLibraryAccessors extends SubDependencyFactory {
public RetrofitKotlinxLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>serialization</b> with <b>com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter</b> coordinates and
* with version reference <b>retrofitKotlinxSerialization</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getSerialization() {
return create("retrofit.kotlinx.serialization");
}
}
public static class StartupLibraryAccessors extends SubDependencyFactory {
public StartupLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>runtime</b> with <b>androidx.startup:startup-runtime</b> coordinates and
* with version <b>1.2.0</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getRuntime() {
return create("startup.runtime");
}
}
public static class WorkLibraryAccessors extends SubDependencyFactory {
private final WorkRuntimeLibraryAccessors laccForWorkRuntimeLibraryAccessors = new WorkRuntimeLibraryAccessors(owner);
public WorkLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Group of libraries at <b>work.runtime</b>
*/
public WorkRuntimeLibraryAccessors getRuntime() {
return laccForWorkRuntimeLibraryAccessors;
}
}
public static class WorkRuntimeLibraryAccessors extends SubDependencyFactory {
public WorkRuntimeLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
/**
* Dependency provider for <b>ktx</b> with <b>androidx.work:work-runtime-ktx</b> coordinates and
* with version reference <b>workRuntime</b>
* <p>
* This dependency was declared in catalog libs.versions.toml
*/
public Provider<MinimalExternalModuleDependency> getKtx() {
return create("work.runtime.ktx");
}
}
public static class VersionAccessors extends VersionFactory {
public VersionAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
/**
* Version alias <b>activityCompose</b> with value <b>1.9.3</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getActivityCompose() { return getVersion("activityCompose"); }
/**
* Version alias <b>agp</b> with value <b>8.5.2</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getAgp() { return getVersion("agp"); }
/**
* Version alias <b>composeBom</b> with value <b>2024.10.01</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getComposeBom() { return getVersion("composeBom"); }
/**
* Version alias <b>coreKtx</b> with value <b>1.13.1</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getCoreKtx() { return getVersion("coreKtx"); }
/**
* Version alias <b>datastorePreferences</b> with value <b>1.1.1</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getDatastorePreferences() { return getVersion("datastorePreferences"); }
/**
* Version alias <b>hilt</b> with value <b>2.52</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getHilt() { return getVersion("hilt"); }
/**
* Version alias <b>hiltNavigationCompose</b> with value <b>1.2.0</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getHiltNavigationCompose() { return getVersion("hiltNavigationCompose"); }
/**
* Version alias <b>kotlin</b> with value <b>2.0.0</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getKotlin() { return getVersion("kotlin"); }
/**
* Version alias <b>kotlinxCoroutines</b> with value <b>1.9.0</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getKotlinxCoroutines() { return getVersion("kotlinxCoroutines"); }
/**
* Version alias <b>kotlinxSerializationJson</b> with value <b>1.7.3</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getKotlinxSerializationJson() { return getVersion("kotlinxSerializationJson"); }
/**
* Version alias <b>lifecycleRuntimeKtx</b> with value <b>2.8.7</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getLifecycleRuntimeKtx() { return getVersion("lifecycleRuntimeKtx"); }
/**
* Version alias <b>navigationCompose</b> with value <b>2.8.4</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getNavigationCompose() { return getVersion("navigationCompose"); }
/**
* Version alias <b>okhttp</b> with value <b>4.12.0</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getOkhttp() { return getVersion("okhttp"); }
/**
* Version alias <b>retrofit</b> with value <b>2.11.0</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getRetrofit() { return getVersion("retrofit"); }
/**
* Version alias <b>retrofitKotlinxSerialization</b> with value <b>1.0.0</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getRetrofitKotlinxSerialization() { return getVersion("retrofitKotlinxSerialization"); }
/**
* Version alias <b>workRuntime</b> with value <b>2.10.0</b>
* <p>
* If the version is a rich version and cannot be represented as a
* single version string, an empty string is returned.
* <p>
* This version was declared in catalog libs.versions.toml
*/
public Provider<String> getWorkRuntime() { return getVersion("workRuntime"); }
}
public static class BundleAccessors extends BundleFactory {
public BundleAccessors(ObjectFactory objects, ProviderFactory providers, DefaultVersionCatalog config, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) { super(objects, providers, config, attributesFactory, capabilityNotationParser); }
}
public static class PluginAccessors extends PluginFactory {
private final AndroidPluginAccessors paccForAndroidPluginAccessors = new AndroidPluginAccessors(providers, config);
private final KotlinPluginAccessors paccForKotlinPluginAccessors = new KotlinPluginAccessors(providers, config);
public PluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
/**
* Plugin provider for <b>hilt</b> with plugin id <b>com.google.dagger.hilt.android</b> and
* with version reference <b>hilt</b>
* <p>
* This plugin was declared in catalog libs.versions.toml
*/
public Provider<PluginDependency> getHilt() { return createPlugin("hilt"); }
/**
* Group of plugins at <b>plugins.android</b>
*/
public AndroidPluginAccessors getAndroid() {
return paccForAndroidPluginAccessors;
}
/**
* Group of plugins at <b>plugins.kotlin</b>
*/
public KotlinPluginAccessors getKotlin() {
return paccForKotlinPluginAccessors;
}
}
public static class AndroidPluginAccessors extends PluginFactory {
public AndroidPluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
/**
* Plugin provider for <b>android.application</b> with plugin id <b>com.android.application</b> and
* with version reference <b>agp</b>
* <p>
* This plugin was declared in catalog libs.versions.toml
*/
public Provider<PluginDependency> getApplication() { return createPlugin("android.application"); }
}
public static class KotlinPluginAccessors extends PluginFactory {
public KotlinPluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
/**
* Plugin provider for <b>kotlin.android</b> with plugin id <b>org.jetbrains.kotlin.android</b> and
* with version reference <b>kotlin</b>
* <p>
* This plugin was declared in catalog libs.versions.toml
*/
public Provider<PluginDependency> getAndroid() { return createPlugin("kotlin.android"); }
/**
* Plugin provider for <b>kotlin.compose</b> with plugin id <b>org.jetbrains.kotlin.plugin.compose</b> and
* with version reference <b>kotlin</b>
* <p>
* This plugin was declared in catalog libs.versions.toml
*/
public Provider<PluginDependency> getCompose() { return createPlugin("kotlin.compose"); }
/**
* Plugin provider for <b>kotlin.serialization</b> with plugin id <b>org.jetbrains.kotlin.plugin.serialization</b> and
* with version reference <b>kotlin</b>
* <p>
* This plugin was declared in catalog libs.versions.toml
*/
public Provider<PluginDependency> getSerialization() { return createPlugin("kotlin.serialization"); }
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

Binary file not shown.

View File

@ -0,0 +1,2 @@
#Wed Apr 15 08:34:01 CDT 2026
gradle.version=8.7

Binary file not shown.

View File

@ -0,0 +1,2 @@
#Wed Apr 15 08:33:22 CDT 2026
java.home=C\:\\Program Files\\Android\\Android Studio\\jbr

BIN
.gradle/file-system.probe Normal file

Binary file not shown.

View File

3
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidProjectSystem">
<option name="providerId" value="com.android.tools.idea.GradleProjectSystem" />
</component>
</project>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,123 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JetCodeStyleSettings>
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>
<codeStyleSettings language="XML">
<option name="FORCE_REARRANGE_MODE" value="1" />
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</codeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

6
.idea/compiler.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="21" />
</component>
</project>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetSelector">
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
<DialogSelection />
</SelectionState>
</selectionStates>
</component>
</project>

13
.idea/deviceManager.xml Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DeviceTable">
<option name="columnSorters">
<list>
<ColumnSorterState>
<option name="column" value="Name" />
<option name="order" value="ASCENDING" />
</ColumnSorterState>
</list>
</option>
</component>
</project>

18
.idea/gradle.xml Normal file
View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="CHOOSE_PER_TEST" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

8
.idea/markdown.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MarkdownSettings">
<option name="previewPanelProviderInfo">
<ProviderInfo name="Compose (experimental)" className="com.intellij.markdown.compose.preview.ComposePanelProvider" />
</option>
</component>
</project>

10
.idea/migrations.xml Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectMigrations">
<option name="MigrateToGradleLocalJavaHome">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>

10
.idea/misc.xml Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
<option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
<option value="com.intellij.execution.junit.PatternConfigurationProducer" />
<option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
<option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
<option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
<option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
<option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
</set>
</option>
</component>
</project>

View File

@ -0,0 +1,46 @@
kotlin version: 2.0.0
error message: Failed connecting to the daemon in 3 retries
error message: Daemon compilation failed: Could not connect to Kotlin compile daemon
java.lang.RuntimeException: Could not connect to Kotlin compile daemon
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemon(GradleKotlinCompilerWork.kt:214)
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.compileWithDaemonOrFallbackImpl(GradleKotlinCompilerWork.kt:159)
at org.jetbrains.kotlin.compilerRunner.GradleKotlinCompilerWork.run(GradleKotlinCompilerWork.kt:111)
at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction.execute(GradleCompilerRunnerWithWorkers.kt:76)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:62)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:62)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:59)
at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:174)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:187)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:120)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:162)
at org.gradle.internal.Factories$1.create(Factories.java:31)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:264)
at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:128)
at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:133)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:157)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:126)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)

142
README.md Normal file
View File

@ -0,0 +1,142 @@
# Hoppie ACARS Android App
A native Android application for [Hoppie's ACARS network](https://www.hoppie.nl/acars/) built with Kotlin + Jetpack Compose.
## Features
| Feature | Details |
|---|---|
| **Live Message Feed** | Poll inbox with auto-scroll, filter by message type |
| **Compose Messages** | Telex, CPDLC, and custom message types |
| **Weather & ATIS** | METAR, TAF, VATSIM/IVAO/PilotEdge ATIS via inforeq |
| **PDC Templates** | Pre-Departure Clearance quick-fill form |
| **CPDLC Templates** | WILCO, UNABLE, ROGER, FL request shortcuts |
| **Auto-Polling** | Randomized 4575s interval (per Hoppie spec) |
| **Background Worker** | WorkManager polling when app is backgrounded |
| **Persistent Settings** | Logon code + callsign saved to DataStore |
| **Dark Cockpit Theme** | Aviation-inspired color palette |
## Architecture
```
app/
└── java/com/hoppieacars/
├── HoppieApp.kt @HiltAndroidApp
├── MainActivity.kt NavHost + BottomNav
├── data/
│ ├── api/
│ │ ├── HoppieApiService.kt Retrofit interface
│ │ ├── HoppieResponseParser.kt Plain-text response parser
│ │ └── ScalarConverterFactory String body converter
│ ├── model/
│ │ └── Models.kt AcarsMessage, MessageType, etc.
│ └── repository/
│ ├── AcarsRepository.kt Business logic, message store
│ └── SettingsRepository.kt DataStore persistence
├── di/
│ └── NetworkModule.kt Hilt → OkHttp/Retrofit
├── ui/
│ ├── AcarsViewModel.kt StateFlow ViewModel
│ ├── Navigation.kt Screen routes
│ ├── screens/
│ │ ├── MessagesScreen.kt Live feed + filter chips
│ │ ├── ComposeScreen.kt Telex / CPDLC / custom
│ │ ├── WeatherScreen.kt METAR / TAF / ATIS
│ │ └── SettingsScreen.kt Logon + callsign config
│ ├── components/
│ │ └── SharedComponents.kt MessageCard, StatusDot, etc.
│ └── theme/
│ └── Theme.kt Dark aviation palette
└── util/
└── AcarsPollWorker.kt Background WorkManager worker
```
## Getting Started
### Prerequisites
- Android Studio Hedgehog (2023.1.1) or newer
- Android SDK 26+ (Android 8.0)
- A free Hoppie logon code: https://www.hoppie.nl/acars/system/register.html
### Build
1. Clone / unzip this project
2. Open in Android Studio
3. Let Gradle sync
4. Run on device or emulator (API 26+)
### First-Time Setup
1. Open **Settings** tab
2. Enter your **Hoppie Logon Code**
3. Enter your **Station Callsign** (e.g. `BAW123` for aircraft, `EGLL_GND` for ATC)
4. Tap **Save Settings**
5. Go to **Messages** tab and tap **START**
## Hoppie API Reference
Base URL: `https://www.hoppie.nl/acars/system/connect.html`
### Request Parameters
| Param | Description |
|---|---|
| `logon` | Secret logon code (≥24 chars) |
| `from` | Your callsign |
| `to` | Recipient callsign or `SERVER` |
| `type` | `poll`, `telex`, `cpdlc`, `ping`, `inforeq`, `posreq`, `position`, `progress` |
| `packet` | Message payload (empty for poll/ping) |
### Poll Response Format
```
ok ← no messages
ok {CALLSIGN type {payload}} {…} {…} ← one or more messages
error {reason} ← error
```
### Polling Rules (important!)
- Poll once per **4575 seconds** (randomized to spread server load)
- After sending a message, may poll once after **20 seconds**
- **Don't poll until your station has sent its first message**
- Use `ping` (not `poll`) to test connectivity — ping doesn't register you as online
### Message Types
| Type | Direction | Description |
|---|---|---|
| `telex` | Both | General text messages |
| `cpdlc` | Both | Controller-Pilot Data Link Communications |
| `progress` | Aircraft → Dispatch | OUT/OFF/ON/IN times |
| `position` | Aircraft → Ground | Position reports |
| `posreq` | Either | Request a position report |
| `ping` | → Server | Link test (doesn't register online) |
| `inforeq` | → Server | Weather/ATIS requests |
### InfoReq Packet Format
```
metar KLAX
taf EGLL
shorttaf KJFK
vatatis EDDM
ivaoatis LFPG-GND
peatis KSAN
```
## Dependencies
| Library | Version | Purpose |
|---|---|---|
| Jetpack Compose BOM | 2024.08.00 | UI framework |
| Hilt | 2.51.1 | Dependency injection |
| Retrofit | 2.11.0 | HTTP client |
| OkHttp | 4.12.0 | Network layer |
| DataStore | 1.1.1 | Settings persistence |
| WorkManager | 2.9.1 | Background polling |
| Navigation Compose | 2.7.7 | Screen navigation |
## Notes
- The app uses **cleartext HTTP** (`android:usesCleartextTraffic="true"`) since the Hoppie server is HTTP only
- Logon codes expire after **3 months of inactivity** — any login renews them
- The in-memory message log holds up to **500 messages** and resets on process death
- CPDLC packet format follows ICAO FANS-1/A specification — see [Hoppie CPDLC docs](https://www.hoppie.nl/acars/system/cpdlc.html)
## License
MIT — free to use, modify, and redistribute.

96
app/build.gradle.kts Normal file
View File

@ -0,0 +1,96 @@
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.hilt)
alias(libs.plugins.kotlin.serialization)
kotlin("kapt")
}
android {
namespace = "com.hoppieacars"
compileSdk = 35
defaultConfig {
applicationId = "com.hoppieacars"
minSdk = 26
targetSdk = 35
versionCode = 1
versionName = "1.0.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
buildFeatures {
compose = true
}
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.lifecycle.viewmodel.compose)
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
implementation(libs.androidx.material.icons.extended)
implementation(libs.androidx.navigation.compose)
// Hilt DI
implementation(libs.hilt.android)
kapt(libs.hilt.compiler)
implementation(libs.hilt.navigation.compose)
// Networking
implementation(libs.retrofit)
implementation(libs.retrofit.kotlinx.serialization)
implementation(libs.okhttp)
implementation(libs.okhttp.logging)
// Serialization
implementation(libs.kotlinx.serialization.json)
implementation(libs.kotlinx.coroutines.android)
// DataStore
implementation(libs.datastore.preferences)
// WorkManager
implementation(libs.work.runtime.ktx)
implementation(libs.hilt.work)
kapt(libs.hilt.work.compiler)
implementation(libs.startup.runtime)
debugImplementation(libs.androidx.ui.tooling)
}
kapt {
correctErrorTypes = true
arguments {
arg("dagger.hilt.android.internal.disableAndroidSuperclassValidation", "true")
}
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,666 @@
package com.hoppieacars;
import android.app.Activity;
import android.app.Service;
import android.content.Context;
import android.view.View;
import androidx.fragment.app.Fragment;
import androidx.hilt.work.HiltWorkerFactory;
import androidx.hilt.work.WorkerAssistedFactory;
import androidx.hilt.work.WorkerFactoryModule_ProvideFactoryFactory;
import androidx.lifecycle.SavedStateHandle;
import androidx.lifecycle.ViewModel;
import androidx.work.ListenableWorker;
import androidx.work.WorkerParameters;
import com.hoppieacars.data.api.HoppieApiService;
import com.hoppieacars.data.repository.AcarsRepository;
import com.hoppieacars.data.repository.SettingsRepository;
import com.hoppieacars.di.NetworkModule_ProvideHoppieApiServiceFactory;
import com.hoppieacars.di.NetworkModule_ProvideOkHttpClientFactory;
import com.hoppieacars.di.NetworkModule_ProvideRetrofitFactory;
import com.hoppieacars.ui.AcarsViewModel;
import com.hoppieacars.ui.AcarsViewModel_HiltModules;
import com.hoppieacars.util.AcarsPollWorker;
import com.hoppieacars.util.AcarsPollWorker_AssistedFactory;
import dagger.hilt.android.ActivityRetainedLifecycle;
import dagger.hilt.android.ViewModelLifecycle;
import dagger.hilt.android.internal.builders.ActivityComponentBuilder;
import dagger.hilt.android.internal.builders.ActivityRetainedComponentBuilder;
import dagger.hilt.android.internal.builders.FragmentComponentBuilder;
import dagger.hilt.android.internal.builders.ServiceComponentBuilder;
import dagger.hilt.android.internal.builders.ViewComponentBuilder;
import dagger.hilt.android.internal.builders.ViewModelComponentBuilder;
import dagger.hilt.android.internal.builders.ViewWithFragmentComponentBuilder;
import dagger.hilt.android.internal.lifecycle.DefaultViewModelFactories;
import dagger.hilt.android.internal.lifecycle.DefaultViewModelFactories_InternalFactoryFactory_Factory;
import dagger.hilt.android.internal.managers.ActivityRetainedComponentManager_LifecycleModule_ProvideActivityRetainedLifecycleFactory;
import dagger.hilt.android.internal.managers.SavedStateHandleHolder;
import dagger.hilt.android.internal.modules.ApplicationContextModule;
import dagger.hilt.android.internal.modules.ApplicationContextModule_ProvideContextFactory;
import dagger.internal.DaggerGenerated;
import dagger.internal.DoubleCheck;
import dagger.internal.IdentifierNameString;
import dagger.internal.KeepFieldType;
import dagger.internal.LazyClassKeyMap;
import dagger.internal.Preconditions;
import dagger.internal.Provider;
import dagger.internal.SingleCheck;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import javax.annotation.processing.Generated;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
@DaggerGenerated
@Generated(
value = "dagger.internal.codegen.ComponentProcessor",
comments = "https://dagger.dev"
)
@SuppressWarnings({
"unchecked",
"rawtypes",
"KotlinInternal",
"KotlinInternalInJava",
"cast",
"deprecation"
})
public final class DaggerHoppieApp_HiltComponents_SingletonC {
private DaggerHoppieApp_HiltComponents_SingletonC() {
}
public static Builder builder() {
return new Builder();
}
public static final class Builder {
private ApplicationContextModule applicationContextModule;
private Builder() {
}
public Builder applicationContextModule(ApplicationContextModule applicationContextModule) {
this.applicationContextModule = Preconditions.checkNotNull(applicationContextModule);
return this;
}
public HoppieApp_HiltComponents.SingletonC build() {
Preconditions.checkBuilderRequirement(applicationContextModule, ApplicationContextModule.class);
return new SingletonCImpl(applicationContextModule);
}
}
private static final class ActivityRetainedCBuilder implements HoppieApp_HiltComponents.ActivityRetainedC.Builder {
private final SingletonCImpl singletonCImpl;
private SavedStateHandleHolder savedStateHandleHolder;
private ActivityRetainedCBuilder(SingletonCImpl singletonCImpl) {
this.singletonCImpl = singletonCImpl;
}
@Override
public ActivityRetainedCBuilder savedStateHandleHolder(
SavedStateHandleHolder savedStateHandleHolder) {
this.savedStateHandleHolder = Preconditions.checkNotNull(savedStateHandleHolder);
return this;
}
@Override
public HoppieApp_HiltComponents.ActivityRetainedC build() {
Preconditions.checkBuilderRequirement(savedStateHandleHolder, SavedStateHandleHolder.class);
return new ActivityRetainedCImpl(singletonCImpl, savedStateHandleHolder);
}
}
private static final class ActivityCBuilder implements HoppieApp_HiltComponents.ActivityC.Builder {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl;
private Activity activity;
private ActivityCBuilder(SingletonCImpl singletonCImpl,
ActivityRetainedCImpl activityRetainedCImpl) {
this.singletonCImpl = singletonCImpl;
this.activityRetainedCImpl = activityRetainedCImpl;
}
@Override
public ActivityCBuilder activity(Activity activity) {
this.activity = Preconditions.checkNotNull(activity);
return this;
}
@Override
public HoppieApp_HiltComponents.ActivityC build() {
Preconditions.checkBuilderRequirement(activity, Activity.class);
return new ActivityCImpl(singletonCImpl, activityRetainedCImpl, activity);
}
}
private static final class FragmentCBuilder implements HoppieApp_HiltComponents.FragmentC.Builder {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl;
private final ActivityCImpl activityCImpl;
private Fragment fragment;
private FragmentCBuilder(SingletonCImpl singletonCImpl,
ActivityRetainedCImpl activityRetainedCImpl, ActivityCImpl activityCImpl) {
this.singletonCImpl = singletonCImpl;
this.activityRetainedCImpl = activityRetainedCImpl;
this.activityCImpl = activityCImpl;
}
@Override
public FragmentCBuilder fragment(Fragment fragment) {
this.fragment = Preconditions.checkNotNull(fragment);
return this;
}
@Override
public HoppieApp_HiltComponents.FragmentC build() {
Preconditions.checkBuilderRequirement(fragment, Fragment.class);
return new FragmentCImpl(singletonCImpl, activityRetainedCImpl, activityCImpl, fragment);
}
}
private static final class ViewWithFragmentCBuilder implements HoppieApp_HiltComponents.ViewWithFragmentC.Builder {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl;
private final ActivityCImpl activityCImpl;
private final FragmentCImpl fragmentCImpl;
private View view;
private ViewWithFragmentCBuilder(SingletonCImpl singletonCImpl,
ActivityRetainedCImpl activityRetainedCImpl, ActivityCImpl activityCImpl,
FragmentCImpl fragmentCImpl) {
this.singletonCImpl = singletonCImpl;
this.activityRetainedCImpl = activityRetainedCImpl;
this.activityCImpl = activityCImpl;
this.fragmentCImpl = fragmentCImpl;
}
@Override
public ViewWithFragmentCBuilder view(View view) {
this.view = Preconditions.checkNotNull(view);
return this;
}
@Override
public HoppieApp_HiltComponents.ViewWithFragmentC build() {
Preconditions.checkBuilderRequirement(view, View.class);
return new ViewWithFragmentCImpl(singletonCImpl, activityRetainedCImpl, activityCImpl, fragmentCImpl, view);
}
}
private static final class ViewCBuilder implements HoppieApp_HiltComponents.ViewC.Builder {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl;
private final ActivityCImpl activityCImpl;
private View view;
private ViewCBuilder(SingletonCImpl singletonCImpl, ActivityRetainedCImpl activityRetainedCImpl,
ActivityCImpl activityCImpl) {
this.singletonCImpl = singletonCImpl;
this.activityRetainedCImpl = activityRetainedCImpl;
this.activityCImpl = activityCImpl;
}
@Override
public ViewCBuilder view(View view) {
this.view = Preconditions.checkNotNull(view);
return this;
}
@Override
public HoppieApp_HiltComponents.ViewC build() {
Preconditions.checkBuilderRequirement(view, View.class);
return new ViewCImpl(singletonCImpl, activityRetainedCImpl, activityCImpl, view);
}
}
private static final class ViewModelCBuilder implements HoppieApp_HiltComponents.ViewModelC.Builder {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl;
private SavedStateHandle savedStateHandle;
private ViewModelLifecycle viewModelLifecycle;
private ViewModelCBuilder(SingletonCImpl singletonCImpl,
ActivityRetainedCImpl activityRetainedCImpl) {
this.singletonCImpl = singletonCImpl;
this.activityRetainedCImpl = activityRetainedCImpl;
}
@Override
public ViewModelCBuilder savedStateHandle(SavedStateHandle handle) {
this.savedStateHandle = Preconditions.checkNotNull(handle);
return this;
}
@Override
public ViewModelCBuilder viewModelLifecycle(ViewModelLifecycle viewModelLifecycle) {
this.viewModelLifecycle = Preconditions.checkNotNull(viewModelLifecycle);
return this;
}
@Override
public HoppieApp_HiltComponents.ViewModelC build() {
Preconditions.checkBuilderRequirement(savedStateHandle, SavedStateHandle.class);
Preconditions.checkBuilderRequirement(viewModelLifecycle, ViewModelLifecycle.class);
return new ViewModelCImpl(singletonCImpl, activityRetainedCImpl, savedStateHandle, viewModelLifecycle);
}
}
private static final class ServiceCBuilder implements HoppieApp_HiltComponents.ServiceC.Builder {
private final SingletonCImpl singletonCImpl;
private Service service;
private ServiceCBuilder(SingletonCImpl singletonCImpl) {
this.singletonCImpl = singletonCImpl;
}
@Override
public ServiceCBuilder service(Service service) {
this.service = Preconditions.checkNotNull(service);
return this;
}
@Override
public HoppieApp_HiltComponents.ServiceC build() {
Preconditions.checkBuilderRequirement(service, Service.class);
return new ServiceCImpl(singletonCImpl, service);
}
}
private static final class ViewWithFragmentCImpl extends HoppieApp_HiltComponents.ViewWithFragmentC {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl;
private final ActivityCImpl activityCImpl;
private final FragmentCImpl fragmentCImpl;
private final ViewWithFragmentCImpl viewWithFragmentCImpl = this;
private ViewWithFragmentCImpl(SingletonCImpl singletonCImpl,
ActivityRetainedCImpl activityRetainedCImpl, ActivityCImpl activityCImpl,
FragmentCImpl fragmentCImpl, View viewParam) {
this.singletonCImpl = singletonCImpl;
this.activityRetainedCImpl = activityRetainedCImpl;
this.activityCImpl = activityCImpl;
this.fragmentCImpl = fragmentCImpl;
}
}
private static final class FragmentCImpl extends HoppieApp_HiltComponents.FragmentC {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl;
private final ActivityCImpl activityCImpl;
private final FragmentCImpl fragmentCImpl = this;
private FragmentCImpl(SingletonCImpl singletonCImpl,
ActivityRetainedCImpl activityRetainedCImpl, ActivityCImpl activityCImpl,
Fragment fragmentParam) {
this.singletonCImpl = singletonCImpl;
this.activityRetainedCImpl = activityRetainedCImpl;
this.activityCImpl = activityCImpl;
}
@Override
public DefaultViewModelFactories.InternalFactoryFactory getHiltInternalFactoryFactory() {
return activityCImpl.getHiltInternalFactoryFactory();
}
@Override
public ViewWithFragmentComponentBuilder viewWithFragmentComponentBuilder() {
return new ViewWithFragmentCBuilder(singletonCImpl, activityRetainedCImpl, activityCImpl, fragmentCImpl);
}
}
private static final class ViewCImpl extends HoppieApp_HiltComponents.ViewC {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl;
private final ActivityCImpl activityCImpl;
private final ViewCImpl viewCImpl = this;
private ViewCImpl(SingletonCImpl singletonCImpl, ActivityRetainedCImpl activityRetainedCImpl,
ActivityCImpl activityCImpl, View viewParam) {
this.singletonCImpl = singletonCImpl;
this.activityRetainedCImpl = activityRetainedCImpl;
this.activityCImpl = activityCImpl;
}
}
private static final class ActivityCImpl extends HoppieApp_HiltComponents.ActivityC {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl;
private final ActivityCImpl activityCImpl = this;
private ActivityCImpl(SingletonCImpl singletonCImpl,
ActivityRetainedCImpl activityRetainedCImpl, Activity activityParam) {
this.singletonCImpl = singletonCImpl;
this.activityRetainedCImpl = activityRetainedCImpl;
}
@Override
public void injectMainActivity(MainActivity arg0) {
}
@Override
public DefaultViewModelFactories.InternalFactoryFactory getHiltInternalFactoryFactory() {
return DefaultViewModelFactories_InternalFactoryFactory_Factory.newInstance(getViewModelKeys(), new ViewModelCBuilder(singletonCImpl, activityRetainedCImpl));
}
@Override
public Map<Class<?>, Boolean> getViewModelKeys() {
return LazyClassKeyMap.<Boolean>of(Collections.<String, Boolean>singletonMap(LazyClassKeyProvider.com_hoppieacars_ui_AcarsViewModel, AcarsViewModel_HiltModules.KeyModule.provide()));
}
@Override
public ViewModelComponentBuilder getViewModelComponentBuilder() {
return new ViewModelCBuilder(singletonCImpl, activityRetainedCImpl);
}
@Override
public FragmentComponentBuilder fragmentComponentBuilder() {
return new FragmentCBuilder(singletonCImpl, activityRetainedCImpl, activityCImpl);
}
@Override
public ViewComponentBuilder viewComponentBuilder() {
return new ViewCBuilder(singletonCImpl, activityRetainedCImpl, activityCImpl);
}
@IdentifierNameString
private static final class LazyClassKeyProvider {
static String com_hoppieacars_ui_AcarsViewModel = "com.hoppieacars.ui.AcarsViewModel";
@KeepFieldType
AcarsViewModel com_hoppieacars_ui_AcarsViewModel2;
}
}
private static final class ViewModelCImpl extends HoppieApp_HiltComponents.ViewModelC {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl;
private final ViewModelCImpl viewModelCImpl = this;
private Provider<AcarsViewModel> acarsViewModelProvider;
private ViewModelCImpl(SingletonCImpl singletonCImpl,
ActivityRetainedCImpl activityRetainedCImpl, SavedStateHandle savedStateHandleParam,
ViewModelLifecycle viewModelLifecycleParam) {
this.singletonCImpl = singletonCImpl;
this.activityRetainedCImpl = activityRetainedCImpl;
initialize(savedStateHandleParam, viewModelLifecycleParam);
}
@SuppressWarnings("unchecked")
private void initialize(final SavedStateHandle savedStateHandleParam,
final ViewModelLifecycle viewModelLifecycleParam) {
this.acarsViewModelProvider = new SwitchingProvider<>(singletonCImpl, activityRetainedCImpl, viewModelCImpl, 0);
}
@Override
public Map<Class<?>, javax.inject.Provider<ViewModel>> getHiltViewModelMap() {
return LazyClassKeyMap.<javax.inject.Provider<ViewModel>>of(Collections.<String, javax.inject.Provider<ViewModel>>singletonMap(LazyClassKeyProvider.com_hoppieacars_ui_AcarsViewModel, ((Provider) acarsViewModelProvider)));
}
@Override
public Map<Class<?>, Object> getHiltViewModelAssistedMap() {
return Collections.<Class<?>, Object>emptyMap();
}
@IdentifierNameString
private static final class LazyClassKeyProvider {
static String com_hoppieacars_ui_AcarsViewModel = "com.hoppieacars.ui.AcarsViewModel";
@KeepFieldType
AcarsViewModel com_hoppieacars_ui_AcarsViewModel2;
}
private static final class SwitchingProvider<T> implements Provider<T> {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl;
private final ViewModelCImpl viewModelCImpl;
private final int id;
SwitchingProvider(SingletonCImpl singletonCImpl, ActivityRetainedCImpl activityRetainedCImpl,
ViewModelCImpl viewModelCImpl, int id) {
this.singletonCImpl = singletonCImpl;
this.activityRetainedCImpl = activityRetainedCImpl;
this.viewModelCImpl = viewModelCImpl;
this.id = id;
}
@SuppressWarnings("unchecked")
@Override
public T get() {
switch (id) {
case 0: // com.hoppieacars.ui.AcarsViewModel
return (T) new AcarsViewModel(singletonCImpl.acarsRepositoryProvider.get(), singletonCImpl.settingsRepositoryProvider.get());
default: throw new AssertionError(id);
}
}
}
}
private static final class ActivityRetainedCImpl extends HoppieApp_HiltComponents.ActivityRetainedC {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl = this;
private Provider<ActivityRetainedLifecycle> provideActivityRetainedLifecycleProvider;
private ActivityRetainedCImpl(SingletonCImpl singletonCImpl,
SavedStateHandleHolder savedStateHandleHolderParam) {
this.singletonCImpl = singletonCImpl;
initialize(savedStateHandleHolderParam);
}
@SuppressWarnings("unchecked")
private void initialize(final SavedStateHandleHolder savedStateHandleHolderParam) {
this.provideActivityRetainedLifecycleProvider = DoubleCheck.provider(new SwitchingProvider<ActivityRetainedLifecycle>(singletonCImpl, activityRetainedCImpl, 0));
}
@Override
public ActivityComponentBuilder activityComponentBuilder() {
return new ActivityCBuilder(singletonCImpl, activityRetainedCImpl);
}
@Override
public ActivityRetainedLifecycle getActivityRetainedLifecycle() {
return provideActivityRetainedLifecycleProvider.get();
}
private static final class SwitchingProvider<T> implements Provider<T> {
private final SingletonCImpl singletonCImpl;
private final ActivityRetainedCImpl activityRetainedCImpl;
private final int id;
SwitchingProvider(SingletonCImpl singletonCImpl, ActivityRetainedCImpl activityRetainedCImpl,
int id) {
this.singletonCImpl = singletonCImpl;
this.activityRetainedCImpl = activityRetainedCImpl;
this.id = id;
}
@SuppressWarnings("unchecked")
@Override
public T get() {
switch (id) {
case 0: // dagger.hilt.android.ActivityRetainedLifecycle
return (T) ActivityRetainedComponentManager_LifecycleModule_ProvideActivityRetainedLifecycleFactory.provideActivityRetainedLifecycle();
default: throw new AssertionError(id);
}
}
}
}
private static final class ServiceCImpl extends HoppieApp_HiltComponents.ServiceC {
private final SingletonCImpl singletonCImpl;
private final ServiceCImpl serviceCImpl = this;
private ServiceCImpl(SingletonCImpl singletonCImpl, Service serviceParam) {
this.singletonCImpl = singletonCImpl;
}
}
private static final class SingletonCImpl extends HoppieApp_HiltComponents.SingletonC {
private final ApplicationContextModule applicationContextModule;
private final SingletonCImpl singletonCImpl = this;
private Provider<OkHttpClient> provideOkHttpClientProvider;
private Provider<Retrofit> provideRetrofitProvider;
private Provider<HoppieApiService> provideHoppieApiServiceProvider;
private Provider<AcarsRepository> acarsRepositoryProvider;
private Provider<SettingsRepository> settingsRepositoryProvider;
private Provider<AcarsPollWorker_AssistedFactory> acarsPollWorker_AssistedFactoryProvider;
private SingletonCImpl(ApplicationContextModule applicationContextModuleParam) {
this.applicationContextModule = applicationContextModuleParam;
initialize(applicationContextModuleParam);
}
private Map<String, javax.inject.Provider<WorkerAssistedFactory<? extends ListenableWorker>>> mapOfStringAndProviderOfWorkerAssistedFactoryOf(
) {
return Collections.<String, javax.inject.Provider<WorkerAssistedFactory<? extends ListenableWorker>>>singletonMap("com.hoppieacars.util.AcarsPollWorker", ((Provider) acarsPollWorker_AssistedFactoryProvider));
}
private HiltWorkerFactory hiltWorkerFactory() {
return WorkerFactoryModule_ProvideFactoryFactory.provideFactory(mapOfStringAndProviderOfWorkerAssistedFactoryOf());
}
@SuppressWarnings("unchecked")
private void initialize(final ApplicationContextModule applicationContextModuleParam) {
this.provideOkHttpClientProvider = DoubleCheck.provider(new SwitchingProvider<OkHttpClient>(singletonCImpl, 4));
this.provideRetrofitProvider = DoubleCheck.provider(new SwitchingProvider<Retrofit>(singletonCImpl, 3));
this.provideHoppieApiServiceProvider = DoubleCheck.provider(new SwitchingProvider<HoppieApiService>(singletonCImpl, 2));
this.acarsRepositoryProvider = DoubleCheck.provider(new SwitchingProvider<AcarsRepository>(singletonCImpl, 1));
this.settingsRepositoryProvider = DoubleCheck.provider(new SwitchingProvider<SettingsRepository>(singletonCImpl, 5));
this.acarsPollWorker_AssistedFactoryProvider = SingleCheck.provider(new SwitchingProvider<AcarsPollWorker_AssistedFactory>(singletonCImpl, 0));
}
@Override
public void injectHoppieApp(HoppieApp hoppieApp) {
injectHoppieApp2(hoppieApp);
}
@Override
public Set<Boolean> getDisableFragmentGetContextFix() {
return Collections.<Boolean>emptySet();
}
@Override
public ActivityRetainedComponentBuilder retainedComponentBuilder() {
return new ActivityRetainedCBuilder(singletonCImpl);
}
@Override
public ServiceComponentBuilder serviceComponentBuilder() {
return new ServiceCBuilder(singletonCImpl);
}
private HoppieApp injectHoppieApp2(HoppieApp instance) {
HoppieApp_MembersInjector.injectWorkerFactory(instance, hiltWorkerFactory());
return instance;
}
private static final class SwitchingProvider<T> implements Provider<T> {
private final SingletonCImpl singletonCImpl;
private final int id;
SwitchingProvider(SingletonCImpl singletonCImpl, int id) {
this.singletonCImpl = singletonCImpl;
this.id = id;
}
@SuppressWarnings("unchecked")
@Override
public T get() {
switch (id) {
case 0: // com.hoppieacars.util.AcarsPollWorker_AssistedFactory
return (T) new AcarsPollWorker_AssistedFactory() {
@Override
public AcarsPollWorker create(Context appContext, WorkerParameters workerParams) {
return new AcarsPollWorker(appContext, workerParams, singletonCImpl.acarsRepositoryProvider.get(), singletonCImpl.settingsRepositoryProvider.get());
}
};
case 1: // com.hoppieacars.data.repository.AcarsRepository
return (T) new AcarsRepository(singletonCImpl.provideHoppieApiServiceProvider.get());
case 2: // com.hoppieacars.data.api.HoppieApiService
return (T) NetworkModule_ProvideHoppieApiServiceFactory.provideHoppieApiService(singletonCImpl.provideRetrofitProvider.get());
case 3: // retrofit2.Retrofit
return (T) NetworkModule_ProvideRetrofitFactory.provideRetrofit(singletonCImpl.provideOkHttpClientProvider.get());
case 4: // okhttp3.OkHttpClient
return (T) NetworkModule_ProvideOkHttpClientFactory.provideOkHttpClient();
case 5: // com.hoppieacars.data.repository.SettingsRepository
return (T) new SettingsRepository(ApplicationContextModule_ProvideContextFactory.provideContext(singletonCImpl.applicationContextModule));
default: throw new AssertionError(id);
}
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More