Chastity game angefangen
This commit is contained in:
BIN
xxxthegame-android/.gradle/8.9/checksums/checksums.lock
Normal file
BIN
xxxthegame-android/.gradle/8.9/checksums/checksums.lock
Normal file
Binary file not shown.
BIN
xxxthegame-android/.gradle/8.9/checksums/md5-checksums.bin
Normal file
BIN
xxxthegame-android/.gradle/8.9/checksums/md5-checksums.bin
Normal file
Binary file not shown.
BIN
xxxthegame-android/.gradle/8.9/checksums/sha1-checksums.bin
Normal file
BIN
xxxthegame-android/.gradle/8.9/checksums/sha1-checksums.bin
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,745 @@
|
||||
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 CoilLibraryAccessors laccForCoilLibraryAccessors = new CoilLibraryAccessors(owner);
|
||||
private final KotlinxLibraryAccessors laccForKotlinxLibraryAccessors = new KotlinxLibraryAccessors(owner);
|
||||
private final OkhttpLibraryAccessors laccForOkhttpLibraryAccessors = new OkhttpLibraryAccessors(owner);
|
||||
private final RetrofitLibraryAccessors laccForRetrofitLibraryAccessors = new RetrofitLibraryAccessors(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);
|
||||
}
|
||||
|
||||
/**
|
||||
* Dependency provider for <b>gson</b> with <b>com.google.code.gson:gson</b> coordinates and
|
||||
* with version reference <b>gson</b>
|
||||
* <p>
|
||||
* This dependency was declared in catalog libs.versions.toml
|
||||
*/
|
||||
public Provider<MinimalExternalModuleDependency> getGson() {
|
||||
return create("gson");
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>androidx</b>
|
||||
*/
|
||||
public AndroidxLibraryAccessors getAndroidx() {
|
||||
return laccForAndroidxLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>coil</b>
|
||||
*/
|
||||
public CoilLibraryAccessors getCoil() {
|
||||
return laccForCoilLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 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 AndroidxDatastoreLibraryAccessors laccForAndroidxDatastoreLibraryAccessors = new AndroidxDatastoreLibraryAccessors(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>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.datastore</b>
|
||||
*/
|
||||
public AndroidxDatastoreLibraryAccessors getDatastore() {
|
||||
return laccForAndroidxDatastoreLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 AndroidxDatastoreLibraryAccessors extends SubDependencyFactory {
|
||||
|
||||
public AndroidxDatastoreLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||
|
||||
/**
|
||||
* Dependency provider for <b>preferences</b> with <b>androidx.datastore:datastore-preferences</b> coordinates and
|
||||
* with version reference <b>datastore</b>
|
||||
* <p>
|
||||
* This dependency was declared in catalog libs.versions.toml
|
||||
*/
|
||||
public Provider<MinimalExternalModuleDependency> getPreferences() {
|
||||
return create("androidx.datastore.preferences");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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>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 CoilLibraryAccessors extends SubDependencyFactory {
|
||||
|
||||
public CoilLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||
|
||||
/**
|
||||
* Dependency provider for <b>compose</b> with <b>io.coil-kt:coil-compose</b> coordinates and
|
||||
* with version reference <b>coil</b>
|
||||
* <p>
|
||||
* This dependency was declared in catalog libs.versions.toml
|
||||
*/
|
||||
public Provider<MinimalExternalModuleDependency> getCompose() {
|
||||
return create("coil.compose");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class KotlinxLibraryAccessors extends SubDependencyFactory {
|
||||
private final KotlinxCoroutinesLibraryAccessors laccForKotlinxCoroutinesLibraryAccessors = new KotlinxCoroutinesLibraryAccessors(owner);
|
||||
|
||||
public KotlinxLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>kotlinx.coroutines</b>
|
||||
*/
|
||||
public KotlinxCoroutinesLibraryAccessors getCoroutines() {
|
||||
return laccForKotlinxCoroutinesLibraryAccessors;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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>coroutines</b>
|
||||
* <p>
|
||||
* This dependency was declared in catalog libs.versions.toml
|
||||
*/
|
||||
public Provider<MinimalExternalModuleDependency> getAndroid() {
|
||||
return create("kotlinx.coroutines.android");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class OkhttpLibraryAccessors extends SubDependencyFactory implements DependencyNotationSupplier {
|
||||
private final OkhttpLoggingLibraryAccessors laccForOkhttpLoggingLibraryAccessors = new OkhttpLoggingLibraryAccessors(owner);
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>okhttp.logging</b>
|
||||
*/
|
||||
public OkhttpLoggingLibraryAccessors getLogging() {
|
||||
return laccForOkhttpLoggingLibraryAccessors;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class OkhttpLoggingLibraryAccessors extends SubDependencyFactory {
|
||||
|
||||
public OkhttpLoggingLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||
|
||||
/**
|
||||
* Dependency provider for <b>interceptor</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> getInterceptor() {
|
||||
return create("okhttp.logging.interceptor");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class RetrofitLibraryAccessors extends SubDependencyFactory implements DependencyNotationSupplier {
|
||||
private final RetrofitConverterLibraryAccessors laccForRetrofitConverterLibraryAccessors = new RetrofitConverterLibraryAccessors(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.converter</b>
|
||||
*/
|
||||
public RetrofitConverterLibraryAccessors getConverter() {
|
||||
return laccForRetrofitConverterLibraryAccessors;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static class RetrofitConverterLibraryAccessors extends SubDependencyFactory {
|
||||
|
||||
public RetrofitConverterLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||
|
||||
/**
|
||||
* Dependency provider for <b>gson</b> with <b>com.squareup.retrofit2:converter-gson</b> coordinates and
|
||||
* with version reference <b>retrofit</b>
|
||||
* <p>
|
||||
* This dependency was declared in catalog libs.versions.toml
|
||||
*/
|
||||
public Provider<MinimalExternalModuleDependency> getGson() {
|
||||
return create("retrofit.converter.gson");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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.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> 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>coil</b> with value <b>2.7.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> getCoil() { return getVersion("coil"); }
|
||||
|
||||
/**
|
||||
* Version alias <b>composeBom</b> with value <b>2024.09.03</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>coroutines</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> getCoroutines() { return getVersion("coroutines"); }
|
||||
|
||||
/**
|
||||
* Version alias <b>datastore</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> getDatastore() { return getVersion("datastore"); }
|
||||
|
||||
/**
|
||||
* Version alias <b>gson</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> getGson() { return getVersion("gson"); }
|
||||
|
||||
/**
|
||||
* Version alias <b>kotlin</b> with value <b>2.0.21</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>lifecycleRuntimeKtx</b> with value <b>2.8.6</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>material3</b> with value <b>1.3.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> getMaterial3() { return getVersion("material3"); }
|
||||
|
||||
/**
|
||||
* Version alias <b>navigationCompose</b> with value <b>2.8.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> 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"); }
|
||||
|
||||
}
|
||||
|
||||
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); }
|
||||
|
||||
/**
|
||||
* 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"); }
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,993 @@
|
||||
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 LibrariesForLibsInPluginsBlock extends AbstractExternalDependencyFactory {
|
||||
|
||||
private final AbstractExternalDependencyFactory owner = this;
|
||||
private final AndroidxLibraryAccessors laccForAndroidxLibraryAccessors = new AndroidxLibraryAccessors(owner);
|
||||
private final CoilLibraryAccessors laccForCoilLibraryAccessors = new CoilLibraryAccessors(owner);
|
||||
private final KotlinxLibraryAccessors laccForKotlinxLibraryAccessors = new KotlinxLibraryAccessors(owner);
|
||||
private final OkhttpLibraryAccessors laccForOkhttpLibraryAccessors = new OkhttpLibraryAccessors(owner);
|
||||
private final RetrofitLibraryAccessors laccForRetrofitLibraryAccessors = new RetrofitLibraryAccessors(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 LibrariesForLibsInPluginsBlock(DefaultVersionCatalog config, ProviderFactory providers, ObjectFactory objects, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) {
|
||||
super(config, providers, objects, attributesFactory, capabilityNotationParser);
|
||||
}
|
||||
|
||||
/**
|
||||
* Dependency provider for <b>gson</b> with <b>com.google.code.gson:gson</b> coordinates and
|
||||
* with version reference <b>gson</b>
|
||||
* <p>
|
||||
* This dependency was declared in catalog libs.versions.toml
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getGson() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("gson");
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>androidx</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxLibraryAccessors getAndroidx() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>coil</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public CoilLibraryAccessors getCoil() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForCoilLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>kotlinx</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public KotlinxLibraryAccessors getKotlinx() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForKotlinxLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>okhttp</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public OkhttpLibraryAccessors getOkhttp() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForOkhttpLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>retrofit</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public RetrofitLibraryAccessors getRetrofit() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForRetrofitLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of versions at <b>versions</b>
|
||||
*/
|
||||
public VersionAccessors getVersions() {
|
||||
return vaccForVersionAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of bundles at <b>bundles</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public BundleAccessors getBundles() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return baccForBundleAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of plugins at <b>plugins</b>
|
||||
*/
|
||||
public PluginAccessors getPlugins() {
|
||||
return paccForPluginAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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 AndroidxDatastoreLibraryAccessors laccForAndroidxDatastoreLibraryAccessors = new AndroidxDatastoreLibraryAccessors(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>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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getMaterial3() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("androidx.material3");
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>androidx.activity</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxActivityLibraryAccessors getActivity() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxActivityLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>androidx.compose</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxComposeLibraryAccessors getCompose() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxComposeLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>androidx.core</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxCoreLibraryAccessors getCore() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxCoreLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>androidx.datastore</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxDatastoreLibraryAccessors getDatastore() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxDatastoreLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>androidx.lifecycle</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxLifecycleLibraryAccessors getLifecycle() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxLifecycleLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>androidx.material</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxMaterialLibraryAccessors getMaterial() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxMaterialLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>androidx.navigation</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxNavigationLibraryAccessors getNavigation() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxNavigationLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>androidx.ui</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxUiLibraryAccessors getUi() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxUiLibraryAccessors;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getCompose() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("androidx.activity.compose");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getBom() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("androidx.compose.bom");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getKtx() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("androidx.core.ktx");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public static class AndroidxDatastoreLibraryAccessors extends SubDependencyFactory {
|
||||
|
||||
public AndroidxDatastoreLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||
|
||||
/**
|
||||
* Dependency provider for <b>preferences</b> with <b>androidx.datastore:datastore-preferences</b> coordinates and
|
||||
* with version reference <b>datastore</b>
|
||||
* <p>
|
||||
* This dependency was declared in catalog libs.versions.toml
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getPreferences() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("androidx.datastore.preferences");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxLifecycleRuntimeLibraryAccessors getRuntime() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxLifecycleRuntimeLibraryAccessors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>androidx.lifecycle.viewmodel</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxLifecycleViewmodelLibraryAccessors getViewmodel() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxLifecycleViewmodelLibraryAccessors;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public static class AndroidxLifecycleRuntimeLibraryAccessors extends SubDependencyFactory {
|
||||
|
||||
public AndroidxLifecycleRuntimeLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getKtx() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("androidx.lifecycle.runtime.ktx");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getCompose() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("androidx.lifecycle.viewmodel.compose");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxMaterialIconsLibraryAccessors getIcons() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxMaterialIconsLibraryAccessors;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getExtended() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("androidx.material.icons.extended");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getCompose() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("androidx.navigation.compose");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> asProvider() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getGraphics() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("androidx.ui.graphics");
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>androidx.ui.tooling</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public AndroidxUiToolingLibraryAccessors getTooling() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForAndroidxUiToolingLibraryAccessors;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> asProvider() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getPreview() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("androidx.ui.tooling.preview");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public static class CoilLibraryAccessors extends SubDependencyFactory {
|
||||
|
||||
public CoilLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||
|
||||
/**
|
||||
* Dependency provider for <b>compose</b> with <b>io.coil-kt:coil-compose</b> coordinates and
|
||||
* with version reference <b>coil</b>
|
||||
* <p>
|
||||
* This dependency was declared in catalog libs.versions.toml
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getCompose() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("coil.compose");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public static class KotlinxLibraryAccessors extends SubDependencyFactory {
|
||||
private final KotlinxCoroutinesLibraryAccessors laccForKotlinxCoroutinesLibraryAccessors = new KotlinxCoroutinesLibraryAccessors(owner);
|
||||
|
||||
public KotlinxLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>kotlinx.coroutines</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public KotlinxCoroutinesLibraryAccessors getCoroutines() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForKotlinxCoroutinesLibraryAccessors;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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>coroutines</b>
|
||||
* <p>
|
||||
* This dependency was declared in catalog libs.versions.toml
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getAndroid() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("kotlinx.coroutines.android");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public static class OkhttpLibraryAccessors extends SubDependencyFactory implements DependencyNotationSupplier {
|
||||
private final OkhttpLoggingLibraryAccessors laccForOkhttpLoggingLibraryAccessors = new OkhttpLoggingLibraryAccessors(owner);
|
||||
|
||||
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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> asProvider() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("okhttp");
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>okhttp.logging</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public OkhttpLoggingLibraryAccessors getLogging() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForOkhttpLoggingLibraryAccessors;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public static class OkhttpLoggingLibraryAccessors extends SubDependencyFactory {
|
||||
|
||||
public OkhttpLoggingLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||
|
||||
/**
|
||||
* Dependency provider for <b>interceptor</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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getInterceptor() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("okhttp.logging.interceptor");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public static class RetrofitLibraryAccessors extends SubDependencyFactory implements DependencyNotationSupplier {
|
||||
private final RetrofitConverterLibraryAccessors laccForRetrofitConverterLibraryAccessors = new RetrofitConverterLibraryAccessors(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
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> asProvider() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("retrofit");
|
||||
}
|
||||
|
||||
/**
|
||||
* Group of libraries at <b>retrofit.converter</b>
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public RetrofitConverterLibraryAccessors getConverter() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return laccForRetrofitConverterLibraryAccessors;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public static class RetrofitConverterLibraryAccessors extends SubDependencyFactory {
|
||||
|
||||
public RetrofitConverterLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
||||
|
||||
/**
|
||||
* Dependency provider for <b>gson</b> with <b>com.squareup.retrofit2:converter-gson</b> coordinates and
|
||||
* with version reference <b>retrofit</b>
|
||||
* <p>
|
||||
* This dependency was declared in catalog libs.versions.toml
|
||||
*
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
public Provider<MinimalExternalModuleDependency> getGson() {
|
||||
org.gradle.internal.deprecation.DeprecationLogger.deprecateBehaviour("Accessing libraries or bundles from version catalogs in the plugins block.").withAdvice("Only use versions or plugins from catalogs in the plugins block.").willBeRemovedInGradle9().withUpgradeGuideSection(8, "kotlin_dsl_deprecated_catalogs_plugins_block").nagUser();
|
||||
return create("retrofit.converter.gson");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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.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> 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>coil</b> with value <b>2.7.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> getCoil() { return getVersion("coil"); }
|
||||
|
||||
/**
|
||||
* Version alias <b>composeBom</b> with value <b>2024.09.03</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>coroutines</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> getCoroutines() { return getVersion("coroutines"); }
|
||||
|
||||
/**
|
||||
* Version alias <b>datastore</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> getDatastore() { return getVersion("datastore"); }
|
||||
|
||||
/**
|
||||
* Version alias <b>gson</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> getGson() { return getVersion("gson"); }
|
||||
|
||||
/**
|
||||
* Version alias <b>kotlin</b> with value <b>2.0.21</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>lifecycleRuntimeKtx</b> with value <b>2.8.6</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>material3</b> with value <b>1.3.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> getMaterial3() { return getVersion("material3"); }
|
||||
|
||||
/**
|
||||
* Version alias <b>navigationCompose</b> with value <b>2.8.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> 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"); }
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Will be removed in Gradle 9.0.
|
||||
*/
|
||||
@Deprecated
|
||||
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); }
|
||||
|
||||
/**
|
||||
* 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"); }
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
BIN
xxxthegame-android/.gradle/8.9/fileChanges/last-build.bin
Normal file
BIN
xxxthegame-android/.gradle/8.9/fileChanges/last-build.bin
Normal file
Binary file not shown.
BIN
xxxthegame-android/.gradle/8.9/fileHashes/fileHashes.bin
Normal file
BIN
xxxthegame-android/.gradle/8.9/fileHashes/fileHashes.bin
Normal file
Binary file not shown.
BIN
xxxthegame-android/.gradle/8.9/fileHashes/fileHashes.lock
Normal file
BIN
xxxthegame-android/.gradle/8.9/fileHashes/fileHashes.lock
Normal file
Binary file not shown.
Binary file not shown.
0
xxxthegame-android/.gradle/8.9/gc.properties
Normal file
0
xxxthegame-android/.gradle/8.9/gc.properties
Normal file
Binary file not shown.
@@ -0,0 +1,2 @@
|
||||
#Fri Mar 13 14:11:29 CET 2026
|
||||
gradle.version=8.9
|
||||
2
xxxthegame-android/.gradle/config.properties
Normal file
2
xxxthegame-android/.gradle/config.properties
Normal file
@@ -0,0 +1,2 @@
|
||||
#Fri Mar 13 14:11:07 CET 2026
|
||||
java.home=C\:\\Program Files\\Android\\Android Studio\\jbr
|
||||
BIN
xxxthegame-android/.gradle/file-system.probe
Normal file
BIN
xxxthegame-android/.gradle/file-system.probe
Normal file
Binary file not shown.
0
xxxthegame-android/.gradle/vcs-1/gc.properties
Normal file
0
xxxthegame-android/.gradle/vcs-1/gc.properties
Normal file
3
xxxthegame-android/.idea/.gitignore
generated
vendored
Normal file
3
xxxthegame-android/.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
6
xxxthegame-android/.idea/AndroidProjectSystem.xml
generated
Normal file
6
xxxthegame-android/.idea/AndroidProjectSystem.xml
generated
Normal 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>
|
||||
1502
xxxthegame-android/.idea/caches/deviceStreaming.xml
generated
Normal file
1502
xxxthegame-android/.idea/caches/deviceStreaming.xml
generated
Normal file
File diff suppressed because it is too large
Load Diff
123
xxxthegame-android/.idea/codeStyles/Project.xml
generated
Normal file
123
xxxthegame-android/.idea/codeStyles/Project.xml
generated
Normal 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>
|
||||
5
xxxthegame-android/.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
5
xxxthegame-android/.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
@@ -0,0 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
||||
</state>
|
||||
</component>
|
||||
6
xxxthegame-android/.idea/compiler.xml
generated
Normal file
6
xxxthegame-android/.idea/compiler.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="21" />
|
||||
</component>
|
||||
</project>
|
||||
10
xxxthegame-android/.idea/deploymentTargetSelector.xml
generated
Normal file
10
xxxthegame-android/.idea/deploymentTargetSelector.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetSelector">
|
||||
<selectionStates>
|
||||
<SelectionState runConfigName="app">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
</SelectionState>
|
||||
</selectionStates>
|
||||
</component>
|
||||
</project>
|
||||
19
xxxthegame-android/.idea/gradle.xml
generated
Normal file
19
xxxthegame-android/.idea/gradle.xml
generated
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<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>
|
||||
10
xxxthegame-android/.idea/migrations.xml
generated
Normal file
10
xxxthegame-android/.idea/migrations.xml
generated
Normal 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>
|
||||
9
xxxthegame-android/.idea/misc.xml
generated
Normal file
9
xxxthegame-android/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<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>
|
||||
17
xxxthegame-android/.idea/runConfigurations.xml
generated
Normal file
17
xxxthegame-android/.idea/runConfigurations.xml
generated
Normal 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>
|
||||
6
xxxthegame-android/.idea/vcs.xml
generated
Normal file
6
xxxthegame-android/.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
65
xxxthegame-android/app/build.gradle.kts
Normal file
65
xxxthegame-android/app/build.gradle.kts
Normal file
@@ -0,0 +1,65 @@
|
||||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.compose)
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "de.oaa.xxx.app"
|
||||
compileSdk = 35
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "de.oaa.xxx.app"
|
||||
minSdk = 26
|
||||
targetSdk = 35
|
||||
versionCode = 1
|
||||
versionName = "1.0"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
buildConfigField("String", "BASE_URL", "\"http://10.0.2.2:8080\"")
|
||||
}
|
||||
release {
|
||||
isMinifyEnabled = false
|
||||
buildConfigField("String", "BASE_URL", "\"https://your-server.example.com\"")
|
||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = "11"
|
||||
}
|
||||
buildFeatures {
|
||||
compose = true
|
||||
buildConfig = true
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(libs.androidx.core.ktx)
|
||||
implementation(libs.androidx.lifecycle.runtime.ktx)
|
||||
implementation(libs.androidx.lifecycle.viewmodel.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)
|
||||
implementation(libs.androidx.datastore.preferences)
|
||||
implementation(libs.retrofit)
|
||||
implementation(libs.retrofit.converter.gson)
|
||||
implementation(libs.okhttp)
|
||||
implementation(libs.okhttp.logging.interceptor)
|
||||
implementation(libs.gson)
|
||||
implementation(libs.kotlinx.coroutines.android)
|
||||
implementation(libs.coil.compose)
|
||||
debugImplementation(libs.androidx.ui.tooling)
|
||||
}
|
||||
6
xxxthegame-android/app/proguard-rules.pro
vendored
Normal file
6
xxxthegame-android/app/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
-keep class de.oaa.xxx.app.data.model.** { *; }
|
||||
-keepattributes Signature
|
||||
-keepattributes *Annotation*
|
||||
-dontwarn okhttp3.**
|
||||
-dontwarn retrofit2.**
|
||||
26
xxxthegame-android/app/src/main/AndroidManifest.xml
Normal file
26
xxxthegame-android/app/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
||||
<application
|
||||
android:name=".XxxApplication"
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@mipmap/ic_launcher"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.XxxGame"
|
||||
android:usesCleartextTraffic="true">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
android:theme="@style/Theme.XxxGame">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -0,0 +1,360 @@
|
||||
package de.oaa.xxx.app
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import androidx.navigation.NavType
|
||||
import androidx.navigation.compose.NavHost
|
||||
import androidx.navigation.compose.composable
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import androidx.navigation.navArgument
|
||||
import de.oaa.xxx.app.data.model.User
|
||||
import de.oaa.xxx.app.ui.navigation.Routes
|
||||
import de.oaa.xxx.app.ui.screens.aufgaben.AufgabenScreen
|
||||
import de.oaa.xxx.app.ui.screens.auth.LoginScreen
|
||||
import de.oaa.xxx.app.ui.screens.auth.RegisterScreen
|
||||
import de.oaa.xxx.app.ui.screens.feed.FeedScreen
|
||||
import de.oaa.xxx.app.ui.screens.gruppen.GruppenScreen
|
||||
import de.oaa.xxx.app.ui.screens.home.HomeScreen
|
||||
import de.oaa.xxx.app.ui.screens.profile.ProfileScreen
|
||||
import de.oaa.xxx.app.ui.screens.session.SessionInGameScreen
|
||||
import de.oaa.xxx.app.ui.screens.session.SessionSetupScreen
|
||||
import de.oaa.xxx.app.ui.screens.social.ConversationScreen
|
||||
import de.oaa.xxx.app.ui.screens.social.FriendsScreen
|
||||
import de.oaa.xxx.app.ui.screens.social.MessagesScreen
|
||||
import de.oaa.xxx.app.ui.theme.XxxGameTheme
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.ArrowBack
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.material3.Checkbox
|
||||
import androidx.compose.material3.CircularProgressIndicator
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import de.oaa.xxx.app.data.model.AufgabenGruppenRef
|
||||
import de.oaa.xxx.app.ui.viewmodel.AufgabenViewModel
|
||||
import de.oaa.xxx.app.ui.viewmodel.AuthState
|
||||
import de.oaa.xxx.app.ui.viewmodel.AuthViewModel
|
||||
import de.oaa.xxx.app.ui.viewmodel.FeedViewModel
|
||||
import de.oaa.xxx.app.ui.viewmodel.SessionViewModel
|
||||
import de.oaa.xxx.app.ui.viewmodel.SocialViewModel
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
|
||||
class MainActivity : ComponentActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
enableEdgeToEdge()
|
||||
setContent {
|
||||
XxxGameTheme {
|
||||
XxxApp()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun XxxApp() {
|
||||
val navController = rememberNavController()
|
||||
val authViewModel: AuthViewModel = viewModel()
|
||||
val sessionViewModel: SessionViewModel = viewModel()
|
||||
val aufgabenViewModel: AufgabenViewModel = viewModel()
|
||||
val socialViewModel: SocialViewModel = viewModel()
|
||||
val feedViewModel: FeedViewModel = viewModel()
|
||||
|
||||
val authState by authViewModel.state.collectAsState()
|
||||
var currentUser by remember { mutableStateOf<User?>(null) }
|
||||
var conversationPartnerName by remember { mutableStateOf("") }
|
||||
|
||||
LaunchedEffect(authState) {
|
||||
when (authState) {
|
||||
is AuthState.LoggedIn -> {
|
||||
currentUser = (authState as AuthState.LoggedIn).user
|
||||
navController.navigate(Routes.HOME) {
|
||||
popUpTo(Routes.LOGIN) { inclusive = true }
|
||||
}
|
||||
}
|
||||
is AuthState.LoggedOut -> {
|
||||
navController.navigate(Routes.LOGIN) {
|
||||
popUpTo(0) { inclusive = true }
|
||||
}
|
||||
}
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
|
||||
NavHost(navController = navController, startDestination = Routes.LOGIN) {
|
||||
|
||||
composable(Routes.LOGIN) {
|
||||
LoginScreen(
|
||||
viewModel = authViewModel,
|
||||
onLoginSuccess = {},
|
||||
onNavigateToRegister = { navController.navigate(Routes.REGISTER) }
|
||||
)
|
||||
}
|
||||
|
||||
composable(Routes.REGISTER) {
|
||||
RegisterScreen(
|
||||
viewModel = authViewModel,
|
||||
onNavigateBack = { navController.popBackStack() }
|
||||
)
|
||||
}
|
||||
|
||||
composable(Routes.HOME) {
|
||||
currentUser?.let { user ->
|
||||
HomeScreen(
|
||||
user = user,
|
||||
onNavigate = { route -> navController.navigate(route) },
|
||||
onLogout = { authViewModel.logout() }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
composable(Routes.AUFGABEN) {
|
||||
AufgabenScreen(
|
||||
viewModel = aufgabenViewModel,
|
||||
onNavigateBack = { navController.popBackStack() },
|
||||
onGruppeClick = { gruppenId ->
|
||||
navController.navigate("aufgaben/$gruppenId")
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
composable(
|
||||
"aufgaben/{gruppenId}",
|
||||
arguments = listOf(navArgument("gruppenId") { type = NavType.StringType })
|
||||
) { backStack ->
|
||||
val gruppenId = backStack.arguments?.getString("gruppenId") ?: return@composable
|
||||
LaunchedEffect(gruppenId) { aufgabenViewModel.loadGruppe(gruppenId) }
|
||||
// Group detail - reuse AufgabenScreen for now
|
||||
AufgabenScreen(
|
||||
viewModel = aufgabenViewModel,
|
||||
onNavigateBack = { navController.popBackStack() },
|
||||
onGruppeClick = {}
|
||||
)
|
||||
}
|
||||
|
||||
composable(Routes.SESSION_SETUP) {
|
||||
currentUser?.let { user ->
|
||||
SessionSetupScreen(
|
||||
viewModel = sessionViewModel,
|
||||
currentUser = user,
|
||||
onNavigateBack = { navController.popBackStack() },
|
||||
onSessionCreated = { sessionId ->
|
||||
navController.navigate("session/players/$sessionId")
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
composable(
|
||||
"session/players/{sessionId}",
|
||||
arguments = listOf(navArgument("sessionId") { type = NavType.StringType })
|
||||
) { backStack ->
|
||||
val sessionId = backStack.arguments?.getString("sessionId") ?: return@composable
|
||||
// Navigate directly to task selection
|
||||
navController.navigate("session/tasks/$sessionId") {
|
||||
popUpTo("session/players/$sessionId") { inclusive = true }
|
||||
}
|
||||
}
|
||||
|
||||
composable(
|
||||
"session/tasks/{sessionId}",
|
||||
arguments = listOf(navArgument("sessionId") { type = NavType.StringType })
|
||||
) { backStack ->
|
||||
val sessionId = backStack.arguments?.getString("sessionId") ?: return@composable
|
||||
// Show task group selection for session
|
||||
SessionTaskSelectionScreen(
|
||||
sessionId = sessionId,
|
||||
aufgabenViewModel = aufgabenViewModel,
|
||||
sessionViewModel = sessionViewModel,
|
||||
onNavigateBack = { navController.popBackStack() },
|
||||
onReady = { navController.navigate("session/ingame/$sessionId") }
|
||||
)
|
||||
}
|
||||
|
||||
composable(
|
||||
Routes.SESSION_INGAME,
|
||||
arguments = listOf(navArgument("sessionId") { type = NavType.StringType })
|
||||
) { backStack ->
|
||||
val sessionId = backStack.arguments?.getString("sessionId") ?: return@composable
|
||||
SessionInGameScreen(
|
||||
viewModel = sessionViewModel,
|
||||
sessionId = sessionId,
|
||||
onSessionEnd = {
|
||||
navController.navigate(Routes.HOME) {
|
||||
popUpTo(Routes.HOME) { inclusive = true }
|
||||
}
|
||||
},
|
||||
onNavigateBack = { navController.popBackStack() }
|
||||
)
|
||||
}
|
||||
|
||||
composable(Routes.PROFILE) {
|
||||
currentUser?.let { user ->
|
||||
ProfileScreen(
|
||||
currentUser = user,
|
||||
onNavigateBack = { navController.popBackStack() },
|
||||
onUserUpdated = { updatedUser -> currentUser = updatedUser }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
composable(Routes.FRIENDS) {
|
||||
FriendsScreen(
|
||||
viewModel = socialViewModel,
|
||||
currentUserId = currentUser?.userId ?: "",
|
||||
onNavigateBack = { navController.popBackStack() },
|
||||
onOpenMessages = { partnerId ->
|
||||
navController.navigate("messages/$partnerId")
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
composable(Routes.MESSAGES) {
|
||||
MessagesScreen(
|
||||
viewModel = socialViewModel,
|
||||
onNavigateBack = { navController.popBackStack() },
|
||||
onOpenConversation = { partnerId ->
|
||||
navController.navigate("messages/$partnerId")
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
composable(
|
||||
"messages/{partnerId}",
|
||||
arguments = listOf(navArgument("partnerId") { type = NavType.StringType })
|
||||
) { backStack ->
|
||||
val partnerId = backStack.arguments?.getString("partnerId") ?: return@composable
|
||||
ConversationScreen(
|
||||
viewModel = socialViewModel,
|
||||
partnerId = partnerId,
|
||||
currentUserId = currentUser?.userId ?: "",
|
||||
partnerName = conversationPartnerName.ifBlank { "Konversation" },
|
||||
onNavigateBack = { navController.popBackStack() }
|
||||
)
|
||||
}
|
||||
|
||||
composable(Routes.GRUPPEN) {
|
||||
GruppenScreen(
|
||||
currentUserId = currentUser?.userId ?: "",
|
||||
onNavigateBack = { navController.popBackStack() }
|
||||
)
|
||||
}
|
||||
|
||||
composable(Routes.FEED) {
|
||||
FeedScreen(
|
||||
viewModel = feedViewModel,
|
||||
onNavigateBack = { navController.popBackStack() }
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun SessionTaskSelectionScreen(
|
||||
sessionId: String,
|
||||
aufgabenViewModel: AufgabenViewModel,
|
||||
sessionViewModel: SessionViewModel,
|
||||
onNavigateBack: () -> Unit,
|
||||
onReady: () -> Unit
|
||||
) {
|
||||
val userGruppen by aufgabenViewModel.userGruppen.collectAsState()
|
||||
val subscriptions by aufgabenViewModel.subscriptions.collectAsState()
|
||||
val isLoading by sessionViewModel.isLoading.collectAsState()
|
||||
val selectedGruppenIds = remember { mutableStateListOf<String>() }
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
aufgabenViewModel.loadUserGruppen()
|
||||
aufgabenViewModel.loadSubscriptions()
|
||||
}
|
||||
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
title = { Text("Aufgaben auswählen") },
|
||||
navigationIcon = {
|
||||
IconButton(onClick = onNavigateBack) {
|
||||
Icon(Icons.Default.ArrowBack, contentDescription = "Zurück")
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
) { padding ->
|
||||
val allGruppen = (userGruppen + subscriptions).distinctBy { it.gruppenId }
|
||||
LazyColumn(
|
||||
modifier = Modifier.fillMaxSize().padding(padding).padding(horizontal = 16.dp),
|
||||
verticalArrangement = androidx.compose.foundation.layout.Arrangement.spacedBy(8.dp),
|
||||
contentPadding = androidx.compose.foundation.layout.PaddingValues(vertical = 16.dp)
|
||||
) {
|
||||
items(allGruppen) { gruppe ->
|
||||
val isSelected = gruppe.gruppenId in selectedGruppenIds
|
||||
Card(
|
||||
onClick = {
|
||||
if (isSelected) selectedGruppenIds.remove(gruppe.gruppenId)
|
||||
else gruppe.gruppenId?.let { selectedGruppenIds.add(it) }
|
||||
},
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
colors = CardDefaults.cardColors(
|
||||
containerColor = if (isSelected) MaterialTheme.colorScheme.primary.copy(alpha = 0.2f)
|
||||
else MaterialTheme.colorScheme.surface
|
||||
)
|
||||
) {
|
||||
Row(
|
||||
modifier = Modifier.padding(16.dp),
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Checkbox(
|
||||
checked = isSelected,
|
||||
onCheckedChange = {
|
||||
if (isSelected) selectedGruppenIds.remove(gruppe.gruppenId)
|
||||
else gruppe.gruppenId?.let { id -> selectedGruppenIds.add(id) }
|
||||
}
|
||||
)
|
||||
Text(gruppe.name ?: "(Unbekannt)", modifier = Modifier.weight(1f))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
item {
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
Button(
|
||||
onClick = {
|
||||
if (selectedGruppenIds.isNotEmpty()) {
|
||||
val refs = selectedGruppenIds.map { AufgabenGruppenRef(gruppenId = it) }
|
||||
sessionViewModel.setAufgaben(sessionId, refs) { onReady() }
|
||||
}
|
||||
},
|
||||
modifier = Modifier.fillMaxWidth().height(52.dp),
|
||||
enabled = selectedGruppenIds.isNotEmpty() && !isLoading
|
||||
) {
|
||||
if (isLoading) CircularProgressIndicator(modifier = Modifier.size(24.dp))
|
||||
else Text("Session starten", fontSize = 16.sp)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package de.oaa.xxx.app
|
||||
|
||||
import android.app.Application
|
||||
|
||||
class XxxApplication : Application() {
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package de.oaa.xxx.app.data.api
|
||||
|
||||
import de.oaa.xxx.app.BuildConfig
|
||||
import okhttp3.Cookie
|
||||
import okhttp3.CookieJar
|
||||
import okhttp3.HttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.logging.HttpLoggingInterceptor
|
||||
import retrofit2.Retrofit
|
||||
import retrofit2.converter.gson.GsonConverterFactory
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
object ApiClient {
|
||||
|
||||
private val cookieStore = mutableMapOf<String, MutableList<Cookie>>()
|
||||
|
||||
val cookieJar = object : CookieJar {
|
||||
override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {
|
||||
cookieStore.getOrPut(url.host) { mutableListOf() }.apply {
|
||||
removeAll { existing -> cookies.any { it.name == existing.name } }
|
||||
addAll(cookies)
|
||||
}
|
||||
}
|
||||
override fun loadForRequest(url: HttpUrl): List<Cookie> =
|
||||
cookieStore[url.host] ?: emptyList()
|
||||
}
|
||||
|
||||
fun getJwtToken(): String? =
|
||||
cookieStore.values.flatten().find { it.name == "jwt" }?.value
|
||||
|
||||
fun setJwtToken(token: String) {
|
||||
val host = HttpUrl.parse(BuildConfig.BASE_URL)?.host ?: return
|
||||
val cookie = Cookie.Builder()
|
||||
.name("jwt")
|
||||
.value(token)
|
||||
.domain(host)
|
||||
.path("/")
|
||||
.httpOnly()
|
||||
.build()
|
||||
cookieStore.getOrPut(host) { mutableListOf() }.apply {
|
||||
removeAll { it.name == "jwt" }
|
||||
add(cookie)
|
||||
}
|
||||
}
|
||||
|
||||
fun clearCookies() = cookieStore.clear()
|
||||
|
||||
private val okHttpClient = OkHttpClient.Builder()
|
||||
.cookieJar(cookieJar)
|
||||
.connectTimeout(30, TimeUnit.SECONDS)
|
||||
.readTimeout(30, TimeUnit.SECONDS)
|
||||
.addInterceptor(HttpLoggingInterceptor().apply {
|
||||
level = HttpLoggingInterceptor.Level.BODY
|
||||
})
|
||||
.build()
|
||||
|
||||
private val retrofit = Retrofit.Builder()
|
||||
.baseUrl(BuildConfig.BASE_URL + "/")
|
||||
.client(okHttpClient)
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.build()
|
||||
|
||||
val authApi: AuthApi = retrofit.create(AuthApi::class.java)
|
||||
val aufgabenApi: AufgabenApi = retrofit.create(AufgabenApi::class.java)
|
||||
val sessionApi: SessionApi = retrofit.create(SessionApi::class.java)
|
||||
val socialApi: SocialApi = retrofit.create(SocialApi::class.java)
|
||||
val gruppenApi: GruppenApi = retrofit.create(GruppenApi::class.java)
|
||||
val feedApi: FeedApi = retrofit.create(FeedApi::class.java)
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
package de.oaa.xxx.app.data.api
|
||||
|
||||
import de.oaa.xxx.app.data.model.Aufgabe
|
||||
import de.oaa.xxx.app.data.model.AufgabenGruppe
|
||||
import de.oaa.xxx.app.data.model.AufgabenGruppeDisplay
|
||||
import de.oaa.xxx.app.data.model.Favorit
|
||||
import de.oaa.xxx.app.data.model.Finisher
|
||||
import de.oaa.xxx.app.data.model.Sperre
|
||||
import de.oaa.xxx.app.data.model.Strafe
|
||||
import de.oaa.xxx.app.data.model.Toy
|
||||
import retrofit2.Response
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.DELETE
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.PUT
|
||||
import retrofit2.http.Path
|
||||
import retrofit2.http.Query
|
||||
|
||||
interface AufgabenApi {
|
||||
|
||||
// --- Aufgabengruppen ---
|
||||
@GET("gruppe/list/user")
|
||||
suspend fun getUserGruppen(
|
||||
@Query("page") page: Int = 0,
|
||||
@Query("size") size: Int = 20
|
||||
): Response<List<AufgabenGruppeDisplay>>
|
||||
|
||||
@GET("gruppe/list/system")
|
||||
suspend fun getSystemGruppen(
|
||||
@Query("page") page: Int = 0,
|
||||
@Query("size") size: Int = 20
|
||||
): Response<List<AufgabenGruppeDisplay>>
|
||||
|
||||
@GET("gruppe/all")
|
||||
suspend fun getAllGruppen(
|
||||
@Query("name") name: String? = null,
|
||||
@Query("page") page: Int = 0,
|
||||
@Query("size") size: Int = 20
|
||||
): Response<List<AufgabenGruppeDisplay>>
|
||||
|
||||
@GET("gruppe/{gruppeId}")
|
||||
suspend fun getGruppe(@Path("gruppeId") gruppeId: String): Response<AufgabenGruppe>
|
||||
|
||||
@POST("gruppe")
|
||||
suspend fun createGruppe(@Body gruppe: AufgabenGruppe): Response<AufgabenGruppe>
|
||||
|
||||
@PUT("gruppe/{gruppeId}")
|
||||
suspend fun updateGruppe(
|
||||
@Path("gruppeId") gruppeId: String,
|
||||
@Body gruppe: AufgabenGruppe
|
||||
): Response<AufgabenGruppe>
|
||||
|
||||
@DELETE("gruppe/{gruppeId}")
|
||||
suspend fun deleteGruppe(@Path("gruppeId") gruppeId: String): Response<Unit>
|
||||
|
||||
@POST("gruppe/copy/{gruppeId}")
|
||||
suspend fun copyGruppe(@Path("gruppeId") gruppeId: String): Response<AufgabenGruppe>
|
||||
|
||||
// --- Aufgaben ---
|
||||
@GET("aufgabe/{aufgabeId}")
|
||||
suspend fun getAufgabe(@Path("aufgabeId") aufgabeId: String): Response<Aufgabe>
|
||||
|
||||
@POST("aufgabe")
|
||||
suspend fun createAufgabe(@Body aufgabe: Aufgabe): Response<Aufgabe>
|
||||
|
||||
@PUT("aufgabe/{aufgabeId}")
|
||||
suspend fun updateAufgabe(
|
||||
@Path("aufgabeId") aufgabeId: String,
|
||||
@Body aufgabe: Aufgabe
|
||||
): Response<Aufgabe>
|
||||
|
||||
@DELETE("aufgabe")
|
||||
suspend fun deleteAufgabe(@Body aufgabe: Aufgabe): Response<Unit>
|
||||
|
||||
// --- Toys ---
|
||||
@GET("toy/list/user")
|
||||
suspend fun getUserToys(
|
||||
@Query("page") page: Int = 0,
|
||||
@Query("size") size: Int = 20
|
||||
): Response<List<Toy>>
|
||||
|
||||
@GET("toy/list/system")
|
||||
suspend fun getSystemToys(
|
||||
@Query("page") page: Int = 0,
|
||||
@Query("size") size: Int = 20
|
||||
): Response<List<Toy>>
|
||||
|
||||
@GET("toy/available")
|
||||
suspend fun getAvailableToys(): Response<List<Toy>>
|
||||
|
||||
@POST("toy")
|
||||
suspend fun createToy(@Body toy: Toy): Response<Toy>
|
||||
|
||||
@PUT("toy/{toyId}")
|
||||
suspend fun updateToy(@Path("toyId") toyId: String, @Body toy: Toy): Response<Toy>
|
||||
|
||||
@DELETE("toy/{toyId}")
|
||||
suspend fun deleteToy(@Path("toyId") toyId: String): Response<Unit>
|
||||
|
||||
@POST("toy/copy/{toyId}")
|
||||
suspend fun copyToy(@Path("toyId") toyId: String): Response<Toy>
|
||||
|
||||
// --- Favoriten ---
|
||||
@GET("favorit")
|
||||
suspend fun getFavoriten(): Response<List<Favorit>>
|
||||
|
||||
@POST("favorit")
|
||||
suspend fun addFavorit(@Body favorit: Favorit): Response<Favorit>
|
||||
|
||||
@DELETE("favorit")
|
||||
suspend fun removeFavorit(@Body favorit: Favorit): Response<Unit>
|
||||
|
||||
// --- Abonnements ---
|
||||
@GET("abo/list")
|
||||
suspend fun getAbonnements(
|
||||
@Query("page") page: Int = 0,
|
||||
@Query("size") size: Int = 20
|
||||
): Response<List<AufgabenGruppeDisplay>>
|
||||
|
||||
@GET("abo/discover")
|
||||
suspend fun discoverGruppen(@Query("name") name: String? = null): Response<List<AufgabenGruppeDisplay>>
|
||||
|
||||
@POST("abo/{gruppenId}")
|
||||
suspend fun subscribe(@Path("gruppenId") gruppenId: String): Response<Unit>
|
||||
|
||||
@DELETE("abo/{gruppenId}")
|
||||
suspend fun unsubscribe(@Path("gruppenId") gruppenId: String): Response<Unit>
|
||||
|
||||
// --- Sperren ---
|
||||
@POST("sperre")
|
||||
suspend fun createSperre(@Body sperre: Sperre): Response<Sperre>
|
||||
|
||||
@PUT("sperre/{sperreId}")
|
||||
suspend fun updateSperre(@Path("sperreId") sperreId: String, @Body sperre: Sperre): Response<Sperre>
|
||||
|
||||
@DELETE("sperre")
|
||||
suspend fun deleteSperre(@Body sperre: Sperre): Response<Unit>
|
||||
|
||||
// --- Strafen ---
|
||||
@POST("strafe")
|
||||
suspend fun createStrafe(@Body strafe: Strafe): Response<Strafe>
|
||||
|
||||
@PUT("strafe/{strafeId}")
|
||||
suspend fun updateStrafe(@Path("strafeId") strafeId: String, @Body strafe: Strafe): Response<Strafe>
|
||||
|
||||
@DELETE("strafe")
|
||||
suspend fun deleteStrafe(@Body strafe: Strafe): Response<Unit>
|
||||
|
||||
// --- Finisher ---
|
||||
@POST("finisher")
|
||||
suspend fun createFinisher(@Body finisher: Finisher): Response<Finisher>
|
||||
|
||||
@PUT("finisher/{finisherId}")
|
||||
suspend fun updateFinisher(
|
||||
@Path("finisherId") finisherId: String,
|
||||
@Body finisher: Finisher
|
||||
): Response<Finisher>
|
||||
|
||||
@DELETE("finisher")
|
||||
suspend fun deleteFinisher(@Body finisher: Finisher): Response<Unit>
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package de.oaa.xxx.app.data.api
|
||||
|
||||
import de.oaa.xxx.app.data.model.RegistrationRequest
|
||||
import de.oaa.xxx.app.data.model.User
|
||||
import retrofit2.Response
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Query
|
||||
|
||||
interface AuthApi {
|
||||
|
||||
@GET("login")
|
||||
suspend fun login(
|
||||
@Query("email") email: String,
|
||||
@Query("hash") hash: String
|
||||
): Response<User>
|
||||
|
||||
@GET("login/me")
|
||||
suspend fun me(): Response<User>
|
||||
|
||||
@GET("login/logout")
|
||||
suspend fun logout(): Response<Unit>
|
||||
|
||||
@POST("registration")
|
||||
suspend fun register(@Body request: RegistrationRequest): Response<Unit>
|
||||
|
||||
@POST("user")
|
||||
suspend fun createUser(@Body user: User): Response<User>
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package de.oaa.xxx.app.data.api
|
||||
|
||||
import de.oaa.xxx.app.data.model.FeedItemDto
|
||||
import de.oaa.xxx.app.data.model.FeedPostRequest
|
||||
import retrofit2.Response
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.DELETE
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Path
|
||||
import retrofit2.http.Query
|
||||
|
||||
interface FeedApi {
|
||||
|
||||
@POST("feed/posts")
|
||||
suspend fun createPost(@Body request: FeedPostRequest): Response<FeedItemDto>
|
||||
|
||||
@GET("feed/mine")
|
||||
suspend fun getMyFeed(
|
||||
@Query("page") page: Int = 0,
|
||||
@Query("size") size: Int = 20
|
||||
): Response<List<FeedItemDto>>
|
||||
|
||||
@GET("feed/public")
|
||||
suspend fun getPublicFeed(
|
||||
@Query("page") page: Int = 0,
|
||||
@Query("size") size: Int = 20
|
||||
): Response<List<FeedItemDto>>
|
||||
|
||||
@GET("feed/user/{userId}")
|
||||
suspend fun getUserFeed(
|
||||
@Path("userId") userId: String,
|
||||
@Query("page") page: Int = 0,
|
||||
@Query("size") size: Int = 20
|
||||
): Response<List<FeedItemDto>>
|
||||
|
||||
@POST("feed/posts/{id}/like")
|
||||
suspend fun toggleLike(@Path("id") id: String): Response<Unit>
|
||||
|
||||
@POST("feed/posts/{id}/vote")
|
||||
suspend fun vote(@Path("id") id: String, @Body body: Map<String, String>): Response<Unit>
|
||||
|
||||
@DELETE("feed/posts/{id}")
|
||||
suspend fun deletePost(@Path("id") id: String): Response<Unit>
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package de.oaa.xxx.app.data.api
|
||||
|
||||
import de.oaa.xxx.app.data.model.BeitrittsanfrageDto
|
||||
import de.oaa.xxx.app.data.model.CountResponse
|
||||
import de.oaa.xxx.app.data.model.GruppeDto
|
||||
import de.oaa.xxx.app.data.model.GruppenbeitragDto
|
||||
import retrofit2.Response
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.DELETE
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.PUT
|
||||
import retrofit2.http.Path
|
||||
import retrofit2.http.Query
|
||||
|
||||
interface GruppenApi {
|
||||
|
||||
@GET("gruppen/search")
|
||||
suspend fun search(@Query("q") query: String): Response<List<GruppeDto>>
|
||||
|
||||
@GET("gruppen/mine")
|
||||
suspend fun getMine(): Response<List<GruppeDto>>
|
||||
|
||||
@GET("gruppen/{id}")
|
||||
suspend fun getGruppe(@Path("id") id: String): Response<GruppeDto>
|
||||
|
||||
@POST("gruppen")
|
||||
suspend fun createGruppe(@Body gruppe: GruppeDto): Response<GruppeDto>
|
||||
|
||||
@PUT("gruppen/{id}")
|
||||
suspend fun updateGruppe(@Path("id") id: String, @Body gruppe: GruppeDto): Response<GruppeDto>
|
||||
|
||||
@DELETE("gruppen/{id}")
|
||||
suspend fun deleteGruppe(@Path("id") id: String): Response<Unit>
|
||||
|
||||
@POST("gruppen/{id}/join")
|
||||
suspend fun join(@Path("id") id: String): Response<Unit>
|
||||
|
||||
@DELETE("gruppen/{id}/leave")
|
||||
suspend fun leave(@Path("id") id: String): Response<Unit>
|
||||
|
||||
@GET("gruppen/{id}/members")
|
||||
suspend fun getMembers(@Path("id") id: String): Response<List<Map<String, Any>>>
|
||||
|
||||
@DELETE("gruppen/{id}/members/{userId}")
|
||||
suspend fun removeMember(@Path("id") id: String, @Path("userId") userId: String): Response<Unit>
|
||||
|
||||
@POST("gruppen/{id}/members/{userId}/promote")
|
||||
suspend fun promoteMember(@Path("id") id: String, @Path("userId") userId: String): Response<Unit>
|
||||
|
||||
@GET("gruppen/{id}/requests")
|
||||
suspend fun getRequests(@Path("id") id: String): Response<List<BeitrittsanfrageDto>>
|
||||
|
||||
@POST("gruppen/{id}/requests/{reqId}/approve")
|
||||
suspend fun approveRequest(@Path("id") id: String, @Path("reqId") reqId: String): Response<Unit>
|
||||
|
||||
@DELETE("gruppen/{id}/requests/{reqId}")
|
||||
suspend fun rejectRequest(@Path("id") id: String, @Path("reqId") reqId: String): Response<Unit>
|
||||
|
||||
@GET("gruppen/requests/pending/count")
|
||||
suspend fun getPendingRequestsCount(): Response<CountResponse>
|
||||
|
||||
@GET("gruppen/requests/mine")
|
||||
suspend fun getMyRequests(): Response<List<BeitrittsanfrageDto>>
|
||||
|
||||
// --- Beitraege ---
|
||||
@GET("gruppen/{id}/beitraege")
|
||||
suspend fun getBeitraege(
|
||||
@Path("id") id: String,
|
||||
@Query("page") page: Int = 0,
|
||||
@Query("size") size: Int = 20
|
||||
): Response<List<GruppenbeitragDto>>
|
||||
|
||||
@POST("gruppen/{id}/beitraege")
|
||||
suspend fun createBeitrag(
|
||||
@Path("id") id: String,
|
||||
@Body beitrag: GruppenbeitragDto
|
||||
): Response<GruppenbeitragDto>
|
||||
|
||||
@POST("gruppen/{id}/beitraege/{beitragId}/like")
|
||||
suspend fun toggleLike(@Path("id") id: String, @Path("beitragId") beitragId: String): Response<Unit>
|
||||
|
||||
@POST("gruppen/{id}/beitraege/{beitragId}/vote")
|
||||
suspend fun vote(
|
||||
@Path("id") id: String,
|
||||
@Path("beitragId") beitragId: String,
|
||||
@Body body: Map<String, String>
|
||||
): Response<Unit>
|
||||
|
||||
@DELETE("gruppen/{id}/beitraege/{beitragId}")
|
||||
suspend fun deleteBeitrag(
|
||||
@Path("id") id: String,
|
||||
@Path("beitragId") beitragId: String
|
||||
): Response<Unit>
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package de.oaa.xxx.app.data.api
|
||||
|
||||
import de.oaa.xxx.app.data.model.AufgabeAnzeige
|
||||
import de.oaa.xxx.app.data.model.AufgabenList
|
||||
import de.oaa.xxx.app.data.model.Mitspieler
|
||||
import de.oaa.xxx.app.data.model.Session
|
||||
import retrofit2.Response
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.DELETE
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Path
|
||||
import retrofit2.http.Query
|
||||
|
||||
interface SessionApi {
|
||||
|
||||
@GET("session/{sessionId}")
|
||||
suspend fun getBySessionId(@Path("sessionId") sessionId: String): Response<Session>
|
||||
|
||||
@GET("session")
|
||||
suspend fun getByUserId(@Query("userId") userId: String): Response<Session>
|
||||
|
||||
@POST("session")
|
||||
suspend fun createSession(@Body session: Session): Response<Unit>
|
||||
|
||||
@DELETE("session")
|
||||
suspend fun deleteSession(@Body session: Session): Response<Unit>
|
||||
|
||||
@POST("session/{sessionId}/aufgaben")
|
||||
suspend fun setAufgaben(
|
||||
@Path("sessionId") sessionId: String,
|
||||
@Body list: AufgabenList
|
||||
): Response<Unit>
|
||||
|
||||
@GET("session/{sessionId}/aufgaben/next")
|
||||
suspend fun getNextAufgabe(@Path("sessionId") sessionId: String): Response<AufgabeAnzeige>
|
||||
|
||||
@POST("session/{sessionId}/mitspieler")
|
||||
suspend fun addMitspieler(
|
||||
@Path("sessionId") sessionId: String,
|
||||
@Body mitspieler: Mitspieler
|
||||
): Response<Unit>
|
||||
|
||||
@GET("session/{sessionId}/finisher")
|
||||
suspend fun getFinisher(@Path("sessionId") sessionId: String): Response<List<AufgabeAnzeige>>
|
||||
|
||||
@POST("session/{sessionId}/backToLevel5")
|
||||
suspend fun backToLevel5(@Path("sessionId") sessionId: String): Response<Unit>
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package de.oaa.xxx.app.data.api
|
||||
|
||||
import de.oaa.xxx.app.data.model.ConversationSummary
|
||||
import de.oaa.xxx.app.data.model.CountResponse
|
||||
import de.oaa.xxx.app.data.model.FriendshipDto
|
||||
import de.oaa.xxx.app.data.model.MessageDto
|
||||
import de.oaa.xxx.app.data.model.PinnwandEintragDto
|
||||
import de.oaa.xxx.app.data.model.User
|
||||
import de.oaa.xxx.app.data.model.UserProfile
|
||||
import retrofit2.Response
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.DELETE
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Path
|
||||
import retrofit2.http.Query
|
||||
|
||||
interface SocialApi {
|
||||
|
||||
// --- User profiles ---
|
||||
@GET("social/users/{userId}")
|
||||
suspend fun getUserProfile(@Path("userId") userId: String): Response<UserProfile>
|
||||
|
||||
@GET("social/users/search")
|
||||
suspend fun searchUsers(@Query("q") query: String): Response<List<User>>
|
||||
|
||||
// --- Friends ---
|
||||
@POST("social/friends/request")
|
||||
suspend fun sendFriendRequest(@Body body: Map<String, String>): Response<Unit>
|
||||
|
||||
@POST("social/friends/accept")
|
||||
suspend fun acceptFriendRequest(@Body body: Map<String, String>): Response<Unit>
|
||||
|
||||
@DELETE("social/friends/reject")
|
||||
suspend fun rejectFriend(@Body body: Map<String, String>): Response<Unit>
|
||||
|
||||
@GET("social/friends")
|
||||
suspend fun getFriends(): Response<List<FriendshipDto>>
|
||||
|
||||
@GET("social/friends/pending")
|
||||
suspend fun getPendingRequests(): Response<List<FriendshipDto>>
|
||||
|
||||
@GET("social/friends/pending/count")
|
||||
suspend fun getPendingCount(): Response<CountResponse>
|
||||
|
||||
// --- Messages ---
|
||||
@POST("social/messages")
|
||||
suspend fun sendMessage(@Body body: Map<String, String>): Response<Unit>
|
||||
|
||||
@GET("social/messages")
|
||||
suspend fun getConversations(): Response<List<ConversationSummary>>
|
||||
|
||||
@GET("social/messages/unread/count")
|
||||
suspend fun getUnreadCount(): Response<CountResponse>
|
||||
|
||||
@GET("social/messages/{partnerId}")
|
||||
suspend fun getConversation(@Path("partnerId") partnerId: String): Response<List<MessageDto>>
|
||||
|
||||
// --- Pinnwand ---
|
||||
@GET("social/pinnwand/{userId}")
|
||||
suspend fun getPinnwand(@Path("userId") userId: String): Response<List<PinnwandEintragDto>>
|
||||
|
||||
@POST("social/pinnwand/{userId}")
|
||||
suspend fun createPinnwandEintrag(
|
||||
@Path("userId") userId: String,
|
||||
@Body body: Map<String, String>
|
||||
): Response<Unit>
|
||||
|
||||
@DELETE("social/pinnwand/{eintragId}")
|
||||
suspend fun deletePinnwandEintrag(@Path("eintragId") eintragId: String): Response<Unit>
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package de.oaa.xxx.app.data.local
|
||||
|
||||
import android.content.Context
|
||||
import androidx.datastore.core.DataStore
|
||||
import androidx.datastore.preferences.core.Preferences
|
||||
import androidx.datastore.preferences.core.edit
|
||||
import androidx.datastore.preferences.core.stringPreferencesKey
|
||||
import androidx.datastore.preferences.preferencesDataStore
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
|
||||
private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "xxx_session")
|
||||
|
||||
class TokenStore(private val context: Context) {
|
||||
|
||||
companion object {
|
||||
private val JWT_KEY = stringPreferencesKey("jwt_token")
|
||||
private val USER_ID_KEY = stringPreferencesKey("user_id")
|
||||
private val USER_NAME_KEY = stringPreferencesKey("user_name")
|
||||
}
|
||||
|
||||
val jwtToken: Flow<String?> = context.dataStore.data.map { it[JWT_KEY] }
|
||||
val userId: Flow<String?> = context.dataStore.data.map { it[USER_ID_KEY] }
|
||||
val userName: Flow<String?> = context.dataStore.data.map { it[USER_NAME_KEY] }
|
||||
|
||||
suspend fun saveToken(token: String) {
|
||||
context.dataStore.edit { it[JWT_KEY] = token }
|
||||
}
|
||||
|
||||
suspend fun saveUser(userId: String, name: String) {
|
||||
context.dataStore.edit {
|
||||
it[USER_ID_KEY] = userId
|
||||
it[USER_NAME_KEY] = name
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun clear() {
|
||||
context.dataStore.edit { it.clear() }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,269 @@
|
||||
package de.oaa.xxx.app.data.model
|
||||
|
||||
import com.google.gson.JsonObject
|
||||
|
||||
// ---- User ----
|
||||
data class User(
|
||||
val userId: String? = null,
|
||||
val name: String? = null,
|
||||
val email: String? = null,
|
||||
val profilePicture: String? = null,
|
||||
val alter: Int? = null,
|
||||
val groesse: Int? = null,
|
||||
val gewicht: Int? = null,
|
||||
val geschlecht: String? = null,
|
||||
val neigung: String? = null,
|
||||
val beziehungsstatus: String? = null,
|
||||
val beschreibung: String? = null
|
||||
)
|
||||
|
||||
data class UserProfile(
|
||||
val user: User? = null,
|
||||
val friendshipStatus: String? = null
|
||||
)
|
||||
|
||||
// ---- Aufgaben ----
|
||||
data class AufgabenGruppe(
|
||||
val gruppenId: String? = null,
|
||||
val name: String? = null,
|
||||
val beschreibung: String? = null,
|
||||
val userId: String? = null,
|
||||
val privateGruppe: Boolean = false,
|
||||
val bild: String? = null,
|
||||
val von: String? = null,
|
||||
val aufgaben: List<Aufgabe> = emptyList(),
|
||||
val strafen: List<Strafe> = emptyList(),
|
||||
val sperren: List<Sperre> = emptyList(),
|
||||
val finisher: List<Finisher> = emptyList()
|
||||
)
|
||||
|
||||
data class AufgabenGruppeDisplay(
|
||||
val gruppenId: String? = null,
|
||||
val name: String? = null,
|
||||
val beschreibung: String? = null,
|
||||
val userId: String? = null,
|
||||
val privateGruppe: Boolean = false,
|
||||
val bild: String? = null,
|
||||
val von: String? = null
|
||||
)
|
||||
|
||||
data class Aufgabe(
|
||||
val aufgabeId: String? = null,
|
||||
val kurzText: String? = null,
|
||||
val text: String? = null,
|
||||
val level: Int? = null,
|
||||
val sekundenVon: Int? = null,
|
||||
val sekundenBis: Int? = null,
|
||||
val benoetigtAktiv: List<String>? = null,
|
||||
val benoetigtPassiv: List<String>? = null,
|
||||
val benoetigteToys: List<String>? = null
|
||||
)
|
||||
|
||||
data class Strafe(
|
||||
val strafeId: String? = null,
|
||||
val kurzText: String? = null,
|
||||
val text: String? = null,
|
||||
val level: Int? = null,
|
||||
val sekundenVon: Int? = null,
|
||||
val sekundenBis: Int? = null
|
||||
)
|
||||
|
||||
data class Sperre(
|
||||
val sperreId: String? = null,
|
||||
val kurzText: String? = null,
|
||||
val text: String? = null,
|
||||
val releaseText: String? = null,
|
||||
val minutenVon: Int? = null,
|
||||
val minutenBis: Int? = null,
|
||||
val sperreFuer: String? = null
|
||||
)
|
||||
|
||||
data class Finisher(
|
||||
val finisherId: String? = null,
|
||||
val kurzText: String? = null,
|
||||
val text: String? = null,
|
||||
val geschlecht: String? = null,
|
||||
val benoetigtAktiv: List<String>? = null,
|
||||
val benoetigtPassiv: List<String>? = null
|
||||
)
|
||||
|
||||
data class Toy(
|
||||
val toyId: String? = null,
|
||||
val name: String? = null,
|
||||
val beschreibung: String? = null,
|
||||
val bild: String? = null,
|
||||
val userId: String? = null
|
||||
)
|
||||
|
||||
data class Favorit(
|
||||
val favoritId: String? = null,
|
||||
val gruppenId: String? = null,
|
||||
val userId: String? = null
|
||||
)
|
||||
|
||||
data class GruppenAbo(
|
||||
val aboId: String? = null,
|
||||
val gruppenId: String? = null,
|
||||
val userId: String? = null
|
||||
)
|
||||
|
||||
// ---- Session ----
|
||||
data class Session(
|
||||
val sessionId: String? = null,
|
||||
val userId: String? = null,
|
||||
val wahrscheinlichkeitSperre: Int? = null,
|
||||
val wahrscheinlichkeitStrafe: Int? = null,
|
||||
val aufgabenProLevel: Int? = null,
|
||||
val zeitfaktorZeitstrafen: Double? = null,
|
||||
val level: Int? = null,
|
||||
val aufgabenAufAktuellemLevel: Int? = null,
|
||||
val startZeit: String? = null,
|
||||
val letzteAktivitaet: String? = null
|
||||
)
|
||||
|
||||
data class Mitspieler(
|
||||
val mitspielerId: String? = null,
|
||||
val name: String? = null,
|
||||
val geschlecht: String? = null,
|
||||
val rollen: List<String>? = null,
|
||||
val spieltMit: List<String>? = null,
|
||||
val verfuegbareWerkzeuge: List<String>? = null
|
||||
)
|
||||
|
||||
data class AufgabeAnzeige(
|
||||
val nameAktiverMitspieler: String? = null,
|
||||
val aufgabeText: String? = null,
|
||||
val timer: Int? = null,
|
||||
val callback: JsonObject? = null,
|
||||
val level: Int? = null
|
||||
)
|
||||
|
||||
data class AufgabenList(
|
||||
val aufgaben: List<AufgabenGruppenRef> = emptyList()
|
||||
)
|
||||
|
||||
data class AufgabenGruppenRef(
|
||||
val gruppenId: String,
|
||||
val aktiv: Boolean = true,
|
||||
val passiv: Boolean = true
|
||||
)
|
||||
|
||||
// ---- Social ----
|
||||
data class FriendshipDto(
|
||||
val friendshipId: String? = null,
|
||||
val senderId: String? = null,
|
||||
val receiverId: String? = null,
|
||||
val senderName: String? = null,
|
||||
val receiverName: String? = null,
|
||||
val status: String? = null,
|
||||
val createdAt: String? = null
|
||||
)
|
||||
|
||||
data class MessageDto(
|
||||
val messageId: String? = null,
|
||||
val senderId: String? = null,
|
||||
val receiverId: String? = null,
|
||||
val text: String? = null,
|
||||
val sentAt: String? = null,
|
||||
val readAt: String? = null
|
||||
)
|
||||
|
||||
data class ConversationSummary(
|
||||
val partnerId: String? = null,
|
||||
val partnerName: String? = null,
|
||||
val lastMessage: String? = null,
|
||||
val lastMessageAt: String? = null,
|
||||
val unreadCount: Int? = null
|
||||
)
|
||||
|
||||
data class PinnwandEintragDto(
|
||||
val eintragId: String? = null,
|
||||
val profilUserId: String? = null,
|
||||
val authorId: String? = null,
|
||||
val authorName: String? = null,
|
||||
val text: String? = null,
|
||||
val createdAt: String? = null
|
||||
)
|
||||
|
||||
// ---- Community Gruppen ----
|
||||
data class GruppeDto(
|
||||
val gruppeId: String? = null,
|
||||
val name: String? = null,
|
||||
val beschreibung: String? = null,
|
||||
val bild: String? = null,
|
||||
val isPrivate: Boolean = false,
|
||||
val createdAt: String? = null,
|
||||
val createdByUserId: String? = null,
|
||||
val memberCount: Int? = null,
|
||||
val userRole: String? = null
|
||||
)
|
||||
|
||||
data class GruppenbeitragDto(
|
||||
val beitragId: String? = null,
|
||||
val gruppeId: String? = null,
|
||||
val authorId: String? = null,
|
||||
val authorName: String? = null,
|
||||
val text: String? = null,
|
||||
val beitragTyp: String? = null,
|
||||
val createdAt: String? = null,
|
||||
val likeCount: Int? = null,
|
||||
val userHasLiked: Boolean = false,
|
||||
val umfrageOptionen: List<UmfrageOptionDto>? = null
|
||||
)
|
||||
|
||||
data class UmfrageOptionDto(
|
||||
val optionId: String? = null,
|
||||
val text: String? = null,
|
||||
val stimmenAnzahl: Int? = null,
|
||||
val userHasVoted: Boolean = false
|
||||
)
|
||||
|
||||
data class BeitrittsanfrageDto(
|
||||
val anfrageId: String? = null,
|
||||
val gruppeId: String? = null,
|
||||
val userId: String? = null,
|
||||
val userName: String? = null,
|
||||
val nachricht: String? = null,
|
||||
val angefragtAt: String? = null,
|
||||
val status: String? = null
|
||||
)
|
||||
|
||||
// ---- Feed ----
|
||||
data class FeedItemDto(
|
||||
val postId: String? = null,
|
||||
val authorId: String? = null,
|
||||
val authorName: String? = null,
|
||||
val text: String? = null,
|
||||
val beitragTyp: String? = null,
|
||||
val isPublic: Boolean = false,
|
||||
val createdAt: String? = null,
|
||||
val likeCount: Int? = null,
|
||||
val userHasLiked: Boolean = false,
|
||||
val umfrageOptionen: List<UmfrageOptionDto>? = null
|
||||
)
|
||||
|
||||
data class FeedPostRequest(
|
||||
val text: String,
|
||||
val beitragTyp: String = "TEXT",
|
||||
val isPublic: Boolean = false,
|
||||
val umfrageOptionen: List<String>? = null,
|
||||
val multiChoice: Boolean = false
|
||||
)
|
||||
|
||||
// ---- Registration ----
|
||||
data class RegistrationRequest(
|
||||
val name: String,
|
||||
val email: String,
|
||||
val password: String
|
||||
)
|
||||
|
||||
// ---- Count responses ----
|
||||
data class CountResponse(val count: Int)
|
||||
|
||||
// ---- Page responses ----
|
||||
data class PageResponse<T>(
|
||||
val content: List<T> = emptyList(),
|
||||
val totalElements: Long = 0,
|
||||
val totalPages: Int = 0,
|
||||
val number: Int = 0
|
||||
)
|
||||
@@ -0,0 +1,22 @@
|
||||
package de.oaa.xxx.app.ui.navigation
|
||||
|
||||
object Routes {
|
||||
const val LOGIN = "login"
|
||||
const val REGISTER = "register"
|
||||
const val HOME = "home"
|
||||
const val AUFGABEN = "aufgaben"
|
||||
const val AUFGABEN_DETAIL = "aufgaben/{gruppenId}"
|
||||
const val TOYS = "toys"
|
||||
const val SESSION_SETUP = "session/setup"
|
||||
const val SESSION_PLAYERS = "session/players/{sessionId}"
|
||||
const val SESSION_TASKS = "session/tasks/{sessionId}"
|
||||
const val SESSION_INGAME = "session/ingame/{sessionId}"
|
||||
const val PROFILE = "profile"
|
||||
const val FRIENDS = "friends"
|
||||
const val MESSAGES = "messages"
|
||||
const val CONVERSATION = "messages/{partnerId}"
|
||||
const val USER_PROFILE = "user/{userId}"
|
||||
const val GRUPPEN = "gruppen"
|
||||
const val GRUPPE_DETAIL = "gruppen/{gruppeId}"
|
||||
const val FEED = "feed"
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
package de.oaa.xxx.app.ui.screens.aufgaben
|
||||
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Add
|
||||
import androidx.compose.material.icons.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.ContentCopy
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import de.oaa.xxx.app.data.model.AufgabenGruppeDisplay
|
||||
import de.oaa.xxx.app.ui.viewmodel.AufgabenViewModel
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun AufgabenScreen(
|
||||
viewModel: AufgabenViewModel,
|
||||
onNavigateBack: () -> Unit,
|
||||
onGruppeClick: (String) -> Unit
|
||||
) {
|
||||
val userGruppen by viewModel.userGruppen.collectAsState()
|
||||
val systemGruppen by viewModel.systemGruppen.collectAsState()
|
||||
val subscriptions by viewModel.subscriptions.collectAsState()
|
||||
val isLoading by viewModel.isLoading.collectAsState()
|
||||
var selectedTab by remember { mutableIntStateOf(0) }
|
||||
val tabs = listOf("Eigene", "System", "Abonniert")
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
viewModel.loadUserGruppen()
|
||||
viewModel.loadSystemGruppen()
|
||||
viewModel.loadSubscriptions()
|
||||
}
|
||||
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
title = { Text("Aufgabengruppen") },
|
||||
navigationIcon = {
|
||||
IconButton(onClick = onNavigateBack) {
|
||||
Icon(Icons.Default.ArrowBack, contentDescription = "Zurück")
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
) { padding ->
|
||||
Column(modifier = Modifier.fillMaxSize().padding(padding)) {
|
||||
TabRow(selectedTabIndex = selectedTab) {
|
||||
tabs.forEachIndexed { index, title ->
|
||||
Tab(
|
||||
selected = selectedTab == index,
|
||||
onClick = { selectedTab = index },
|
||||
text = { Text(title) }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (isLoading) {
|
||||
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
|
||||
CircularProgressIndicator()
|
||||
}
|
||||
} else {
|
||||
val currentList = when (selectedTab) {
|
||||
0 -> userGruppen
|
||||
1 -> systemGruppen
|
||||
else -> subscriptions
|
||||
}
|
||||
LazyColumn(
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
contentPadding = PaddingValues(16.dp),
|
||||
verticalArrangement = Arrangement.spacedBy(8.dp)
|
||||
) {
|
||||
items(currentList) { gruppe ->
|
||||
GruppeCard(
|
||||
gruppe = gruppe,
|
||||
showCopy = selectedTab == 1,
|
||||
onClick = { gruppe.gruppenId?.let(onGruppeClick) },
|
||||
onCopy = { gruppe.gruppenId?.let { viewModel.copyGruppe(it) {} } }
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun GruppeCard(
|
||||
gruppe: AufgabenGruppeDisplay,
|
||||
showCopy: Boolean,
|
||||
onClick: () -> Unit,
|
||||
onCopy: () -> Unit
|
||||
) {
|
||||
Card(
|
||||
onClick = onClick,
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surface)
|
||||
) {
|
||||
Row(
|
||||
modifier = Modifier.padding(16.dp),
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Column(modifier = Modifier.weight(1f)) {
|
||||
Text(
|
||||
text = gruppe.name ?: "(Unbekannt)",
|
||||
fontWeight = FontWeight.Bold,
|
||||
fontSize = 16.sp
|
||||
)
|
||||
gruppe.beschreibung?.takeIf { it.isNotBlank() }?.let {
|
||||
Text(
|
||||
text = it,
|
||||
fontSize = 13.sp,
|
||||
color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.7f),
|
||||
maxLines = 2
|
||||
)
|
||||
}
|
||||
gruppe.von?.takeIf { it.isNotBlank() }?.let {
|
||||
Text(text = "von: $it", fontSize = 12.sp, color = MaterialTheme.colorScheme.primary)
|
||||
}
|
||||
}
|
||||
if (showCopy) {
|
||||
IconButton(onClick = onCopy) {
|
||||
Icon(Icons.Default.ContentCopy, contentDescription = "Kopieren", tint = MaterialTheme.colorScheme.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
package de.oaa.xxx.app.ui.screens.auth
|
||||
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import de.oaa.xxx.app.ui.viewmodel.AuthState
|
||||
import de.oaa.xxx.app.ui.viewmodel.AuthViewModel
|
||||
|
||||
@Composable
|
||||
fun LoginScreen(
|
||||
viewModel: AuthViewModel,
|
||||
onLoginSuccess: () -> Unit,
|
||||
onNavigateToRegister: () -> Unit
|
||||
) {
|
||||
val state by viewModel.state.collectAsState()
|
||||
var email by remember { mutableStateOf("") }
|
||||
var password by remember { mutableStateOf("") }
|
||||
|
||||
LaunchedEffect(state) {
|
||||
if (state is AuthState.LoggedIn) onLoginSuccess()
|
||||
}
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.padding(32.dp),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
verticalArrangement = Arrangement.Center
|
||||
) {
|
||||
Text(
|
||||
text = "XXX The Game",
|
||||
fontSize = 32.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
color = MaterialTheme.colorScheme.primary
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
|
||||
Text(
|
||||
text = "Anmelden",
|
||||
fontSize = 18.sp,
|
||||
color = MaterialTheme.colorScheme.onBackground
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(32.dp))
|
||||
|
||||
OutlinedTextField(
|
||||
value = email,
|
||||
onValueChange = { email = it },
|
||||
label = { Text("E-Mail") },
|
||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Email),
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
singleLine = true
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(16.dp))
|
||||
|
||||
OutlinedTextField(
|
||||
value = password,
|
||||
onValueChange = { password = it },
|
||||
label = { Text("Passwort") },
|
||||
visualTransformation = PasswordVisualTransformation(),
|
||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password),
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
singleLine = true
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(24.dp))
|
||||
|
||||
if (state is AuthState.Error) {
|
||||
Text(
|
||||
text = (state as AuthState.Error).message,
|
||||
color = MaterialTheme.colorScheme.error,
|
||||
modifier = Modifier.padding(bottom = 16.dp)
|
||||
)
|
||||
}
|
||||
|
||||
Button(
|
||||
onClick = { viewModel.login(email, password) },
|
||||
modifier = Modifier.fillMaxWidth().height(50.dp),
|
||||
enabled = state !is AuthState.Loading && email.isNotBlank() && password.isNotBlank()
|
||||
) {
|
||||
if (state is AuthState.Loading) {
|
||||
CircularProgressIndicator(
|
||||
modifier = Modifier.size(24.dp),
|
||||
color = MaterialTheme.colorScheme.onPrimary
|
||||
)
|
||||
} else {
|
||||
Text("Anmelden", fontSize = 16.sp)
|
||||
}
|
||||
}
|
||||
|
||||
Spacer(modifier = Modifier.height(16.dp))
|
||||
|
||||
TextButton(onClick = onNavigateToRegister) {
|
||||
Text("Noch kein Konto? Registrieren")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
package de.oaa.xxx.app.ui.screens.auth
|
||||
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.ArrowBack
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import de.oaa.xxx.app.ui.viewmodel.AuthState
|
||||
import de.oaa.xxx.app.ui.viewmodel.AuthViewModel
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun RegisterScreen(
|
||||
viewModel: AuthViewModel,
|
||||
onNavigateBack: () -> Unit
|
||||
) {
|
||||
val state by viewModel.state.collectAsState()
|
||||
var name by remember { mutableStateOf("") }
|
||||
var email by remember { mutableStateOf("") }
|
||||
var password by remember { mutableStateOf("") }
|
||||
var passwordRepeat by remember { mutableStateOf("") }
|
||||
var message by remember { mutableStateOf<String?>(null) }
|
||||
|
||||
LaunchedEffect(state) {
|
||||
if (state is AuthState.Error) {
|
||||
message = (state as AuthState.Error).message
|
||||
viewModel.clearError()
|
||||
}
|
||||
}
|
||||
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
title = { Text("Registrieren") },
|
||||
navigationIcon = {
|
||||
IconButton(onClick = onNavigateBack) {
|
||||
Icon(Icons.Default.ArrowBack, contentDescription = "Zurück")
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
) { padding ->
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.padding(padding)
|
||||
.padding(32.dp),
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
Text(
|
||||
text = "Konto erstellen",
|
||||
fontSize = 24.sp,
|
||||
fontWeight = FontWeight.Bold,
|
||||
color = MaterialTheme.colorScheme.primary
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(24.dp))
|
||||
|
||||
OutlinedTextField(
|
||||
value = name,
|
||||
onValueChange = { name = it },
|
||||
label = { Text("Benutzername") },
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
singleLine = true
|
||||
)
|
||||
Spacer(modifier = Modifier.height(12.dp))
|
||||
OutlinedTextField(
|
||||
value = email,
|
||||
onValueChange = { email = it },
|
||||
label = { Text("E-Mail") },
|
||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Email),
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
singleLine = true
|
||||
)
|
||||
Spacer(modifier = Modifier.height(12.dp))
|
||||
OutlinedTextField(
|
||||
value = password,
|
||||
onValueChange = { password = it },
|
||||
label = { Text("Passwort") },
|
||||
visualTransformation = PasswordVisualTransformation(),
|
||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password),
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
singleLine = true
|
||||
)
|
||||
Spacer(modifier = Modifier.height(12.dp))
|
||||
OutlinedTextField(
|
||||
value = passwordRepeat,
|
||||
onValueChange = { passwordRepeat = it },
|
||||
label = { Text("Passwort wiederholen") },
|
||||
visualTransformation = PasswordVisualTransformation(),
|
||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Password),
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
singleLine = true,
|
||||
isError = password.isNotBlank() && passwordRepeat.isNotBlank() && password != passwordRepeat
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(24.dp))
|
||||
|
||||
message?.let {
|
||||
Text(
|
||||
text = it,
|
||||
color = if (it.contains("erfolgreich")) MaterialTheme.colorScheme.primary
|
||||
else MaterialTheme.colorScheme.error,
|
||||
modifier = Modifier.padding(bottom = 16.dp)
|
||||
)
|
||||
}
|
||||
|
||||
Button(
|
||||
onClick = {
|
||||
if (password == passwordRepeat) {
|
||||
viewModel.register(name, email, password)
|
||||
} else {
|
||||
message = "Passwörter stimmen nicht überein"
|
||||
}
|
||||
},
|
||||
modifier = Modifier.fillMaxWidth().height(50.dp),
|
||||
enabled = state !is AuthState.Loading
|
||||
&& name.isNotBlank() && email.isNotBlank()
|
||||
&& password.isNotBlank() && passwordRepeat.isNotBlank()
|
||||
) {
|
||||
if (state is AuthState.Loading) {
|
||||
CircularProgressIndicator(modifier = Modifier.size(24.dp))
|
||||
} else {
|
||||
Text("Registrieren", fontSize = 16.sp)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user