Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion Android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,15 @@ android {
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}
buildFeatures {
// LogWrapper reads BuildConfig.DEBUG. AGP 9 removed the
// android.defaults.buildfeatures.buildconfig property, so this must be
// requested per-module now.
buildConfig = true
// The build types below declare the FIREBASE_ENABLED resValue, which
// AGP 9 likewise requires to be enabled explicitly.
resValues = true
}
lintOptions {
// Ignore lint errors that we believe are safe to ignore.
baseline file("lint-baseline.xml")
Expand Down Expand Up @@ -151,7 +160,9 @@ tasks.register('compileGoBackend', Exec) {
outputs.file(goBackendAAR)

environment 'GOTOOLCHAIN', goToolchain
environment 'ANDROID_HOME', android.sdkDirectory
// AGP 9 removed android.sdkDirectory; the SDK location is now exposed as a
// provider on the androidComponents extension.
environment 'ANDROID_HOME', androidComponents.sdkComponents.sdkDirectory.get().asFile
environment 'PATH', goBuildDir.getPath() +
System.getProperty('path.separator') +
System.getenv('PATH')
Expand Down
57 changes: 27 additions & 30 deletions Android/app/src/main/java/app/intra/ui/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -207,29 +207,29 @@ public void onClick(View v) {
drawer.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.up:
case R.id.home:
chooseView(R.id.frame_main);
return true;
case R.id.settings:
chooseView(R.id.settings);
return true;
case R.id.support:
openUrl("https://support.getintra.org/");
return true;
case R.id.privacy:
openUrl("https://getintra.org/privacy");
return true;
case R.id.tos:
openUrl("https://policies.google.com/terms");
return true;
case R.id.source_code:
openUrl("https://github.com/Jigsaw-Code/intra");
return true;
default:
return false;
// Resource IDs are not compile-time constants, so they cannot be used
// as switch labels.
final int itemId = item.getItemId();
if (itemId == R.id.up || itemId == R.id.home) {
chooseView(R.id.frame_main);
return true;
} else if (itemId == R.id.settings) {
chooseView(R.id.settings);
return true;
} else if (itemId == R.id.support) {
openUrl("https://support.getintra.org/");
return true;
} else if (itemId == R.id.privacy) {
openUrl("https://getintra.org/privacy");
return true;
} else if (itemId == R.id.tos) {
openUrl("https://policies.google.com/terms");
return true;
} else if (itemId == R.id.source_code) {
openUrl("https://github.com/Jigsaw-Code/intra");
return true;
}
return false;
}
});

