0.3.3
This commit is contained in:
34
.gitignore
vendored
Normal file
34
.gitignore
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# Gradle files
|
||||||
|
.gradle/
|
||||||
|
build/
|
||||||
|
|
||||||
|
# Local configuration file (sdk path, etc)
|
||||||
|
local.properties
|
||||||
|
|
||||||
|
# Log/OS Files
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Android Studio generated files and folders
|
||||||
|
captures/
|
||||||
|
.externalNativeBuild/
|
||||||
|
.cxx/
|
||||||
|
*.aab
|
||||||
|
*.apk
|
||||||
|
output-metadata.json
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
*.iml
|
||||||
|
.idea/
|
||||||
|
misc.xml
|
||||||
|
deploymentTargetDropDown.xml
|
||||||
|
render.experimental.xml
|
||||||
|
|
||||||
|
# Keystore files
|
||||||
|
*.jks
|
||||||
|
*.keystore
|
||||||
|
|
||||||
|
# Google Services (e.g. APIs or Firebase)
|
||||||
|
google-services.json
|
||||||
|
|
||||||
|
# Android Profiling
|
||||||
|
*.hprof
|
||||||
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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,769 +0,0 @@
|
|||||||
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 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>junit</b> with <b>junit:junit</b> coordinates and
|
|
||||||
* with version reference <b>junit</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getJunit() {
|
|
||||||
return create("junit");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dependency provider for <b>mpandroidchart</b> with <b>com.github.PhilJay:MPAndroidChart</b> coordinates and
|
|
||||||
* with version <b>v3.1.0</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getMpandroidchart() {
|
|
||||||
return create("mpandroidchart");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 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 AndroidxEspressoLibraryAccessors laccForAndroidxEspressoLibraryAccessors = new AndroidxEspressoLibraryAccessors(owner);
|
|
||||||
private final AndroidxLifecycleLibraryAccessors laccForAndroidxLifecycleLibraryAccessors = new AndroidxLifecycleLibraryAccessors(owner);
|
|
||||||
private final AndroidxNavigationLibraryAccessors laccForAndroidxNavigationLibraryAccessors = new AndroidxNavigationLibraryAccessors(owner);
|
|
||||||
private final AndroidxRoomLibraryAccessors laccForAndroidxRoomLibraryAccessors = new AndroidxRoomLibraryAccessors(owner);
|
|
||||||
private final AndroidxUiLibraryAccessors laccForAndroidxUiLibraryAccessors = new AndroidxUiLibraryAccessors(owner);
|
|
||||||
|
|
||||||
public AndroidxLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dependency provider for <b>junit</b> with <b>androidx.test.ext:junit</b> coordinates and
|
|
||||||
* with version reference <b>junitVersion</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getJunit() {
|
|
||||||
return create("androidx.junit");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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.espresso</b>
|
|
||||||
*/
|
|
||||||
public AndroidxEspressoLibraryAccessors getEspresso() {
|
|
||||||
return laccForAndroidxEspressoLibraryAccessors;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Group of libraries at <b>androidx.lifecycle</b>
|
|
||||||
*/
|
|
||||||
public AndroidxLifecycleLibraryAccessors getLifecycle() {
|
|
||||||
return laccForAndroidxLifecycleLibraryAccessors;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Group of libraries at <b>androidx.navigation</b>
|
|
||||||
*/
|
|
||||||
public AndroidxNavigationLibraryAccessors getNavigation() {
|
|
||||||
return laccForAndroidxNavigationLibraryAccessors;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Group of libraries at <b>androidx.room</b>
|
|
||||||
*/
|
|
||||||
public AndroidxRoomLibraryAccessors getRoom() {
|
|
||||||
return laccForAndroidxRoomLibraryAccessors;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 AndroidxEspressoLibraryAccessors extends SubDependencyFactory {
|
|
||||||
|
|
||||||
public AndroidxEspressoLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dependency provider for <b>core</b> with <b>androidx.test.espresso:espresso-core</b> coordinates and
|
|
||||||
* with version reference <b>espressoCore</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getCore() {
|
|
||||||
return create("androidx.espresso.core");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
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>viewmodel</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getCompose() {
|
|
||||||
return create("androidx.lifecycle.viewmodel.compose");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
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>navigation</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getCompose() {
|
|
||||||
return create("androidx.navigation.compose");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class AndroidxRoomLibraryAccessors extends SubDependencyFactory {
|
|
||||||
|
|
||||||
public AndroidxRoomLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dependency provider for <b>compiler</b> with <b>androidx.room:room-compiler</b> coordinates and
|
|
||||||
* with version reference <b>room</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getCompiler() {
|
|
||||||
return create("androidx.room.compiler");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dependency provider for <b>ktx</b> with <b>androidx.room:room-ktx</b> coordinates and
|
|
||||||
* with version reference <b>room</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getKtx() {
|
|
||||||
return create("androidx.room.ktx");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dependency provider for <b>runtime</b> with <b>androidx.room:room-runtime</b> coordinates and
|
|
||||||
* with version reference <b>room</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getRuntime() {
|
|
||||||
return create("androidx.room.runtime");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class AndroidxUiLibraryAccessors extends SubDependencyFactory implements DependencyNotationSupplier {
|
|
||||||
private final AndroidxUiTestLibraryAccessors laccForAndroidxUiTestLibraryAccessors = new AndroidxUiTestLibraryAccessors(owner);
|
|
||||||
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.test</b>
|
|
||||||
*/
|
|
||||||
public AndroidxUiTestLibraryAccessors getTest() {
|
|
||||||
return laccForAndroidxUiTestLibraryAccessors;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Group of libraries at <b>androidx.ui.tooling</b>
|
|
||||||
*/
|
|
||||||
public AndroidxUiToolingLibraryAccessors getTooling() {
|
|
||||||
return laccForAndroidxUiToolingLibraryAccessors;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class AndroidxUiTestLibraryAccessors extends SubDependencyFactory {
|
|
||||||
|
|
||||||
public AndroidxUiTestLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dependency provider for <b>junit4</b> with <b>androidx.compose.ui:ui-test-junit4</b> coordinates and
|
|
||||||
* with <b>no version specified</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getJunit4() {
|
|
||||||
return create("androidx.ui.test.junit4");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dependency provider for <b>manifest</b> with <b>androidx.compose.ui:ui-test-manifest</b> coordinates and
|
|
||||||
* with <b>no version specified</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getManifest() {
|
|
||||||
return create("androidx.ui.test.manifest");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
|
||||||
private final KotlinxSerializationLibraryAccessors laccForKotlinxSerializationLibraryAccessors = new KotlinxSerializationLibraryAccessors(owner);
|
|
||||||
|
|
||||||
public KotlinxLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Group of libraries at <b>kotlinx.coroutines</b>
|
|
||||||
*/
|
|
||||||
public KotlinxCoroutinesLibraryAccessors getCoroutines() {
|
|
||||||
return laccForKotlinxCoroutinesLibraryAccessors;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Group of libraries at <b>kotlinx.serialization</b>
|
|
||||||
*/
|
|
||||||
public KotlinxSerializationLibraryAccessors getSerialization() {
|
|
||||||
return laccForKotlinxSerializationLibraryAccessors;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class KotlinxCoroutinesLibraryAccessors extends SubDependencyFactory {
|
|
||||||
|
|
||||||
public KotlinxCoroutinesLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dependency provider for <b>android</b> with <b>org.jetbrains.kotlinx:kotlinx-coroutines-android</b> coordinates and
|
|
||||||
* with version reference <b>kotlinxCoroutines</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getAndroid() {
|
|
||||||
return create("kotlinx.coroutines.android");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class KotlinxSerializationLibraryAccessors extends SubDependencyFactory {
|
|
||||||
|
|
||||||
public KotlinxSerializationLibraryAccessors(AbstractExternalDependencyFactory owner) { super(owner); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dependency provider for <b>json</b> with <b>org.jetbrains.kotlinx:kotlinx-serialization-json</b> coordinates and
|
|
||||||
* with version reference <b>kotlinxSerialization</b>
|
|
||||||
* <p>
|
|
||||||
* This dependency was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<MinimalExternalModuleDependency> getJson() {
|
|
||||||
return create("kotlinx.serialization.json");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class VersionAccessors extends VersionFactory {
|
|
||||||
|
|
||||||
public VersionAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Version alias <b>activityCompose</b> with value <b>1.10.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> getActivityCompose() { return getVersion("activityCompose"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Version alias <b>agp</b> with value <b>8.9.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> 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.00</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.15.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> getCoreKtx() { return getVersion("coreKtx"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Version alias <b>espressoCore</b> with value <b>3.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> getEspressoCore() { return getVersion("espressoCore"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Version alias <b>junit</b> with value <b>4.13.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> getJunit() { return getVersion("junit"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Version alias <b>junitVersion</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> getJunitVersion() { return getVersion("junitVersion"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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>kotlinxCoroutines</b> with value <b>1.9.0</b>
|
|
||||||
* <p>
|
|
||||||
* If the version is a rich version and cannot be represented as a
|
|
||||||
* single version string, an empty string is returned.
|
|
||||||
* <p>
|
|
||||||
* This version was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<String> getKotlinxCoroutines() { return getVersion("kotlinxCoroutines"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Version alias <b>kotlinxSerialization</b> with value <b>1.7.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> getKotlinxSerialization() { return getVersion("kotlinxSerialization"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Version alias <b>ksp</b> with value <b>2.0.21-1.0.25</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> getKsp() { return getVersion("ksp"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Version alias <b>lifecycleRuntimeKtx</b> with value <b>2.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> getLifecycleRuntimeKtx() { return getVersion("lifecycleRuntimeKtx"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Version alias <b>navigation</b> with value <b>2.8.4</b>
|
|
||||||
* <p>
|
|
||||||
* If the version is a rich version and cannot be represented as a
|
|
||||||
* single version string, an empty string is returned.
|
|
||||||
* <p>
|
|
||||||
* This version was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<String> getNavigation() { return getVersion("navigation"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Version alias <b>room</b> with value <b>2.6.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> getRoom() { return getVersion("room"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Version alias <b>viewmodel</b> with value <b>2.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> getViewmodel() { return getVersion("viewmodel"); }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class BundleAccessors extends BundleFactory {
|
|
||||||
|
|
||||||
public BundleAccessors(ObjectFactory objects, ProviderFactory providers, DefaultVersionCatalog config, ImmutableAttributesFactory attributesFactory, CapabilityNotationParser capabilityNotationParser) { super(objects, providers, config, attributesFactory, capabilityNotationParser); }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class PluginAccessors extends PluginFactory {
|
|
||||||
private final AndroidPluginAccessors paccForAndroidPluginAccessors = new AndroidPluginAccessors(providers, config);
|
|
||||||
private final KotlinPluginAccessors paccForKotlinPluginAccessors = new KotlinPluginAccessors(providers, config);
|
|
||||||
|
|
||||||
public PluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Plugin provider for <b>ksp</b> with plugin id <b>com.google.devtools.ksp</b> and
|
|
||||||
* with version reference <b>ksp</b>
|
|
||||||
* <p>
|
|
||||||
* This plugin was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<PluginDependency> getKsp() { return createPlugin("ksp"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Group of plugins at <b>plugins.android</b>
|
|
||||||
*/
|
|
||||||
public AndroidPluginAccessors getAndroid() {
|
|
||||||
return paccForAndroidPluginAccessors;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Group of plugins at <b>plugins.kotlin</b>
|
|
||||||
*/
|
|
||||||
public KotlinPluginAccessors getKotlin() {
|
|
||||||
return paccForKotlinPluginAccessors;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class AndroidPluginAccessors extends PluginFactory {
|
|
||||||
|
|
||||||
public AndroidPluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Plugin provider for <b>android.application</b> with plugin id <b>com.android.application</b> and
|
|
||||||
* with version reference <b>agp</b>
|
|
||||||
* <p>
|
|
||||||
* This plugin was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<PluginDependency> getApplication() { return createPlugin("android.application"); }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class KotlinPluginAccessors extends PluginFactory {
|
|
||||||
|
|
||||||
public KotlinPluginAccessors(ProviderFactory providers, DefaultVersionCatalog config) { super(providers, config); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Plugin provider for <b>kotlin.android</b> with plugin id <b>org.jetbrains.kotlin.android</b> and
|
|
||||||
* with version reference <b>kotlin</b>
|
|
||||||
* <p>
|
|
||||||
* This plugin was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<PluginDependency> getAndroid() { return createPlugin("kotlin.android"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Plugin provider for <b>kotlin.compose</b> with plugin id <b>org.jetbrains.kotlin.plugin.compose</b> and
|
|
||||||
* with version reference <b>kotlin</b>
|
|
||||||
* <p>
|
|
||||||
* This plugin was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<PluginDependency> getCompose() { return createPlugin("kotlin.compose"); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Plugin provider for <b>kotlin.serialization</b> with plugin id <b>org.jetbrains.kotlin.plugin.serialization</b> and
|
|
||||||
* with version reference <b>kotlin</b>
|
|
||||||
* <p>
|
|
||||||
* This plugin was declared in catalog libs.versions.toml
|
|
||||||
*/
|
|
||||||
public Provider<PluginDependency> getSerialization() { return createPlugin("kotlin.serialization"); }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,2 +0,0 @@
|
|||||||
#Fri Aug 15 14:37:16 MDT 2025
|
|
||||||
gradle.version=8.11.1
|
|
||||||
Binary file not shown.
@@ -1,2 +0,0 @@
|
|||||||
#Fri Aug 15 12:29:02 MDT 2025
|
|
||||||
java.home=/Applications/Android Studio.app/Contents/jbr/Contents/Home
|
|
||||||
Binary file not shown.
@@ -1,87 +0,0 @@
|
|||||||
kotlin version: 2.0.21
|
|
||||||
error message: java.lang.IllegalStateException: Storage for [/Users/atridad/Developer/personal/OpenClimb/app/build/kspCaches/debug/symbolLookups/id-to-file.tab] is already registered
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.FilePageCache.registerPagedFileStorage(FilePageCache.java:410)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PagedFileStorage.<init>(PagedFileStorage.java:72)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.ResizeableMappedFile.<init>(ResizeableMappedFile.java:55)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentBTreeEnumerator.<init>(PersistentBTreeEnumerator.java:128)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentEnumerator.createDefaultEnumerator(PersistentEnumerator.java:52)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapImpl.<init>(PersistentMapImpl.java:165)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapImpl.<init>(PersistentMapImpl.java:140)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapBuilder.buildImplementation(PersistentMapBuilder.java:88)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapBuilder.build(PersistentMapBuilder.java:71)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:45)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:71)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.LazyStorage.createMap(LazyStorage.kt:62)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.LazyStorage.getStorageOrCreateNew(LazyStorage.kt:59)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.LazyStorage.set(LazyStorage.kt:80)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.PersistentStorageWrapper.set(PersistentStorage.kt:96)
|
|
||||||
at org.jetbrains.kotlin.incremental.LookupStorage.addFileIfNeeded(LookupStorage.kt:165)
|
|
||||||
at org.jetbrains.kotlin.incremental.LookupStorage.addAll$lambda$4(LookupStorage.kt:117)
|
|
||||||
at org.jetbrains.kotlin.utils.CollectionsKt.keysToMap(collections.kt:117)
|
|
||||||
at org.jetbrains.kotlin.incremental.LookupStorage.addAll(LookupStorage.kt:117)
|
|
||||||
at org.jetbrains.kotlin.incremental.BuildUtilKt.update(buildUtil.kt:134)
|
|
||||||
at com.google.devtools.ksp.LookupStorageWrapperImpl.update(IncrementalContext.kt:231)
|
|
||||||
at com.google.devtools.ksp.common.IncrementalContextBase.updateLookupCache(IncrementalContextBase.kt:133)
|
|
||||||
at com.google.devtools.ksp.common.IncrementalContextBase.updateCaches(IncrementalContextBase.kt:365)
|
|
||||||
at com.google.devtools.ksp.common.IncrementalContextBase.updateCachesAndOutputs(IncrementalContextBase.kt:471)
|
|
||||||
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.doAnalysis(KotlinSymbolProcessingExtension.kt:362)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:112)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:75)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze$lambda$12(KotlinToJVMBytecodeCompiler.kt:373)
|
|
||||||
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:112)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:364)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.repeatAnalysisIfNeeded(KotlinToJVMBytecodeCompiler.kt:282)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.runFrontendAndGenerateIrUsingClassicFrontend(KotlinToJVMBytecodeCompiler.kt:195)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:106)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:170)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:43)
|
|
||||||
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:103)
|
|
||||||
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:49)
|
|
||||||
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
|
|
||||||
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1555)
|
|
||||||
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
|
|
||||||
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
|
|
||||||
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
|
|
||||||
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
|
|
||||||
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
|
|
||||||
at java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
|
|
||||||
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
|
|
||||||
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:598)
|
|
||||||
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:844)
|
|
||||||
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:721)
|
|
||||||
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
|
|
||||||
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:720)
|
|
||||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
|
|
||||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
|
|
||||||
at java.base/java.lang.Thread.run(Thread.java:1583)
|
|
||||||
Suppressed: java.lang.Exception: Storage[/Users/atridad/Developer/personal/OpenClimb/app/build/kspCaches/debug/symbolLookups/id-to-file.tab] registration stack trace
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.FilePageCache.registerPagedFileStorage(FilePageCache.java:437)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PagedFileStorage.<init>(PagedFileStorage.java:72)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.ResizeableMappedFile.<init>(ResizeableMappedFile.java:55)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentBTreeEnumerator.<init>(PersistentBTreeEnumerator.java:128)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentEnumerator.createDefaultEnumerator(PersistentEnumerator.java:52)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapImpl.<init>(PersistentMapImpl.java:165)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapImpl.<init>(PersistentMapImpl.java:140)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapBuilder.buildImplementation(PersistentMapBuilder.java:88)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapBuilder.build(PersistentMapBuilder.java:71)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:45)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:71)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.LazyStorage.createMap(LazyStorage.kt:62)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.LazyStorage.getStorageIfExists(LazyStorage.kt:53)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.LazyStorage.get(LazyStorage.kt:76)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.PersistentStorageWrapper.get(PersistentStorage.kt:92)
|
|
||||||
at org.jetbrains.kotlin.incremental.LookupStorage.get(LookupStorage.kt:99)
|
|
||||||
at com.google.devtools.ksp.LookupStorageWrapperImpl.get(IncrementalContext.kt:224)
|
|
||||||
at com.google.devtools.ksp.common.IncrementalContextBase.calcDirtyFiles(IncrementalContextBase.kt:234)
|
|
||||||
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$2.invoke(KotlinSymbolProcessingExtension.kt:196)
|
|
||||||
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$2.invoke(KotlinSymbolProcessingExtension.kt:189)
|
|
||||||
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.handleException(KotlinSymbolProcessingExtension.kt:414)
|
|
||||||
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.doAnalysis(KotlinSymbolProcessingExtension.kt:189)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:112)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:75)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze$lambda$12(KotlinToJVMBytecodeCompiler.kt:373)
|
|
||||||
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:112)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:364)
|
|
||||||
... 23 more
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
kotlin version: 2.0.21
|
|
||||||
error message: java.lang.IllegalStateException: Storage for [/Users/atridad/Developer/personal/OpenClimb/app/build/kspCaches/debug/symbolLookups/id-to-file.tab] is already registered
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.FilePageCache.registerPagedFileStorage(FilePageCache.java:410)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PagedFileStorage.<init>(PagedFileStorage.java:72)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.ResizeableMappedFile.<init>(ResizeableMappedFile.java:55)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentBTreeEnumerator.<init>(PersistentBTreeEnumerator.java:128)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentEnumerator.createDefaultEnumerator(PersistentEnumerator.java:52)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapImpl.<init>(PersistentMapImpl.java:165)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapImpl.<init>(PersistentMapImpl.java:140)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapBuilder.buildImplementation(PersistentMapBuilder.java:88)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapBuilder.build(PersistentMapBuilder.java:71)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:45)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:71)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.LazyStorage.createMap(LazyStorage.kt:62)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.LazyStorage.getStorageOrCreateNew(LazyStorage.kt:59)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.LazyStorage.set(LazyStorage.kt:80)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.PersistentStorageWrapper.set(PersistentStorage.kt:96)
|
|
||||||
at org.jetbrains.kotlin.incremental.LookupStorage.addFileIfNeeded(LookupStorage.kt:165)
|
|
||||||
at org.jetbrains.kotlin.incremental.LookupStorage.addAll$lambda$4(LookupStorage.kt:117)
|
|
||||||
at org.jetbrains.kotlin.utils.CollectionsKt.keysToMap(collections.kt:117)
|
|
||||||
at org.jetbrains.kotlin.incremental.LookupStorage.addAll(LookupStorage.kt:117)
|
|
||||||
at org.jetbrains.kotlin.incremental.BuildUtilKt.update(buildUtil.kt:134)
|
|
||||||
at com.google.devtools.ksp.LookupStorageWrapperImpl.update(IncrementalContext.kt:231)
|
|
||||||
at com.google.devtools.ksp.common.IncrementalContextBase.updateLookupCache(IncrementalContextBase.kt:133)
|
|
||||||
at com.google.devtools.ksp.common.IncrementalContextBase.updateCaches(IncrementalContextBase.kt:365)
|
|
||||||
at com.google.devtools.ksp.common.IncrementalContextBase.updateCachesAndOutputs(IncrementalContextBase.kt:471)
|
|
||||||
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.doAnalysis(KotlinSymbolProcessingExtension.kt:362)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:112)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:75)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze$lambda$12(KotlinToJVMBytecodeCompiler.kt:373)
|
|
||||||
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:112)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:364)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.repeatAnalysisIfNeeded(KotlinToJVMBytecodeCompiler.kt:282)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.runFrontendAndGenerateIrUsingClassicFrontend(KotlinToJVMBytecodeCompiler.kt:195)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:106)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:170)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:43)
|
|
||||||
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:103)
|
|
||||||
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:49)
|
|
||||||
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
|
|
||||||
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1555)
|
|
||||||
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
|
|
||||||
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
|
|
||||||
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
|
|
||||||
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
|
|
||||||
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
|
|
||||||
at java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
|
|
||||||
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
|
|
||||||
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:598)
|
|
||||||
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:844)
|
|
||||||
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:721)
|
|
||||||
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
|
|
||||||
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:720)
|
|
||||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
|
|
||||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
|
|
||||||
at java.base/java.lang.Thread.run(Thread.java:1583)
|
|
||||||
Suppressed: java.lang.Exception: Storage[/Users/atridad/Developer/personal/OpenClimb/app/build/kspCaches/debug/symbolLookups/id-to-file.tab] registration stack trace
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.FilePageCache.registerPagedFileStorage(FilePageCache.java:437)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PagedFileStorage.<init>(PagedFileStorage.java:72)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.ResizeableMappedFile.<init>(ResizeableMappedFile.java:55)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentBTreeEnumerator.<init>(PersistentBTreeEnumerator.java:128)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentEnumerator.createDefaultEnumerator(PersistentEnumerator.java:52)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapImpl.<init>(PersistentMapImpl.java:165)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapImpl.<init>(PersistentMapImpl.java:140)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapBuilder.buildImplementation(PersistentMapBuilder.java:88)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentMapBuilder.build(PersistentMapBuilder.java:71)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:45)
|
|
||||||
at org.jetbrains.kotlin.com.intellij.util.io.PersistentHashMap.<init>(PersistentHashMap.java:71)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.LazyStorage.createMap(LazyStorage.kt:62)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.LazyStorage.getStorageIfExists(LazyStorage.kt:53)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.LazyStorage.get(LazyStorage.kt:76)
|
|
||||||
at org.jetbrains.kotlin.incremental.storage.PersistentStorageWrapper.get(PersistentStorage.kt:92)
|
|
||||||
at org.jetbrains.kotlin.incremental.LookupStorage.get(LookupStorage.kt:99)
|
|
||||||
at com.google.devtools.ksp.LookupStorageWrapperImpl.get(IncrementalContext.kt:224)
|
|
||||||
at com.google.devtools.ksp.common.IncrementalContextBase.calcDirtyFiles(IncrementalContextBase.kt:234)
|
|
||||||
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$2.invoke(KotlinSymbolProcessingExtension.kt:196)
|
|
||||||
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension$doAnalysis$2.invoke(KotlinSymbolProcessingExtension.kt:189)
|
|
||||||
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.handleException(KotlinSymbolProcessingExtension.kt:414)
|
|
||||||
at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.doAnalysis(KotlinSymbolProcessingExtension.kt:189)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:112)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:75)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze$lambda$12(KotlinToJVMBytecodeCompiler.kt:373)
|
|
||||||
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:112)
|
|
||||||
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:364)
|
|
||||||
... 23 more
|
|
||||||
|
|
||||||
|
|
||||||
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"java.configuration.updateBuildConfiguration": "disabled"
|
|
||||||
}
|
|
||||||
@@ -14,8 +14,8 @@ android {
|
|||||||
applicationId = "com.atridad.openclimb"
|
applicationId = "com.atridad.openclimb"
|
||||||
minSdk = 31
|
minSdk = 31
|
||||||
targetSdk = 35
|
targetSdk = 35
|
||||||
versionCode = 5
|
versionCode = 6
|
||||||
versionName = "0.3.2"
|
versionName = "0.3.3"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,37 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 3,
|
|
||||||
"artifactType": {
|
|
||||||
"type": "APK",
|
|
||||||
"kind": "Directory"
|
|
||||||
},
|
|
||||||
"applicationId": "com.atridad.openclimb",
|
|
||||||
"variantName": "release",
|
|
||||||
"elements": [
|
|
||||||
{
|
|
||||||
"type": "SINGLE",
|
|
||||||
"filters": [],
|
|
||||||
"attributes": [],
|
|
||||||
"versionCode": 4,
|
|
||||||
"versionName": "0.3.1",
|
|
||||||
"outputFile": "app-release.apk"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"elementType": "File",
|
|
||||||
"baselineProfiles": [
|
|
||||||
{
|
|
||||||
"minApi": 28,
|
|
||||||
"maxApi": 30,
|
|
||||||
"baselineProfiles": [
|
|
||||||
"baselineProfiles/1/app-release.dm"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"minApi": 31,
|
|
||||||
"maxApi": 2147483647,
|
|
||||||
"baselineProfiles": [
|
|
||||||
"baselineProfiles/0/app-release.dm"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"minSdkVersionForDexing": 31
|
|
||||||
}
|
|
||||||
@@ -9,12 +9,10 @@ import java.time.LocalDateTime
|
|||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
enum class AttemptResult {
|
enum class AttemptResult {
|
||||||
SUCCESS, // Completed the problem/route
|
SUCCESS,
|
||||||
FALL, // Fell but made progress
|
FALL,
|
||||||
NO_PROGRESS, // Couldn't make meaningful progress
|
NO_PROGRESS,
|
||||||
FLASH, // Completed on first try
|
FLASH,
|
||||||
REDPOINT, // Completed after previous attempts
|
|
||||||
ONSIGHT // Completed on first try without prior knowledge
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Entity(
|
@Entity(
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ data class ClimbSession(
|
|||||||
val start = LocalDateTime.parse(startTime)
|
val start = LocalDateTime.parse(startTime)
|
||||||
val end = LocalDateTime.parse(endTime)
|
val end = LocalDateTime.parse(endTime)
|
||||||
java.time.Duration.between(start, end).toMinutes()
|
java.time.Duration.between(start, end).toMinutes()
|
||||||
} catch (e: Exception) {
|
} catch (_: Exception) {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
} else null
|
} else null
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ class ClimbRepository(
|
|||||||
importData.gyms.forEach { gym ->
|
importData.gyms.forEach { gym ->
|
||||||
try {
|
try {
|
||||||
gymDao.insertGym(gym)
|
gymDao.insertGym(gym)
|
||||||
} catch (e: Exception) {
|
} catch (_: Exception) {
|
||||||
// If insertion fails, update instead
|
// If insertion fails, update instead
|
||||||
gymDao.updateGym(gym)
|
gymDao.updateGym(gym)
|
||||||
}
|
}
|
||||||
@@ -133,7 +133,7 @@ class ClimbRepository(
|
|||||||
importData.problems.forEach { problem ->
|
importData.problems.forEach { problem ->
|
||||||
try {
|
try {
|
||||||
problemDao.insertProblem(problem)
|
problemDao.insertProblem(problem)
|
||||||
} catch (e: Exception) {
|
} catch (_: Exception) {
|
||||||
problemDao.updateProblem(problem)
|
problemDao.updateProblem(problem)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -142,7 +142,7 @@ class ClimbRepository(
|
|||||||
importData.sessions.forEach { session ->
|
importData.sessions.forEach { session ->
|
||||||
try {
|
try {
|
||||||
sessionDao.insertSession(session)
|
sessionDao.insertSession(session)
|
||||||
} catch (e: Exception) {
|
} catch (_: Exception) {
|
||||||
sessionDao.updateSession(session)
|
sessionDao.updateSession(session)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,7 +151,7 @@ class ClimbRepository(
|
|||||||
importData.attempts.forEach { attempt ->
|
importData.attempts.forEach { attempt ->
|
||||||
try {
|
try {
|
||||||
attemptDao.insertAttempt(attempt)
|
attemptDao.insertAttempt(attempt)
|
||||||
} catch (e: Exception) {
|
} catch (_: Exception) {
|
||||||
attemptDao.updateAttempt(attempt)
|
attemptDao.updateAttempt(attempt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,9 +38,10 @@ class SessionTrackingService : Service() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createStopIntent(context: Context): Intent {
|
fun createStopIntent(context: Context, sessionId: String): Intent {
|
||||||
return Intent(context, SessionTrackingService::class.java).apply {
|
return Intent(context, SessionTrackingService::class.java).apply {
|
||||||
action = ACTION_STOP_SESSION
|
action = ACTION_STOP_SESSION
|
||||||
|
putExtra(EXTRA_SESSION_ID, sessionId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -63,7 +64,21 @@ class SessionTrackingService : Service() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ACTION_STOP_SESSION -> {
|
ACTION_STOP_SESSION -> {
|
||||||
stopSessionTracking()
|
val sessionId = intent.getStringExtra(EXTRA_SESSION_ID)
|
||||||
|
serviceScope.launch {
|
||||||
|
try {
|
||||||
|
val targetSession = when {
|
||||||
|
sessionId != null -> repository.getSessionById(sessionId)
|
||||||
|
else -> repository.getActiveSession()
|
||||||
|
}
|
||||||
|
if (targetSession != null && targetSession.status == com.atridad.openclimb.data.model.SessionStatus.ACTIVE) {
|
||||||
|
val completed = with(com.atridad.openclimb.data.model.ClimbSession) { targetSession.complete() }
|
||||||
|
repository.updateSession(completed)
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
stopSessionTracking()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return START_STICKY
|
return START_STICKY
|
||||||
@@ -131,7 +146,7 @@ class SessionTrackingService : Service() {
|
|||||||
.addAction(
|
.addAction(
|
||||||
android.R.drawable.ic_menu_close_clear_cancel,
|
android.R.drawable.ic_menu_close_clear_cancel,
|
||||||
"End Session",
|
"End Session",
|
||||||
createStopIntent()
|
createStopPendingIntent(sessionId)
|
||||||
)
|
)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
@@ -154,8 +169,8 @@ class SessionTrackingService : Service() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createStopIntent(): PendingIntent {
|
private fun createStopPendingIntent(sessionId: String): PendingIntent {
|
||||||
val intent = createStopIntent(this)
|
val intent = createStopIntent(this, sessionId)
|
||||||
return PendingIntent.getService(
|
return PendingIntent.getService(
|
||||||
this,
|
this,
|
||||||
1,
|
1,
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ import com.atridad.openclimb.ui.viewmodel.ClimbViewModelFactory
|
|||||||
fun OpenClimbApp() {
|
fun OpenClimbApp() {
|
||||||
val navController = rememberNavController()
|
val navController = rememberNavController()
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
val currentBackStackEntry by navController.currentBackStackEntryAsState()
|
|
||||||
|
|
||||||
val database = remember { OpenClimbDatabase.getDatabase(context) }
|
val database = remember { OpenClimbDatabase.getDatabase(context) }
|
||||||
val repository = remember { ClimbRepository(database, context) }
|
val repository = remember { ClimbRepository(database, context) }
|
||||||
@@ -148,6 +147,7 @@ fun OpenClimbApp() {
|
|||||||
// Detail screens
|
// Detail screens
|
||||||
composable<Screen.SessionDetail> { backStackEntry ->
|
composable<Screen.SessionDetail> { backStackEntry ->
|
||||||
val args = backStackEntry.toRoute<Screen.SessionDetail>()
|
val args = backStackEntry.toRoute<Screen.SessionDetail>()
|
||||||
|
LaunchedEffect(Unit) { fabConfig = null }
|
||||||
SessionDetailScreen(
|
SessionDetailScreen(
|
||||||
sessionId = args.sessionId,
|
sessionId = args.sessionId,
|
||||||
viewModel = viewModel,
|
viewModel = viewModel,
|
||||||
@@ -160,6 +160,7 @@ fun OpenClimbApp() {
|
|||||||
|
|
||||||
composable<Screen.ProblemDetail> { backStackEntry ->
|
composable<Screen.ProblemDetail> { backStackEntry ->
|
||||||
val args = backStackEntry.toRoute<Screen.ProblemDetail>()
|
val args = backStackEntry.toRoute<Screen.ProblemDetail>()
|
||||||
|
LaunchedEffect(Unit) { fabConfig = null }
|
||||||
ProblemDetailScreen(
|
ProblemDetailScreen(
|
||||||
problemId = args.problemId,
|
problemId = args.problemId,
|
||||||
viewModel = viewModel,
|
viewModel = viewModel,
|
||||||
@@ -172,6 +173,7 @@ fun OpenClimbApp() {
|
|||||||
|
|
||||||
composable<Screen.GymDetail> { backStackEntry ->
|
composable<Screen.GymDetail> { backStackEntry ->
|
||||||
val args = backStackEntry.toRoute<Screen.GymDetail>()
|
val args = backStackEntry.toRoute<Screen.GymDetail>()
|
||||||
|
LaunchedEffect(Unit) { fabConfig = null }
|
||||||
GymDetailScreen(
|
GymDetailScreen(
|
||||||
gymId = args.gymId,
|
gymId = args.gymId,
|
||||||
viewModel = viewModel,
|
viewModel = viewModel,
|
||||||
@@ -185,6 +187,7 @@ fun OpenClimbApp() {
|
|||||||
|
|
||||||
composable<Screen.AddEditGym> { backStackEntry ->
|
composable<Screen.AddEditGym> { backStackEntry ->
|
||||||
val args = backStackEntry.toRoute<Screen.AddEditGym>()
|
val args = backStackEntry.toRoute<Screen.AddEditGym>()
|
||||||
|
LaunchedEffect(Unit) { fabConfig = null }
|
||||||
AddEditGymScreen(
|
AddEditGymScreen(
|
||||||
gymId = args.gymId,
|
gymId = args.gymId,
|
||||||
viewModel = viewModel,
|
viewModel = viewModel,
|
||||||
@@ -194,6 +197,7 @@ fun OpenClimbApp() {
|
|||||||
|
|
||||||
composable<Screen.AddEditProblem> { backStackEntry ->
|
composable<Screen.AddEditProblem> { backStackEntry ->
|
||||||
val args = backStackEntry.toRoute<Screen.AddEditProblem>()
|
val args = backStackEntry.toRoute<Screen.AddEditProblem>()
|
||||||
|
LaunchedEffect(Unit) { fabConfig = null }
|
||||||
AddEditProblemScreen(
|
AddEditProblemScreen(
|
||||||
problemId = args.problemId,
|
problemId = args.problemId,
|
||||||
gymId = args.gymId,
|
gymId = args.gymId,
|
||||||
|
|||||||
@@ -948,8 +948,7 @@ fun AddEditSessionScreen(
|
|||||||
text = "Result: ${attempt.result.name.lowercase().replaceFirstChar { it.uppercase() }}",
|
text = "Result: ${attempt.result.name.lowercase().replaceFirstChar { it.uppercase() }}",
|
||||||
style = MaterialTheme.typography.bodyMedium,
|
style = MaterialTheme.typography.bodyMedium,
|
||||||
color = when (attempt.result) {
|
color = when (attempt.result) {
|
||||||
AttemptResult.SUCCESS, AttemptResult.FLASH,
|
AttemptResult.SUCCESS, AttemptResult.FLASH -> MaterialTheme.colorScheme.primary
|
||||||
AttemptResult.REDPOINT, AttemptResult.ONSIGHT -> MaterialTheme.colorScheme.primary
|
|
||||||
else -> MaterialTheme.colorScheme.onSurfaceVariant
|
else -> MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ fun SessionDetailScreen(
|
|||||||
|
|
||||||
// Calculate stats
|
// Calculate stats
|
||||||
val successfulAttempts = attempts.filter {
|
val successfulAttempts = attempts.filter {
|
||||||
it.result in listOf(AttemptResult.SUCCESS, AttemptResult.FLASH, AttemptResult.REDPOINT, AttemptResult.ONSIGHT)
|
it.result in listOf(AttemptResult.SUCCESS, AttemptResult.FLASH)
|
||||||
}
|
}
|
||||||
val uniqueProblems = attempts.map { it.problemId }.distinct()
|
val uniqueProblems = attempts.map { it.problemId }.distinct()
|
||||||
val attemptedProblems = problems.filter { it.id in uniqueProblems }
|
val attemptedProblems = problems.filter { it.id in uniqueProblems }
|
||||||
@@ -71,9 +71,7 @@ fun SessionDetailScreen(
|
|||||||
}.sortedByDescending { attempt ->
|
}.sortedByDescending { attempt ->
|
||||||
// Sort by result priority, then by timestamp
|
// Sort by result priority, then by timestamp
|
||||||
when (attempt.first.result) {
|
when (attempt.first.result) {
|
||||||
AttemptResult.ONSIGHT -> 5
|
AttemptResult.FLASH -> 3
|
||||||
AttemptResult.FLASH -> 4
|
|
||||||
AttemptResult.REDPOINT -> 3
|
|
||||||
AttemptResult.SUCCESS -> 2
|
AttemptResult.SUCCESS -> 2
|
||||||
AttemptResult.FALL -> 1
|
AttemptResult.FALL -> 1
|
||||||
else -> 0
|
else -> 0
|
||||||
@@ -130,8 +128,7 @@ fun SessionDetailScreen(
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
floatingActionButton = {
|
floatingActionButton = {
|
||||||
// Show FAB only for active sessions (those without duration)
|
if (session?.status == SessionStatus.ACTIVE) {
|
||||||
if (session?.duration == null) {
|
|
||||||
FloatingActionButton(
|
FloatingActionButton(
|
||||||
onClick = { showAddAttemptDialog = true }
|
onClick = { showAddAttemptDialog = true }
|
||||||
) {
|
) {
|
||||||
@@ -418,7 +415,7 @@ fun ProblemDetailScreen(
|
|||||||
|
|
||||||
// Calculate stats
|
// Calculate stats
|
||||||
val successfulAttempts = attempts.filter {
|
val successfulAttempts = attempts.filter {
|
||||||
it.result in listOf(AttemptResult.SUCCESS, AttemptResult.FLASH, AttemptResult.REDPOINT, AttemptResult.ONSIGHT)
|
it.result in listOf(AttemptResult.SUCCESS, AttemptResult.FLASH)
|
||||||
}
|
}
|
||||||
val successRate = if (attempts.isNotEmpty()) {
|
val successRate = if (attempts.isNotEmpty()) {
|
||||||
(successfulAttempts.size.toDouble() / attempts.size * 100).toInt()
|
(successfulAttempts.size.toDouble() / attempts.size * 100).toInt()
|
||||||
@@ -750,7 +747,7 @@ fun GymDetailScreen(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val successfulAttempts = gymAttempts.filter {
|
val successfulAttempts = gymAttempts.filter {
|
||||||
it.result in listOf(AttemptResult.SUCCESS, AttemptResult.FLASH, AttemptResult.REDPOINT, AttemptResult.ONSIGHT)
|
it.result in listOf(AttemptResult.SUCCESS, AttemptResult.FLASH)
|
||||||
}
|
}
|
||||||
|
|
||||||
val successRate = if (gymAttempts.isNotEmpty()) {
|
val successRate = if (gymAttempts.isNotEmpty()) {
|
||||||
@@ -984,7 +981,7 @@ fun GymDetailScreen(
|
|||||||
problems.sortedByDescending { it.createdAt }.take(5).forEach { problem ->
|
problems.sortedByDescending { it.createdAt }.take(5).forEach { problem ->
|
||||||
val problemAttempts = gymAttempts.filter { it.problemId == problem.id }
|
val problemAttempts = gymAttempts.filter { it.problemId == problem.id }
|
||||||
val problemSuccessful = problemAttempts.any {
|
val problemSuccessful = problemAttempts.any {
|
||||||
it.result in listOf(AttemptResult.SUCCESS, AttemptResult.FLASH, AttemptResult.REDPOINT, AttemptResult.ONSIGHT)
|
it.result in listOf(AttemptResult.SUCCESS, AttemptResult.FLASH)
|
||||||
}
|
}
|
||||||
|
|
||||||
Card(
|
Card(
|
||||||
@@ -1264,13 +1261,13 @@ fun AttemptHistoryCard(
|
|||||||
@Composable
|
@Composable
|
||||||
fun AttemptResultBadge(result: AttemptResult) {
|
fun AttemptResultBadge(result: AttemptResult) {
|
||||||
val backgroundColor = when (result) {
|
val backgroundColor = when (result) {
|
||||||
AttemptResult.SUCCESS, AttemptResult.FLASH, AttemptResult.REDPOINT, AttemptResult.ONSIGHT -> MaterialTheme.colorScheme.primaryContainer
|
AttemptResult.SUCCESS, AttemptResult.FLASH -> MaterialTheme.colorScheme.primaryContainer
|
||||||
AttemptResult.FALL -> MaterialTheme.colorScheme.secondaryContainer
|
AttemptResult.FALL -> MaterialTheme.colorScheme.secondaryContainer
|
||||||
else -> MaterialTheme.colorScheme.surfaceVariant
|
else -> MaterialTheme.colorScheme.surfaceVariant
|
||||||
}
|
}
|
||||||
|
|
||||||
val textColor = when (result) {
|
val textColor = when (result) {
|
||||||
AttemptResult.SUCCESS, AttemptResult.FLASH, AttemptResult.REDPOINT, AttemptResult.ONSIGHT -> MaterialTheme.colorScheme.onPrimaryContainer
|
AttemptResult.SUCCESS, AttemptResult.FLASH -> MaterialTheme.colorScheme.onPrimaryContainer
|
||||||
AttemptResult.FALL -> MaterialTheme.colorScheme.onSecondaryContainer
|
AttemptResult.FALL -> MaterialTheme.colorScheme.onSecondaryContainer
|
||||||
else -> MaterialTheme.colorScheme.onSurfaceVariant
|
else -> MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,8 +175,8 @@ class ClimbViewModel(
|
|||||||
val completedSession = with(ClimbSession) { session.complete() }
|
val completedSession = with(ClimbSession) { session.complete() }
|
||||||
repository.updateSession(completedSession)
|
repository.updateSession(completedSession)
|
||||||
|
|
||||||
// Stop the tracking service
|
// Stop the tracking service, passing the session id so service can finalize if needed
|
||||||
val serviceIntent = SessionTrackingService.createStopIntent(context)
|
val serviceIntent = SessionTrackingService.createStopIntent(context, sessionId)
|
||||||
context.startService(serviceIntent)
|
context.startService(serviceIntent)
|
||||||
|
|
||||||
_uiState.value = _uiState.value.copy(
|
_uiState.value = _uiState.value.copy(
|
||||||
@@ -186,32 +186,6 @@ class ClimbViewModel(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun pauseSession(sessionId: String) {
|
|
||||||
viewModelScope.launch {
|
|
||||||
val session = repository.getSessionById(sessionId)
|
|
||||||
if (session != null && session.status == SessionStatus.ACTIVE) {
|
|
||||||
val pausedSession = session.copy(
|
|
||||||
status = SessionStatus.PAUSED,
|
|
||||||
updatedAt = java.time.LocalDateTime.now().toString()
|
|
||||||
)
|
|
||||||
repository.updateSession(pausedSession)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun resumeSession(sessionId: String) {
|
|
||||||
viewModelScope.launch {
|
|
||||||
val session = repository.getSessionById(sessionId)
|
|
||||||
if (session != null && session.status == SessionStatus.PAUSED) {
|
|
||||||
val resumedSession = session.copy(
|
|
||||||
status = SessionStatus.ACTIVE,
|
|
||||||
updatedAt = java.time.LocalDateTime.now().toString()
|
|
||||||
)
|
|
||||||
repository.updateSession(resumedSession)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Attempt operations
|
// Attempt operations
|
||||||
fun addAttempt(attempt: Attempt) {
|
fun addAttempt(attempt: Attempt) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
@@ -219,52 +193,12 @@ class ClimbViewModel(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateAttempt(attempt: Attempt) {
|
|
||||||
viewModelScope.launch {
|
|
||||||
repository.updateAttempt(attempt)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun deleteAttempt(attempt: Attempt) {
|
|
||||||
viewModelScope.launch {
|
|
||||||
repository.deleteAttempt(attempt)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getAttemptsBySession(sessionId: String): Flow<List<Attempt>> =
|
fun getAttemptsBySession(sessionId: String): Flow<List<Attempt>> =
|
||||||
repository.getAttemptsBySession(sessionId)
|
repository.getAttemptsBySession(sessionId)
|
||||||
|
|
||||||
fun getAttemptsByProblem(problemId: String): Flow<List<Attempt>> =
|
fun getAttemptsByProblem(problemId: String): Flow<List<Attempt>> =
|
||||||
repository.getAttemptsByProblem(problemId)
|
repository.getAttemptsByProblem(problemId)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Analytics operations
|
|
||||||
// fun getProblemProgress(problemId: String): Flow<ProblemProgress?> =
|
|
||||||
// repository.getProblemProgress(problemId)
|
|
||||||
|
|
||||||
// fun getSessionSummary(sessionId: String): Flow<SessionSummary?> =
|
|
||||||
// repository.getSessionSummary(sessionId)
|
|
||||||
|
|
||||||
// Export operations
|
|
||||||
fun exportData(context: Context, directory: File? = null) {
|
|
||||||
viewModelScope.launch {
|
|
||||||
try {
|
|
||||||
_uiState.value = _uiState.value.copy(isLoading = true)
|
|
||||||
val exportFile = repository.exportAllDataToJson(directory)
|
|
||||||
_uiState.value = _uiState.value.copy(
|
|
||||||
isLoading = false,
|
|
||||||
message = "Data exported to: ${exportFile.absolutePath}"
|
|
||||||
)
|
|
||||||
} catch (e: Exception) {
|
|
||||||
_uiState.value = _uiState.value.copy(
|
|
||||||
isLoading = false,
|
|
||||||
error = "Export failed: ${e.message}"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun exportDataToUri(context: Context, uri: android.net.Uri) {
|
fun exportDataToUri(context: Context, uri: android.net.Uri) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
try {
|
try {
|
||||||
@@ -282,26 +216,7 @@ class ClimbViewModel(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ZIP Export operations with images
|
|
||||||
fun exportDataToZip(context: Context, directory: File? = null) {
|
|
||||||
viewModelScope.launch {
|
|
||||||
try {
|
|
||||||
_uiState.value = _uiState.value.copy(isLoading = true)
|
|
||||||
val exportFile = repository.exportAllDataToZip(directory)
|
|
||||||
_uiState.value = _uiState.value.copy(
|
|
||||||
isLoading = false,
|
|
||||||
message = "Data with images exported to: ${exportFile.absolutePath}"
|
|
||||||
)
|
|
||||||
} catch (e: Exception) {
|
|
||||||
_uiState.value = _uiState.value.copy(
|
|
||||||
isLoading = false,
|
|
||||||
error = "Export failed: ${e.message}"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun exportDataToZipUri(context: Context, uri: android.net.Uri) {
|
fun exportDataToZipUri(context: Context, uri: android.net.Uri) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
try {
|
try {
|
||||||
@@ -358,10 +273,6 @@ class ClimbViewModel(
|
|||||||
_uiState.value = _uiState.value.copy(error = message)
|
_uiState.value = _uiState.value.copy(error = message)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Search operations
|
|
||||||
fun searchGyms(query: String): Flow<List<Gym>> = repository.searchGyms(query)
|
|
||||||
fun searchProblems(query: String): Flow<List<Problem>> = repository.searchProblems(query)
|
|
||||||
|
|
||||||
// Share operations
|
// Share operations
|
||||||
suspend fun generateSessionShareCard(
|
suspend fun generateSessionShareCard(
|
||||||
context: Context,
|
context: Context,
|
||||||
|
|||||||
@@ -34,9 +34,7 @@ object SessionShareUtils {
|
|||||||
): SessionStats {
|
): SessionStats {
|
||||||
val successfulResults = listOf(
|
val successfulResults = listOf(
|
||||||
AttemptResult.SUCCESS,
|
AttemptResult.SUCCESS,
|
||||||
AttemptResult.FLASH,
|
AttemptResult.FLASH
|
||||||
AttemptResult.REDPOINT,
|
|
||||||
AttemptResult.ONSIGHT
|
|
||||||
)
|
)
|
||||||
|
|
||||||
val successfulAttempts = attempts.filter { it.result in successfulResults }
|
val successfulAttempts = attempts.filter { it.result in successfulResults }
|
||||||
@@ -57,9 +55,7 @@ object SessionShareUtils {
|
|||||||
val duration = if (session.duration != null) "${session.duration}m" else "Unknown"
|
val duration = if (session.duration != null) "${session.duration}m" else "Unknown"
|
||||||
val topResult = attempts.maxByOrNull {
|
val topResult = attempts.maxByOrNull {
|
||||||
when (it.result) {
|
when (it.result) {
|
||||||
AttemptResult.ONSIGHT -> 5
|
AttemptResult.FLASH -> 3
|
||||||
AttemptResult.FLASH -> 4
|
|
||||||
AttemptResult.REDPOINT -> 3
|
|
||||||
AttemptResult.SUCCESS -> 2
|
AttemptResult.SUCCESS -> 2
|
||||||
AttemptResult.FALL -> 1
|
AttemptResult.FALL -> 1
|
||||||
else -> 0
|
else -> 0
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user