diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 8144c3c..f861765 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -11,6 +11,6 @@
-
+
\ No newline at end of file
diff --git a/android_project_common.gradle b/android_project_common.gradle
index 39fea5b..af75cfe 100644
--- a/android_project_common.gradle
+++ b/android_project_common.gradle
@@ -9,14 +9,7 @@ allprojects {
configurations.all {
resolutionStrategy {
eachDependency { details ->
- if (details.requested.group == 'com.android.support') {
- if (details.requested.name == 'multidex'
- || details.requested.name == 'multidex-instrumentation') {
- details.useVersion versions.multidexLib
- } else {
- details.useVersion versions.supportLib
- }
- } else if (details.requested.group == 'androidx.arch.core') {
+ if (details.requested.group == 'androidx.arch.core') {
details.useVersion versions.archCore
} else if (details.requested.group == 'androidx.lifecycle') {
details.useVersion versions.lifecycle
@@ -38,25 +31,25 @@ ext {
'compileSdk' : 31,
// Android official support
- 'kotlin' : '1.5.31',
+ 'kotlin' : '1.6.10',
'kotlinCoroutine' : "1.5.2",
'multidexLib' : "2.0.1",
'androidxCore' : '1.7.0',
- 'fragment' : '1.3.6',
- 'preference' : "1.1.1",
+ 'fragment' : '1.4.1',
+ 'preference' : "1.2.0",
'palette' : "1.0.0",
'recyclerView' : "1.2.1",
- 'constraintLayout' : "2.1.1",
+ 'constraintLayout' : "2.1.3",
'vectorDrawable' : "1.1.0",
'lintLib' : '30.0.2',
'archCore' : "2.1.0",
- 'lifecycle' : "2.4.0",
- 'room' : '2.3.0',
- 'sqlite' : "2.1.0",
- 'navigation' : "2.3.5",
- 'paging' : "3.0.1",
- 'work' : "2.7.0",
- 'media2' : "1.2.0",
+ 'lifecycle' : "2.4.1",
+ 'room' : '2.4.1',
+ 'sqlite' : "2.2.0",
+ 'navigation' : "2.4.1",
+ 'paging' : "3.1.0",
+ 'work' : "2.7.1",
+ 'media2' : "1.2.1",
// test
'testCore' : "1.4.0",
@@ -118,12 +111,12 @@ ext {
'coreKtx' : "androidx.core:core-ktx:${versions.androidxCore}",
'fragment' : "androidx.fragment:fragment:${versions.fragment}",
'fragmentKtx' : "androidx.fragment:fragment-ktx:${versions.fragment}",
- 'localBroadcast' : "androidx.localbroadcastmanager:localbroadcastmanager:1.0.0",
- 'collection' : "androidx.collection:collection:1.1.0",
- 'collectionKtx' : "androidx.collection:collection-ktx:1.1.0",
+ 'localBroadcast' : "androidx.localbroadcastmanager:localbroadcastmanager:1.1.0",
+ 'collection' : "androidx.collection:collection:1.2.0",
+ 'collectionKtx' : "androidx.collection:collection-ktx:1.2.0",
// UI
- 'appcompat' : "androidx.appcompat:appcompat:1.3.1",
- 'material' : "com.google.android.material:material:1.4.0",
+ 'appcompat' : "androidx.appcompat:appcompat:1.4.1",
+ 'material' : "com.google.android.material:material:1.5.0",
'preference' : "androidx.preference:preference:${versions.preference}",
'preferenceKtx' : "androidx.preference:preference-ktx:${versions.preference}",
'constraintLayout' : "androidx.constraintlayout:constraintlayout:${versions.constraintLayout}",
@@ -134,7 +127,7 @@ ext {
'recyclerview' : "androidx.recyclerview:recyclerview:${versions.recyclerView}",
'recyclerviewSelection' : "androidx.recyclerview:recyclerview:${versions.recyclerView}",
'percent' : "androidx.percentlayout:percentlayout:1.0.0",
- 'coordinatorLayout' : "androidx.coordinatorlayout:coordinatorlayout:1.1.0",
+ 'coordinatorLayout' : "androidx.coordinatorlayout:coordinatorlayout:1.2.0",
'drawerLayout' : "androidx.drawerlayout:drawerlayout:1.1.1",
'swipeRefreshLayout' : "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0",
'viewPager' : "androidx.viewpager:viewpager:1.0.0",
@@ -147,7 +140,7 @@ ext {
'multidex' : "androidx.multidex:multidex:${versions.multidexLib}",
'mediaSession' : "androidx.media2:media2-session:${versions.media2}",
'mediaExoPlayer' : "androidx.media2:media2-exoplayer:${versions.media2}",
- 'mediarouter' : "androidx.mediarouter:mediarouter:1.2.5",
+ 'mediarouter' : "androidx.mediarouter:mediarouter:1.2.6",
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.3",
'wear' : "androidx.wear:wear:1.0.0",
// legacy
diff --git a/archLib/build.gradle b/archLib/build.gradle
index fef854c..55767aa 100644
--- a/archLib/build.gradle
+++ b/archLib/build.gradle
@@ -7,9 +7,6 @@ android {
defaultConfig {
minSdkVersion versions.minSdk
}
-
- lintOptions {
- }
}
dependencies {
diff --git a/archLintRules/build.gradle b/archLintRules/build.gradle
index 2a0bd3a..1a2e462 100644
--- a/archLintRules/build.gradle
+++ b/archLintRules/build.gradle
@@ -26,3 +26,9 @@ test {
showStandardStreams = true
}
}
+
+tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {
+ kotlinOptions {
+ jvmTarget = "11"
+ }
+}
diff --git a/archLintRulesTestDemo/build.gradle b/archLintRulesTestDemo/build.gradle
index 2b02eed..9c14af6 100644
--- a/archLintRulesTestDemo/build.gradle
+++ b/archLintRulesTestDemo/build.gradle
@@ -23,14 +23,12 @@ android {
}
}
- lintOptions {
- abortOnError false
-
- // comment the following line when debug lint rules
- disable 'MyBaseActivity', 'MyBroadcastHelper', 'MyIntentHelper', 'MyToastHelper'
-
- disable 'GoogleAppIndexingWarning'
- disable 'AllowBackup'
+ lint {
+ // It's too slow to run lint checks. So disable it.
+ checkDependencies false
+ checkReleaseBuilds false
+ checkOnly 'AllowBackup'
+ ignoreWarnings true
}
}
@@ -38,24 +36,24 @@ dependencies {
implementation project(':archLib')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${versions.kotlin}"
- implementation "androidx.appcompat:appcompat:1.3.1"
+ implementation "androidx.appcompat:appcompat:1.4.1"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:${versions.kotlinCoroutine}"
// The following dependencies are just for checking new versions of library
implementation "androidx.core:core-ktx:${versions.androidxCore}"
implementation "androidx.fragment:fragment-ktx:${versions.fragment}"
- implementation "com.google.android.material:material:1.4.0"
+ implementation "com.google.android.material:material:1.5.0"
implementation "androidx.multidex:multidex:${versions.multidexLib}"
implementation "androidx.annotation:annotation:1.3.0"
- implementation "androidx.localbroadcastmanager:localbroadcastmanager:1.0.0"
- implementation "androidx.collection:collection-ktx:1.1.0"
+ implementation "androidx.localbroadcastmanager:localbroadcastmanager:1.1.0"
+ implementation "androidx.collection:collection-ktx:1.2.0"
implementation "androidx.preference:preference-ktx:${versions.preference}"
implementation "androidx.constraintlayout:constraintlayout:${versions.constraintLayout}"
implementation "androidx.cardview:cardview:1.0.0"
implementation "androidx.gridlayout:gridlayout:1.0.0"
implementation "androidx.palette:palette-ktx:${versions.palette}"
implementation "androidx.recyclerview:recyclerview:${versions.recyclerView}"
- implementation "androidx.coordinatorlayout:coordinatorlayout:1.1.0"
+ implementation "androidx.coordinatorlayout:coordinatorlayout:1.2.0"
implementation "androidx.drawerlayout:drawerlayout:1.1.1"
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
implementation "androidx.viewpager2:viewpager2:1.0.0"
@@ -66,7 +64,7 @@ dependencies {
implementation "androidx.browser:browser:1.4.0"
implementation "androidx.transition:transition:1.4.1"
implementation "androidx.media2:media2-session:${versions.media2}"
- implementation "androidx.mediarouter:mediarouter:1.2.5"
+ implementation "androidx.mediarouter:mediarouter:1.2.6"
implementation "androidx.exifinterface:exifinterface:1.3.3"
implementation "androidx.arch.core:core-common:${versions.archCore}"
diff --git a/baseLib/build.gradle b/baseLib/build.gradle
index 16893d0..5975080 100644
--- a/baseLib/build.gradle
+++ b/baseLib/build.gradle
@@ -10,7 +10,7 @@ android {
minSdkVersion versions.minSdk
}
- lintOptions {
+ lint {
disable 'PrivateApi'
}
}
diff --git a/baseLib/src/androidTest/AndroidManifest.xml b/baseLib/src/androidTest/AndroidManifest.xml
index 2b06a76..ecc9080 100644
--- a/baseLib/src/androidTest/AndroidManifest.xml
+++ b/baseLib/src/androidTest/AndroidManifest.xml
@@ -2,10 +2,6 @@
-
-
diff --git a/baseLib/src/main/java/me/ycdev/android/lib/common/packets/PacketsWorker.kt b/baseLib/src/main/java/me/ycdev/android/lib/common/packets/PacketsWorker.kt
index e8dd038..d2c05e6 100644
--- a/baseLib/src/main/java/me/ycdev/android/lib/common/packets/PacketsWorker.kt
+++ b/baseLib/src/main/java/me/ycdev/android/lib/common/packets/PacketsWorker.kt
@@ -42,7 +42,7 @@ abstract class PacketsWorker(
fun onDataParsed(data: ByteArray)
}
- @VisibleForTesting
+ @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
internal enum class ParserState {
HEADER_MAGIC,
VERSION,
diff --git a/build.gradle b/build.gradle
index 9d646b9..4e13370 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,13 +5,8 @@ buildscript {
}
apply from: "${androidProjectCommon}"
- repositories {
- google()
- mavenCentral()
- }
-
dependencies {
- classpath 'com.android.tools.build:gradle:7.0.3'
+ classpath 'com.android.tools.build:gradle:7.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}"
}
}
@@ -19,14 +14,6 @@ buildscript {
plugins {
id("com.diffplug.spotless") version "5.16.0"
id("io.github.gradle-nexus.publish-plugin") version "1.1.0"
- id("org.jetbrains.dokka") version "1.5.30"
-}
-
-allprojects {
- repositories {
- google()
- mavenCentral()
- }
}
ext {
@@ -39,7 +26,7 @@ ext {
'projectScmDevConnection': 'ssh://git@github.com/yongce/AndroidLib.git',
'projectInceptionYear': '2013',
'groupId': 'io.github.yongce',
- 'version': '2.0.0',
+ 'version': '2.0.1',
'developerId': 'yongce',
'developerName': 'Yongce Tu',
'developerEmail': 'yongce.tu@gmail.com',
diff --git a/gradle.properties b/gradle.properties
index 37a1d8f..f193cfc 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -3,3 +3,4 @@ android.enableJetifier=true
org.gradle.jvmargs=-Xmx4096M
+android.disableAutomaticComponentCreation=true
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index e708b1c..7454180 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index e10d48d..68de63b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
diff --git a/gradlew b/gradlew
index 4f906e0..1b6c787 100755
--- a/gradlew
+++ b/gradlew
@@ -1,7 +1,7 @@
-#!/usr/bin/env sh
+#!/bin/sh
#
-# Copyright 2015 the original author or authors.
+# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,67 +17,101 @@
#
##############################################################################
-##
-## Gradle start up script for UN*X
-##
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
##############################################################################
# Attempt to set APP_HOME
+
# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
+
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
+APP_BASE_NAME=${0##*/}
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
+MAX_FD=maximum
warn () {
echo "$*"
-}
+} >&2
die () {
echo
echo "$*"
echo
exit 1
-}
+} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
@@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
+ JAVACMD=$JAVA_HOME/jre/sh/java
else
- JAVACMD="$JAVA_HOME/bin/java"
+ JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
- JAVACMD="java"
+ JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
@@ -106,80 +140,95 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
fi
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
# Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
fi
- i=`expr $i + 1`
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
done
- case $i in
- 0) set -- ;;
- 1) set -- "$args0" ;;
- 2) set -- "$args0" "$args1" ;;
- 3) set -- "$args0" "$args1" "$args2" ;;
- 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
fi
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=`save "$@"`
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
exec "$JAVACMD" "$@"
diff --git a/jniLibDemo/build.gradle b/jniLibDemo/build.gradle
index 8687cb0..5e1bc31 100644
--- a/jniLibDemo/build.gradle
+++ b/jniLibDemo/build.gradle
@@ -22,7 +22,7 @@ android {
}
}
- lintOptions {
+ lint {
disable 'GoogleAppIndexingWarning'
disable 'MyBaseActivity','MyToastHelper'
}
diff --git a/jniLibDemo/src/main/AndroidManifest.xml b/jniLibDemo/src/main/AndroidManifest.xml
index ab32be9..1465be4 100644
--- a/jniLibDemo/src/main/AndroidManifest.xml
+++ b/jniLibDemo/src/main/AndroidManifest.xml
@@ -9,7 +9,6 @@
android:theme="@style/AppTheme" >
diff --git a/publish-module.gradle b/publish-module.gradle
index 583eb5b..dc38395 100644
--- a/publish-module.gradle
+++ b/publish-module.gradle
@@ -1,37 +1,20 @@
apply plugin: 'maven-publish'
apply plugin: 'signing'
-apply plugin: 'org.jetbrains.dokka'
-
-task androidSourcesJar(type: Jar) {
- archiveClassifier.set('sources')
- if (project.plugins.findPlugin("com.android.library")) {
- from android.sourceSets.main.java.srcDirs
- from android.sourceSets.main.kotlin.srcDirs
- } else {
- from sourceSets.main.java.srcDirs
- from sourceSets.main.kotlin.srcDirs
- }
-}
-
-tasks.withType(dokkaHtmlPartial.getClass()).configureEach {
- pluginsMapConfiguration.set(
- ["org.jetbrains.dokka.base.DokkaBase": """{ "separateInheritedMembers": true}"""]
- )
-}
-
-task javadocJar(type: Jar, dependsOn: dokkaJavadoc) {
- archiveClassifier.set('javadoc')
- from dokkaJavadoc.outputDirectory
-}
-
-artifacts {
- archives androidSourcesJar
- archives javadocJar
-}
group = mavenMeta.groupId
version = mavenMeta.version
+if (project.plugins.findPlugin("com.android.library")) {
+ android {
+ publishing {
+ singleVariant("release") {
+ withSourcesJar()
+ withJavadocJar()
+ }
+ }
+ }
+}
+
afterEvaluate {
publishing {
publications {
@@ -46,9 +29,6 @@ afterEvaluate {
artifactId = project.archivesBaseName
version = mavenMeta.version
- artifact androidSourcesJar
- artifact javadocJar
-
pom {
name = project.moduleName
description = project.moduleDesc
diff --git a/settings.gradle b/settings.gradle
index 61de367..43ee956 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,3 +1,19 @@
+pluginManagement {
+ repositories {
+ gradlePluginPortal()
+ google()
+ mavenCentral()
+ }
+}
+
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
rootProject.name = 'AndroidLibProject'
include ':baseLib'
diff --git a/testLib/build.gradle b/testLib/build.gradle
index aa1622b..2cf756b 100644
--- a/testLib/build.gradle
+++ b/testLib/build.gradle
@@ -10,7 +10,7 @@ android {
minSdkVersion versions.minSdk
}
- lintOptions {
+ lint {
disable 'InvalidPackage'
}
}
diff --git a/uiLib/build.gradle b/uiLib/build.gradle
index ab79034..7f4c8aa 100644
--- a/uiLib/build.gradle
+++ b/uiLib/build.gradle
@@ -15,7 +15,7 @@ android {
viewBinding = true
}
- lintOptions {
+ lint {
disable 'UnusedResources'
}
}