Expand Down Expand Up @@ -759,14 +759,11 @@ private View chooseView(int id) {
selected.setVisibility(View.VISIBLE);

ActionBar actionBar = getSupportActionBar();
switch (id) {
case R.id.frame_main:
actionBar.setTitle(R.string.app_name);
break;
case R.id.settings:
actionBar.setTitle(R.string.settings);
showSettings();
break;
if (id == R.id.frame_main) {
actionBar.setTitle(R.string.app_name);
} else if (id == R.id.settings) {
actionBar.setTitle(R.string.settings);
showSettings();
}

// Close the drawer
Expand Down
8 changes: 4 additions & 4 deletions Android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.5.1'
classpath 'com.android.tools.build:gradle:9.4.0'

// For Firebase Analytics
classpath 'com.google.gms:google-services:4.4.1'
classpath 'com.google.firebase:perf-plugin:1.4.1'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
classpath 'com.google.gms:google-services:4.5.0'
classpath 'com.google.firebase:perf-plugin:2.0.2'
classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.8'
}
dependencyLocking {
lockAllConfigurations()
Expand Down
182 changes: 86 additions & 96 deletions Android/buildscript-gradle.lockfile
Original file line number Diff line number Diff line change
@@ -1,132 +1,122 @@
# This is a Gradle generated file for dependency locking.
# Manual edits can break the build and are not advised.
# This file is expected to be part of source control.
androidx.databinding:databinding-common:8.5.1=classpath
androidx.databinding:databinding-compiler-common:8.5.1=classpath
com.android.databinding:baseLibrary:8.5.1=classpath
com.android.tools.analytics-library:crash:31.5.1=classpath
com.android.tools.analytics-library:protos:31.5.1=classpath
com.android.tools.analytics-library:shared:31.5.1=classpath
com.android.tools.analytics-library:tracker:31.5.1=classpath
# To regenerate this file, run: ./gradlew dependencies --write-locks
androidx.databinding:databinding-common:9.4.0=classpath
androidx.databinding:databinding-compiler-common:9.4.0=classpath
com.android.databinding:baseLibrary:9.4.0=classpath
com.android.tools.analytics-library:crash:32.4.0=classpath
com.android.tools.analytics-library:protos:32.4.0=classpath
com.android.tools.analytics-library:shared:32.4.0=classpath
com.android.tools.analytics-library:tracker:32.4.0=classpath
com.android.tools.build.jetifier:jetifier-core:1.0.0-beta10=classpath
com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta10=classpath
com.android.tools.build:aapt2-proto:8.5.1-11315950=classpath
com.android.tools.build:aaptcompiler:8.5.1=classpath
com.android.tools.build:apksig:8.5.1=classpath
com.android.tools.build:apkzlib:8.5.1=classpath
com.android.tools.build:builder-model:8.5.1=classpath
com.android.tools.build:builder-test-api:8.5.1=classpath
com.android.tools.build:builder:8.5.1=classpath
com.android.tools.build:bundletool:1.16.0=classpath
com.android.tools.build:gradle-api:8.5.1=classpath
com.android.tools.build:gradle-settings-api:8.5.1=classpath
com.android.tools.build:gradle:8.5.1=classpath
com.android.tools.build:manifest-merger:31.5.1=classpath
com.android.tools.build:transform-api:2.0.0-deprecated-use-gradle-api=classpath
com.android.tools.ddms:ddmlib:31.5.1=classpath
com.android.tools.layoutlib:layoutlib-api:31.5.1=classpath
com.android.tools.lint:lint-model:31.5.1=classpath
com.android.tools.lint:lint-typedef-remover:31.5.1=classpath
com.android.tools.utp:android-device-provider-ddmlib-proto:31.5.1=classpath
com.android.tools.utp:android-device-provider-gradle-proto:31.5.1=classpath
com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:31.5.1=classpath
com.android.tools.utp:android-test-plugin-host-apk-installer-proto:31.5.1=classpath
com.android.tools.utp:android-test-plugin-host-coverage-proto:31.5.1=classpath
com.android.tools.utp:android-test-plugin-host-emulator-control-proto:31.5.1=classpath
com.android.tools.utp:android-test-plugin-host-logcat-proto:31.5.1=classpath
com.android.tools.utp:android-test-plugin-host-retention-proto:31.5.1=classpath
com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:31.5.1=classpath
com.android.tools:annotations:31.5.1=classpath
com.android.tools:common:31.5.1=classpath
com.android.tools:dvlib:31.5.1=classpath
com.android.tools:repository:31.5.1=classpath
com.android.tools:sdk-common:31.5.1=classpath
com.android.tools:sdklib:31.5.1=classpath
com.android:signflinger:8.5.1=classpath
com.android:zipflinger:8.5.1=classpath
com.android.tools.build:aapt2-proto:9.4.0-15978811=classpath
com.android.tools.build:aaptcompiler:9.4.0=classpath
com.android.tools.build:apksig:9.4.0=classpath
com.android.tools.build:apkzlib:9.4.0=classpath
com.android.tools.build:builder-model:9.4.0=classpath
com.android.tools.build:builder-test-api:9.4.0=classpath
com.android.tools.build:builder:9.4.0=classpath
com.android.tools.build:bundletool:1.18.3=classpath
com.android.tools.build:gradle-api:9.4.0=classpath
com.android.tools.build:gradle-common-api:9.4.0=classpath
com.android.tools.build:gradle-settings-api:9.4.0=classpath
com.android.tools.build:gradle:9.4.0=classpath
com.android.tools.build:manifest-merger:32.4.0=classpath
com.android.tools.ddms:ddmlib:32.4.0=classpath
com.android.tools.layoutlib:layoutlib-api:32.4.0=classpath
com.android.tools.lint:lint-model:32.4.0=classpath
com.android.tools.lint:lint-typedef-remover:32.4.0=classpath
com.android.tools.utp:gradle-work-action-api:32.4.0=classpath
com.android.tools:annotations:32.4.0=classpath
com.android.tools:common:32.4.0=classpath
com.android.tools:dvlib:32.4.0=classpath
com.android.tools:repository:32.4.0=classpath
com.android.tools:sdk-common:32.4.0=classpath
com.android.tools:sdklib:32.4.0=classpath
com.android:signflinger:9.4.0=classpath
com.android:zipflinger:9.4.0=classpath
com.google.android.gms:strict-version-matcher-plugin:1.2.4=classpath
com.google.android:annotations:4.1.1.4=classpath
com.google.api.grpc:proto-google-common-protos:2.17.0=classpath
com.google.auto.value:auto-value-annotations:1.6.2=classpath
com.google.code.findbugs:jsr305:3.0.2=classpath
com.google.code.gson:gson:2.10.1=classpath
com.google.code.gson:gson:2.11.0=classpath
com.google.crypto.tink:tink:1.7.0=classpath
com.google.dagger:dagger:2.28.3=classpath
com.google.errorprone:error_prone_annotations:2.18.0=classpath
com.google.firebase:firebase-crashlytics-buildtools:2.8.1=classpath
com.google.firebase:firebase-crashlytics-gradle:2.8.1=classpath
com.google.firebase:perf-plugin:1.4.1=classpath
com.google.errorprone:error_prone_annotations:2.36.0=classpath
com.google.firebase:firebase-crashlytics-buildtools:3.0.8=classpath
com.google.firebase:firebase-crashlytics-gradle:3.0.8=classpath
com.google.firebase:perf-plugin:2.0.2=classpath
com.google.flatbuffers:flatbuffers-java:1.12.0=classpath
com.google.gms:google-services:4.4.1=classpath
com.google.guava:failureaccess:1.0.1=classpath
com.google.guava:guava:32.0.1-jre=classpath
com.google.gms:google-services:4.5.0=classpath
com.google.guava:failureaccess:1.0.2=classpath
com.google.guava:guava:33.4.0-jre=classpath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=classpath
com.google.j2objc:j2objc-annotations:2.8=classpath
com.google.j2objc:j2objc-annotations:3.0.0=classpath
com.google.jimfs:jimfs:1.1=classpath
com.google.protobuf:protobuf-java-util:3.22.3=classpath
com.google.protobuf:protobuf-java:3.22.3=classpath
com.google.testing.platform:core-proto:0.0.9-alpha02=classpath
com.google.protobuf:protobuf-java-util:3.25.5=classpath
com.google.protobuf:protobuf-java:3.25.5=classpath
com.googlecode.juniversalchardet:juniversalchardet:1.0.3=classpath
com.squareup:javapoet:1.10.0=classpath
com.squareup:javapoet:1.13.0=classpath
com.squareup:javawriter:2.5.0=classpath
com.sun.activation:javax.activation:1.2.0=classpath
com.sun.istack:istack-commons-runtime:3.0.8=classpath
com.sun.xml.fastinfoset:FastInfoset:1.2.16=classpath
commons-codec:commons-codec:1.11=classpath
commons-io:commons-io:2.13.0=classpath
commons-codec:commons-codec:1.17.1=classpath
commons-io:commons-io:2.16.1=classpath
commons-logging:commons-logging:1.2=classpath
io.grpc:grpc-api:1.57.0=classpath
io.grpc:grpc-context:1.57.0=classpath
io.grpc:grpc-core:1.57.0=classpath
io.grpc:grpc-netty:1.57.0=classpath
io.grpc:grpc-protobuf-lite:1.57.0=classpath
io.grpc:grpc-protobuf:1.57.0=classpath
io.grpc:grpc-stub:1.57.0=classpath
io.netty:netty-buffer:4.1.93.Final=classpath
io.netty:netty-codec-http2:4.1.93.Final=classpath
io.netty:netty-codec-http:4.1.93.Final=classpath
io.netty:netty-codec-socks:4.1.93.Final=classpath
io.netty:netty-codec:4.1.93.Final=classpath
io.netty:netty-common:4.1.93.Final=classpath
io.netty:netty-handler-proxy:4.1.93.Final=classpath
io.netty:netty-handler:4.1.93.Final=classpath
io.netty:netty-resolver:4.1.93.Final=classpath
io.netty:netty-transport-native-unix-common:4.1.93.Final=classpath
io.netty:netty-transport:4.1.93.Final=classpath
io.perfmark:perfmark-api:0.26.0=classpath
jakarta.activation:jakarta.activation-api:1.2.1=classpath
jakarta.xml.bind:jakarta.xml.bind-api:2.3.2=classpath
javax.annotation:javax.annotation-api:1.3.2=classpath
javax.inject:javax.inject:1=classpath
net.java.dev.jna:jna-platform:5.6.0=classpath
net.java.dev.jna:jna:5.6.0=classpath
net.sf.jopt-simple:jopt-simple:4.9=classpath
net.sf.kxml:kxml2:2.3.0=classpath
org.apache.commons:commons-compress:1.21=classpath
org.apache.commons:commons-compress:1.27.1=classpath
org.apache.commons:commons-lang3:3.16.0=classpath
org.apache.httpcomponents:httpclient:4.5.14=classpath
org.apache.httpcomponents:httpcore:4.4.16=classpath
org.apache.httpcomponents:httpmime:4.5.6=classpath
org.bitbucket.b_c:jose4j:0.9.5=classpath
org.bouncycastle:bcpkix-jdk18on:1.77=classpath
org.bouncycastle:bcprov-jdk18on:1.77=classpath
org.bouncycastle:bcutil-jdk18on:1.77=classpath
org.checkerframework:checker-qual:3.33.0=classpath
org.codehaus.mojo:animal-sniffer-annotations:1.23=classpath
org.bouncycastle:bcpkix-jdk18on:1.80.2=classpath
org.bouncycastle:bcprov-jdk18on:1.80.2=classpath
org.bouncycastle:bcutil-jdk18on:1.80.2=classpath
org.checkerframework:checker-qual:3.43.0=classpath
org.glassfish.jaxb:jaxb-runtime:2.3.2=classpath
org.glassfish.jaxb:txw2:2.3.2=classpath
org.jdom:jdom2:2.0.6=classpath
org.jetbrains.intellij.deps:trove4j:1.0.20200330=classpath
org.jetbrains.kotlin:kotlin-reflect:1.9.20=classpath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20=classpath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20=classpath
org.jetbrains.kotlin:kotlin-stdlib:1.9.20=classpath
org.jetbrains.kotlin:abi-tools-api:2.2.10=classpath
org.jetbrains.kotlin:fus-statistics-gradle-plugin:2.2.10=classpath
org.jetbrains.kotlin:kotlin-build-statistics:2.2.10=classpath
org.jetbrains.kotlin:kotlin-build-tools-api:2.2.10=classpath
org.jetbrains.kotlin:kotlin-compiler-runner:2.2.10=classpath
org.jetbrains.kotlin:kotlin-daemon-client:2.2.10=classpath
org.jetbrains.kotlin:kotlin-gradle-plugin-annotations:2.2.10=classpath
org.jetbrains.kotlin:kotlin-gradle-plugin-api:2.2.10=classpath
org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:2.2.10=classpath
org.jetbrains.kotlin:kotlin-gradle-plugin-idea:2.2.10=classpath
org.jetbrains.kotlin:kotlin-gradle-plugin-model:2.2.10=classpath
org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.10=classpath
org.jetbrains.kotlin:kotlin-gradle-plugins-bom:2.2.10=classpath
org.jetbrains.kotlin:kotlin-klib-commonizer-api:2.2.10=classpath
org.jetbrains.kotlin:kotlin-native-utils:2.2.10=classpath
org.jetbrains.kotlin:kotlin-reflect:2.2.10=classpath
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.10=classpath
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.10=classpath
org.jetbrains.kotlin:kotlin-stdlib:2.2.10=classpath
org.jetbrains.kotlin:kotlin-tooling-core:2.2.10=classpath
org.jetbrains.kotlin:kotlin-util-io:2.2.10=classpath
org.jetbrains.kotlin:kotlin-util-klib-metadata:2.2.10=classpath
org.jetbrains.kotlin:kotlin-util-klib:2.2.10=classpath
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0=classpath
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0=classpath
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0=classpath
org.jetbrains:annotations:23.0.0=classpath
org.jvnet.staxex:stax-ex:1.8.1=classpath
org.ow2.asm:asm-analysis:9.6=classpath
org.ow2.asm:asm-commons:9.6=classpath
org.ow2.asm:asm-tree:9.6=classpath
org.ow2.asm:asm-util:9.6=classpath
org.ow2.asm:asm:9.6=classpath
org.ow2.asm:asm-analysis:9.9=classpath
org.ow2.asm:asm-commons:9.9=classpath
org.ow2.asm:asm-tree:9.9=classpath
org.ow2.asm:asm-util:9.9=classpath
org.ow2.asm:asm:9.9=classpath
org.slf4j:slf4j-api:1.7.30=classpath
org.tensorflow:tensorflow-lite-metadata:0.1.0-rc2=classpath
org.tensorflow:tensorflow-lite-metadata:0.2.0=classpath
empty=
7 changes: 4 additions & 3 deletions Android/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,11 @@ org.gradle.jvmargs=-Xmx2048m
android.enableJetifier=true
android.useAndroidX=true

# Keep legacy AGP behavior after upgrading to AGP 8
android.defaults.buildfeatures.buildconfig=true
# Keep legacy AGP behavior after upgrading to AGP 8.
# TODO: nonTransitiveRClass is deprecated and will be removed in AGP 10.
# Migrating off it requires auditing every R class reference, so it is left
# for a separate change.
android.nonTransitiveRClass=false
android.nonFinalResIds=false

ANDROID_COMPILE_SDK_VERSION=36
ANDROID_BUILD_TOOLS_VERSION=36.0.0
Expand Down
Loading
Loading