commands, final boolean isRooted) {
- return execCmd(commands == null ? null : commands.toArray(new String[]{}), isRooted, true);
- }
-
- /**
- * Execute the command.
- *
- * @param commands The commands.
- * @return the single {@link CommandResult} instance
- */
- public static CommandResult execCmd(final String[] commands) {
- return execCmd(commands, false, true);
- }
-
- /**
- * Execute the command.
- *
- * @param commands The commands.
- * @param isRooted True to use root, false otherwise.
- * @return the single {@link CommandResult} instance
- */
- public static CommandResult execCmd(final String[] commands, final boolean isRooted) {
- return execCmd(commands, isRooted, true);
- }
-
- /**
- * Execute the command.
- *
- * @param command The command.
- * @param isRooted True to use root, false otherwise.
- * @param isNeedResultMsg True to return the message of result, false otherwise.
- * @return the single {@link CommandResult} instance
- */
- public static CommandResult execCmd(final String command,
- final boolean isRooted,
- final boolean isNeedResultMsg) {
- return execCmd(new String[]{command}, isRooted, isNeedResultMsg);
- }
-
- /**
- * Execute the command.
- *
- * @param commands The commands.
- * @param isRooted True to use root, false otherwise.
- * @param isNeedResultMsg True to return the message of result, false otherwise.
- * @return the single {@link CommandResult} instance
- */
- public static CommandResult execCmd(final List commands,
- final boolean isRooted,
- final boolean isNeedResultMsg) {
- return execCmd(commands == null ? null : commands.toArray(new String[]{}),
- isRooted,
- isNeedResultMsg);
- }
-
- /**
- * Execute the command.
- *
- * @param commands The commands.
- * @param isRooted True to use root, false otherwise.
- * @param isNeedResultMsg True to return the message of result, false otherwise.
- * @return the single {@link CommandResult} instance
- */
- public static CommandResult execCmd(final String[] commands,
- final boolean isRooted,
- final boolean isNeedResultMsg) {
- int result = -1;
- if (commands == null || commands.length == 0) {
- return new CommandResult(result, "", "");
- }
- Process process = null;
- BufferedReader successResult = null;
- BufferedReader errorResult = null;
- StringBuilder successMsg = null;
- StringBuilder errorMsg = null;
- DataOutputStream os = null;
- try {
- process = Runtime.getRuntime().exec(isRooted ? "su" : "sh");
- os = new DataOutputStream(process.getOutputStream());
- for (String command : commands) {
- if (command == null) continue;
- os.write(command.getBytes());
- os.writeBytes(LINE_SEP);
- os.flush();
- }
- os.writeBytes("exit" + LINE_SEP);
- os.flush();
- result = process.waitFor();
- if (isNeedResultMsg) {
- successMsg = new StringBuilder();
- errorMsg = new StringBuilder();
- successResult = new BufferedReader(
- new InputStreamReader(process.getInputStream(), "UTF-8")
- );
- errorResult = new BufferedReader(
- new InputStreamReader(process.getErrorStream(), "UTF-8")
- );
- String line;
- if ((line = successResult.readLine()) != null) {
- successMsg.append(line);
- while ((line = successResult.readLine()) != null) {
- successMsg.append(LINE_SEP).append(line);
- }
- }
- if ((line = errorResult.readLine()) != null) {
- errorMsg.append(line);
- while ((line = errorResult.readLine()) != null) {
- errorMsg.append(LINE_SEP).append(line);
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- if (os != null) {
- os.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- try {
- if (successResult != null) {
- successResult.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- try {
- if (errorResult != null) {
- errorResult.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- if (process != null) {
- process.destroy();
- }
- }
- return new CommandResult(
- result,
- successMsg == null ? "" : successMsg.toString(),
- errorMsg == null ? "" : errorMsg.toString()
- );
- }
-
- /**
- * The result of command.
- */
- public static class CommandResult {
- public int result;
- public String successMsg;
- public String errorMsg;
-
- public CommandResult(final int result, final String successMsg, final String errorMsg) {
- this.result = result;
- this.successMsg = successMsg;
- this.errorMsg = errorMsg;
- }
-
- @Override
- public String toString() {
- return "result: " + result + "\n" +
- "successMsg: " + successMsg + "\n" +
- "errorMsg: " + errorMsg;
- }
- }
-}
diff --git a/buildSrc/src/main/groovy/TaskDurationUtils.groovy b/buildSrc/src/main/groovy/TaskDurationUtils.groovy
index 9ff2722345..6aacfcf30f 100644
--- a/buildSrc/src/main/groovy/TaskDurationUtils.groovy
+++ b/buildSrc/src/main/groovy/TaskDurationUtils.groovy
@@ -38,6 +38,11 @@ class TaskDurationUtils {
}
})
grd.addBuildListener(new BuildListener() {
+ @Override
+ void beforeSettings(Settings settings) {
+ super.beforeSettings(settings)
+ }
+
@Override
void buildStarted(Gradle gradle) {}
diff --git a/config.json b/config.json
deleted file mode 100644
index aa55557a6a..0000000000
--- a/config.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "appConfigDesc": "appConfig 配置的是可以跑 app 的模块,git 提交务必只包含 launcher",
- "appConfig": ["launcher"],
- "pkgConfigDesc": "pkgConfig 配置的是要依赖的功能包,为空则依赖全部,git 提交务必为空",
- "pkgConfig": [],
- "proConfigDesc": "proConfig 配置的是使用本地还是仓库,优先级低于 appConfig 和 pkgConfig",
- "proConfig": [
- {"isApply": true, "useLocal": true, "localPath": ":plugin:api-gradle-plugin"},
- {"isApply": true, "useLocal": true, "localPath": ":plugin:bus-gradle-plugin"},
- {"isApply": true, "useLocal": false, "localPath": ":plugin:lib:base-transform", "remotePath": "com.blankj:base-transform:1.0"},
- {"isApply": true, "useLocal": true, "localPath": ":feature:mock"},
- {"isApply": true, "useLocal": true, "localPath": ":feature:launcher:app"},
- {"isApply": true, "useLocal": true, "localPath": ":feature:main:app"},
- {"isApply": true, "useLocal": true, "localPath": ":feature:main:pkg"},
- {"isApply": true, "useLocal": true, "localPath": ":feature:subutil:app"},
- {"isApply": true, "useLocal": true, "localPath": ":feature:subutil:pkg"},
- {"isApply": true, "useLocal": true, "localPath": ":feature:subutil:export"},
- {"isApply": true, "useLocal": true, "localPath": ":feature:utilcode:app"},
- {"isApply": true, "useLocal": true, "localPath": ":feature:utilcode:pkg"},
- {"isApply": true, "useLocal": true, "localPath": ":feature:utilcode:export", "remotePath": "com.blankj:utilcode-export:1.1"},
- {"isApply": true, "useLocal": true, "localPath": ":lib:base"},
- {"isApply": true, "useLocal": true, "localPath": ":lib:common"},
- {"isApply": true, "useLocal": true, "localPath": ":lib:subutil"},
- {"isApply": true, "useLocal": true, "localPath": ":lib:utilcode", "remotePath": "com.blankj:utilcode:$versionName"},
- {"isApply": true, "useLocal": true, "localPath": ":lib:utildebug"},
- {"isApply": true, "useLocal": true, "localPath": ":lib:utildebug-no-op"}
- ]
-}
diff --git a/config/flavor.gradle b/config/flavor.gradle
new file mode 100644
index 0000000000..25c1801983
--- /dev/null
+++ b/config/flavor.gradle
@@ -0,0 +1,22 @@
+android {
+ flavorDimensions "env"
+ productFlavors {
+ dev {
+ dimension "env"
+ }
+
+ production {
+ dimension "env"
+ }
+ }
+
+ variantFilter { variant ->
+ def flavorNames = variant.flavors*.name
+ def buildTypeName = variant.buildType.name
+
+ // production 包不允许 debug 构建
+ if (flavorNames.contains("production") && buildTypeName.contains("debug")) {
+ variant.setIgnore(true)
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/publish.gradle b/config/publish.gradle
new file mode 100644
index 0000000000..7608215123
--- /dev/null
+++ b/config/publish.gradle
@@ -0,0 +1,226 @@
+/*
+ 1. add
+ signing.keyId=xx
+ signing.password=xx
+ signing.secretKeyRingFile=/Users/xx/secring.gpg
+ ossrhUsername=xx
+ ossrhPassword=xx
+ in root local.properties
+
+ 2. copy the file to the directory of gradle, and apply the file in the module
+ ext {
+ groupId = Config.modules.lib_utilcode.groupId
+ artifactId = Config.modules.lib_utilcode.artifactId
+ version = Config.modules.lib_utilcode.version
+ website = "https://github.com/Blankj/AndroidUtilCode"
+}
+ apply from: "${rootDir.path}/config/publish.gradle"
+
+ 3. execute following command to publish
+ ./gradlew :xxmodule:publish2Local -> upload to mavenLocal
+ ./gradlew :xxmodule:publish2Remote -> upload to mavenCentral
+*/
+
+apply plugin: 'maven-publish'
+apply plugin: 'signing'
+
+ext.multiPublishMode = true
+
+File localPropertiesFile = project.rootProject.file("local.properties");
+if (!localPropertiesFile.exists()) {
+ return
+}
+
+Properties properties = new Properties()
+properties.load(new FileInputStream(localPropertiesFile))
+properties.each { name, value -> ext[name] = value }
+
+afterEvaluate {
+ def ext = project.ext
+ publishing {
+ publications {
+ release(MavenPublication) {
+ groupId ext.groupId
+ artifactId ext.artifactId
+ version ext.version
+
+ if (isAndroidEnv(project)) {
+ if (project.ext.multiPublishMode) {
+ artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")
+ artifact sourcesJar
+ } else {
+ from project.components.release
+ }
+ } else {
+ from project.components.java
+ }
+
+ pom {
+ name = ext.artifactId
+ description = ext.artifactId
+ url = ext.website
+
+ licenses {
+ license {
+ name = 'The Apache Software License, Version 2.0'
+ url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+ }
+ }
+ developers {
+ developer {
+ id = ext.ossrhUsername
+ name = ext.ossrhUsername
+ }
+ }
+ scm {
+ url = ext.website
+ connection = ext.website
+ developerConnection = ext.website + ".git"
+ }
+
+ if (project.ext.multiPublishMode) {
+ withXml {
+ def dependenciesNode = asNode().getAt('dependencies')[0] ?:
+ asNode().appendNode('dependencies')
+
+ configurations.api.getDependencies().each {
+ dep -> addDependency(project, dependenciesNode, dep, "compile")
+ }
+ configurations.implementation.getDependencies().each {
+ dep -> addDependency(project, dependenciesNode, dep, "runtime")
+ }
+ }
+ }
+ }
+ }
+ }
+
+ repositories {
+ maven {
+ // s01 is newest
+ def releasesUrl = "https://s01.oss.sonatype.org/content/repositories/releases/"
+ def snapshotUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
+ url = version.toUpperCase().endsWith('SNAPSHOT') ? snapshotUrl : releasesUrl
+
+ credentials {
+ username ossrhUsername
+ password ossrhPassword
+ }
+ }
+ }
+ }
+
+ signing {
+ sign publishing.publications
+ }
+}
+
+private void addDependency(Project project, def dependenciesNode, Dependency dep, String scope) {
+ if (dep.group == null || dep.version == null || dep.name == null || dep.name == "unspecified") {
+ return
+ }
+
+ final dependencyNode = dependenciesNode.appendNode('dependency')
+ dependencyNode.appendNode('scope', scope)
+
+ if (dep.version == 'unspecified') {
+ // 检测 module 中的 dependencies 是否有源码依赖
+ // 如果是源码依赖,而且没有在 config 中配置 remotePath,
+ // 那么发布到仓库,其他地方依赖该库时会找不到源码的那个库
+ println "publish -> module(unspecified) <${dep.group}:${dep.name}:${dep.version}>"
+ if (project.ext.groupId || project.ext.version) {
+ throw new GradleException("The module of <" + dep.name + "> should set groupId & version.")
+ }
+ // 源码依赖,但配置了 remotePath,让 pom 中写入 remotePath
+ println("publish -> module(wrapped) <${project.ext.groupId}:${name}:${project.ext.version}>")
+
+ dependencyNode.appendNode('groupId', project.ext.pomGroupID)
+ dependencyNode.appendNode('artifactId', dep.name)
+ dependencyNode.appendNode('version', project.ext.pomVersion)
+ } else {
+ dependencyNode.appendNode('groupId', dep.group)
+ dependencyNode.appendNode('artifactId', dep.name)
+ dependencyNode.appendNode('version', dep.version)
+ println("publish -> library <${dep.group}:${dep.name}:${dep.version}>")
+ }
+
+ if (!dep.transitive) {
+ // In case of non transitive dependency,
+ // all its dependencies should be force excluded from them POM file
+ final exclusionNode = dependencyNode.appendNode('exclusions').appendNode('exclusion')
+ exclusionNode.appendNode('groupId', '*')
+ exclusionNode.appendNode('artifactId', '*')
+ } else if (!dep.properties.excludeRules.empty) {
+ // For transitive with exclusions, all exclude rules should be added to the POM file
+ final exclusions = dependencyNode.appendNode('exclusions')
+ dep.properties.excludeRules.each { ExcludeRule rule ->
+ final exclusionNode = exclusions.appendNode('exclusion')
+ exclusionNode.appendNode('groupId', rule.group ?: '*')
+ exclusionNode.appendNode('artifactId', rule.module ?: '*')
+ }
+ }
+}
+
+if (isAndroidEnv(project)) {
+ // This generates sources.jar
+ task sourcesJar(type: Jar) {
+ classifier = 'sources'
+ from android.sourceSets.main.java.source
+ }
+
+ task javadoc(type: Javadoc) {
+ source = android.sourceSets.main.java.source
+ classpath += configurations.compile
+ classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
+ }
+
+ task javadocJar(type: Jar, dependsOn: javadoc) {
+ classifier = 'javadoc'
+ from javadoc.destinationDir
+ }
+} else {
+ task sourcesJar(type: Jar, dependsOn: classes) {
+ classifier = 'sources'
+ from sourceSets.main.allSource
+ }
+
+ task javadocJar(type: Jar, dependsOn: javadoc) {
+ classifier = 'javadoc'
+ from javadoc.destinationDir
+ }
+}
+
+if (project.hasProperty("kotlin")) {
+ // Disable creating javadocs
+ project.tasks.withType(Javadoc) {
+ enabled = false
+ }
+}
+
+javadoc {
+ options {
+ encoding "UTF-8"
+ charSet 'UTF-8'
+ author true
+ version project.ext.version
+ links "http://docs.oracle.com/javase/7/docs/api"
+ title "${project.ext.artifactId} ${project.ext.version}"
+ }
+}
+
+artifacts {
+ archives javadocJar
+ archives sourcesJar
+}
+
+static def isAndroidEnv(Project project) {
+ return project.getPlugins().hasPlugin('com.android.application') || project.getPlugins().hasPlugin('com.android.library')
+}
+
+task publish2Local(type: GradleBuild) {
+ tasks = ['assemble', 'publishReleasePublicationToMavenLocal']
+}
+
+task publish2Remote(type: GradleBuild) {
+ tasks = ['assemble', 'publishReleasePublicationToMavenRepository']
+}
\ No newline at end of file
diff --git a/feature/launcher/app/build.gradle b/feature/launcher/app/build.gradle
index 408db62a67..8f2b6d205d 100644
--- a/feature/launcher/app/build.gradle
+++ b/feature/launcher/app/build.gradle
@@ -1,5 +1,5 @@
apply plugin: 'kotlin-kapt'
dependencies {
- kapt Config.depConfig.eventbus_processor.dep
+ kapt Config.libs.eventbus_processor.path
}
\ No newline at end of file
diff --git a/feature/launcher/app/src/main/AndroidManifest.xml b/feature/launcher/app/src/main/AndroidManifest.xml
index 19f6313965..4f033c06a6 100644
--- a/feature/launcher/app/src/main/AndroidManifest.xml
+++ b/feature/launcher/app/src/main/AndroidManifest.xml
@@ -7,6 +7,7 @@
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
+ android:supportsRtl="true"
android:theme="@style/AppTheme">
>(
CommonItemClick(R.string.core_util, true) {
- ApiUtils.getApi(UtilCodeApi::class.java).startUtilCodeActivity(this)
+ ApiUtils.getApi(UtilCodeApi::class.java)?.startUtilCodeActivity(this)
},
CommonItemClick(R.string.sub_util, true) {
- ApiUtils.getApi(SubUtilApi::class.java).startSubUtilActivity(this)
+ ApiUtils.getApi(SubUtilApi::class.java)?.startSubUtilActivity(this)
}
))
diff --git a/feature/main/pkg/src/main/res/layout/activity_main.xml b/feature/main/pkg/src/main/res/layout/activity_main.xml
index a78e6dab8b..3a33dd0f8e 100644
--- a/feature/main/pkg/src/main/res/layout/activity_main.xml
+++ b/feature/main/pkg/src/main/res/layout/activity_main.xml
@@ -1,16 +1,16 @@
-
-
-
-
-
-
+
+
-
-
+
diff --git a/feature/subutil/pkg/src/main/res/values/strings.xml b/feature/subutil/pkg/src/main/res/values/strings.xml
index 4654e85f06..e758c294a0 100644
--- a/feature/subutil/pkg/src/main/res/values/strings.xml
+++ b/feature/subutil/pkg/src/main/res/values/strings.xml
@@ -24,4 +24,6 @@
Reboot To Bootloader
Send SMS Silent
Mobile Data Enabled
+
+
\ No newline at end of file
diff --git a/feature/utilcode/export/build.gradle b/feature/utilcode/export/build.gradle
index cecc254461..30e59272ee 100644
--- a/feature/utilcode/export/build.gradle
+++ b/feature/utilcode/export/build.gradle
@@ -1,10 +1,8 @@
-apply from: "${rootDir.path}/gradle/publish.gradle"
-publish {
- def depConfig = Config.depConfig.feature_utilcode_export
- name = "UtilCodeExport"
- groupId = depConfig.groupId
- artifactId = depConfig.artifactId
- version = depConfig.version
- website = "https://github.com/Blankj/UtilCodeExport"
+ext {
+ groupId = Config.modules.feature_utilcode_export.groupId
+ artifactId = Config.modules.feature_utilcode_export.artifactId
+ version = Config.modules.feature_utilcode_export.version
+ website = "https://github.com/Blankj/AndroidUtilCode"
}
+//apply from: "${rootDir.path}/config/publish.gradle"
//./gradlew :feature_utilcode_export:mavenLocal // 上传到本地 mavenLocal
\ No newline at end of file
diff --git a/feature/utilcode/pkg/src/main/AndroidManifest.xml b/feature/utilcode/pkg/src/main/AndroidManifest.xml
index f77ad3d953..8da0667a23 100644
--- a/feature/utilcode/pkg/src/main/AndroidManifest.xml
+++ b/feature/utilcode/pkg/src/main/AndroidManifest.xml
@@ -18,6 +18,7 @@
+
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt
index 63d2ac5bd8..97023b94c2 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt
@@ -4,8 +4,8 @@ import android.content.Context
import android.content.Intent
import android.graphics.drawable.BitmapDrawable
import android.os.Bundle
-import android.support.v4.app.ActivityOptionsCompat
import android.widget.ImageView
+import androidx.core.app.ActivityOptionsCompat
import com.blankj.base.rv.ItemViewHolder
import com.blankj.common.activity.CommonActivity
import com.blankj.common.item.CommonItem
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/SubActivityActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/SubActivityActivity.kt
index 9c972d6234..3505709cd2 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/SubActivityActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/SubActivityActivity.kt
@@ -3,7 +3,7 @@ package com.blankj.utilcode.pkg.feature.activity
import android.app.Activity
import android.content.Intent
import android.os.Bundle
-import android.support.v4.app.ActivityCompat
+import androidx.core.app.ActivityCompat
import android.view.View
import com.blankj.common.activity.CommonActivity
import com.blankj.utilcode.pkg.R
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/api/ApiActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/api/ApiActivity.kt
index 0857ceaeac..8e11495b09 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/api/ApiActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/api/ApiActivity.kt
@@ -35,10 +35,10 @@ class ApiActivity : CommonActivity() {
override fun bindItems(): MutableList> {
return CollectionUtils.newArrayList(
CommonItemClick(R.string.api_invoke_with_params) {
- ApiUtils.getApi(OtherModuleApi::class.java).invokeWithParams(OtherModuleApi.ApiBean("params"))
+ ApiUtils.getApi(OtherModuleApi::class.java)?.invokeWithParams(OtherModuleApi.ApiBean("params"))
},
CommonItemClick(R.string.api_invoke_with_return_value) {
- ToastUtils.showShort(ApiUtils.getApi(OtherModuleApi::class.java).invokeWithReturnValue().name)
+ ToastUtils.showShort(ApiUtils.getApi(OtherModuleApi::class.java)?.invokeWithReturnValue()?.name)
}
);
}
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/app/AppActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/app/AppActivity.kt
index 5499f78eb7..21eb351146 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/app/AppActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/app/AppActivity.kt
@@ -54,7 +54,10 @@ class AppActivity : CommonActivity(), Utils.OnAppStatusChangedListener {
override fun bindItems(): MutableList> {
return CollectionUtils.newArrayList(
- CommonItemSwitch("registerAppStatusChangedListener", { isRegisterAppStatusChangedListener }, {
+ CommonItemSwitch(
+ "registerAppStatusChangedListener",
+ { isRegisterAppStatusChangedListener },
+ {
isRegisterAppStatusChangedListener = it
if (it) {
AppUtils.registerAppStatusChangedListener(this)
@@ -62,55 +65,63 @@ class AppActivity : CommonActivity(), Utils.OnAppStatusChangedListener {
AppUtils.unregisterAppStatusChangedListener(this)
}
}),
- CommonItemTitle("isAppRoot", AppUtils.isAppRoot().toString()),
- CommonItemTitle("isAppDebug", AppUtils.isAppDebug().toString()),
- CommonItemTitle("isAppSystem", AppUtils.isAppSystem().toString()),
- CommonItemTitle("isAppForeground", AppUtils.isAppForeground(AppUtils.getAppPackageName()).toString()),
- CommonItemTitle("isAppRunning", AppUtils.isAppRunning(AppUtils.getAppPackageName()).toString()),
- CommonItemImage("getAppIcon") {
- it.setImageDrawable(AppUtils.getAppIcon())
- },
- CommonItemTitle("getAppPackageName", AppUtils.getAppPackageName()),
- CommonItemTitle("getAppName", AppUtils.getAppName()),
- CommonItemTitle("getAppPath", AppUtils.getAppPath()),
- CommonItemTitle("getAppVersionName", AppUtils.getAppVersionName()),
- CommonItemTitle("getAppVersionCode", AppUtils.getAppVersionCode().toString()),
- CommonItemTitle("getAppSignatureSHA1", AppUtils.getAppSignatureSHA1()),
- CommonItemTitle("getAppSignatureSHA256", AppUtils.getAppSignatureSHA256()),
- CommonItemTitle("getAppSignatureMD5", AppUtils.getAppSignatureMD5()),
- CommonItemTitle("getAppUid", AppUtils.getAppUid().toString()),
- CommonItemTitle("getApkInfo", AppUtils.getApkInfo(AppUtils.getAppPath()).toString()),
-
- CommonItemClick(R.string.app_install) {
- if (AppUtils.isAppInstalled(Config.TEST_PKG)) {
- ToastUtils.showShort(R.string.app_install_tips)
+ CommonItemTitle("isAppRoot", AppUtils.isAppRoot().toString()),
+ CommonItemTitle("isAppDebug", AppUtils.isAppDebug().toString()),
+ CommonItemTitle("isAppSystem", AppUtils.isAppSystem().toString()),
+ CommonItemTitle(
+ "isAppForeground",
+ AppUtils.isAppForeground(AppUtils.getAppPackageName()).toString()
+ ),
+ CommonItemTitle(
+ "isAppRunning",
+ AppUtils.isAppRunning(AppUtils.getAppPackageName()).toString()
+ ),
+ CommonItemImage("getAppIcon") {
+ it.setImageDrawable(AppUtils.getAppIcon())
+ },
+ CommonItemTitle("getAppPackageName", AppUtils.getAppPackageName()),
+ CommonItemTitle("getAppName", AppUtils.getAppName()),
+ CommonItemTitle("getAppPath", AppUtils.getAppPath()),
+ CommonItemTitle("getAppVersionName", AppUtils.getAppVersionName()),
+ CommonItemTitle("getAppVersionCode", AppUtils.getAppVersionCode().toString()),
+ CommonItemTitle("getAppMinSdkVersion", AppUtils.getAppMinSdkVersion().toString()),
+ CommonItemTitle("getAppTargetSdkVersion", AppUtils.getAppTargetSdkVersion().toString()),
+ CommonItemTitle("getAppSignaturesSHA1", AppUtils.getAppSignaturesSHA1().toString()),
+ CommonItemTitle("getAppSignaturesSHA256", AppUtils.getAppSignaturesSHA256().toString()),
+ CommonItemTitle("getAppSignaturesMD5", AppUtils.getAppSignaturesMD5().toString()),
+ CommonItemTitle("getAppUid", AppUtils.getAppUid().toString()),
+ CommonItemTitle("getApkInfo", AppUtils.getApkInfo(AppUtils.getAppPath()).toString()),
+
+ CommonItemClick(R.string.app_install) {
+ if (AppUtils.isAppInstalled(Config.TEST_PKG)) {
+ ToastUtils.showShort(R.string.app_install_tips)
+ } else {
+ if (!FileUtils.isFileExists(Config.TEST_APK_PATH)) {
+ ReleaseInstallApkTask(listener).execute()
} else {
- if (!FileUtils.isFileExists(Config.TEST_APK_PATH)) {
- ReleaseInstallApkTask(listener).execute()
- } else {
- listener.onReleased()
- }
+ listener.onReleased()
}
- },
- CommonItemClick(R.string.app_uninstall) {
- if (AppUtils.isAppInstalled(Config.TEST_PKG)) {
- AppUtils.uninstallApp(Config.TEST_PKG)
- } else {
- ToastUtils.showShort(R.string.app_uninstall_tips)
- }
- },
- CommonItemClick(R.string.app_launch) {
- AppUtils.launchApp(this.packageName)
- },
- CommonItemClick(R.string.app_relaunch) {
- AppUtils.relaunchApp()
- },
- CommonItemClick(R.string.app_launch_details_settings, true) {
- AppUtils.launchAppDetailsSettings()
- },
- CommonItemClick(R.string.app_exit) {
- AppUtils.exitApp()
}
+ },
+ CommonItemClick(R.string.app_uninstall) {
+ if (AppUtils.isAppInstalled(Config.TEST_PKG)) {
+ AppUtils.uninstallApp(Config.TEST_PKG)
+ } else {
+ ToastUtils.showShort(R.string.app_uninstall_tips)
+ }
+ },
+ CommonItemClick(R.string.app_launch) {
+ AppUtils.launchApp(this.packageName)
+ },
+ CommonItemClick(R.string.app_relaunch) {
+ AppUtils.relaunchApp()
+ },
+ CommonItemClick(R.string.app_launch_details_settings, true) {
+ AppUtils.launchAppDetailsSettings()
+ },
+ CommonItemClick(R.string.app_exit) {
+ AppUtils.exitApp()
+ }
)
}
@@ -130,7 +141,8 @@ class AppActivity : CommonActivity(), Utils.OnAppStatusChangedListener {
}
}
-class ReleaseInstallApkTask(private val mListener: OnReleasedListener) : ThreadUtils.SimpleTask() {
+class ReleaseInstallApkTask(private val mListener: OnReleasedListener) :
+ ThreadUtils.SimpleTask() {
override fun doInBackground() {
ResourceUtils.copyFileFromAssets("test_install", Config.TEST_APK_PATH)
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/nav/BarNavActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/nav/BarNavActivity.kt
index 1b3032974f..48a738ecd7 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/nav/BarNavActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/nav/BarNavActivity.kt
@@ -12,7 +12,6 @@ import com.blankj.utilcode.pkg.R
import com.blankj.utilcode.util.BarUtils
import com.blankj.utilcode.util.CollectionUtils
import com.blankj.utilcode.util.ColorUtils
-import com.blankj.utilcode.util.Utils
/**
* ```
@@ -41,24 +40,43 @@ class BarNavActivity : CommonActivity() {
add(CommonItemTitle("isSupportNavBar", BarUtils.isSupportNavBar().toString()))
if (BarUtils.isSupportNavBar()) {
add(CommonItemSwitch(
- R.string.bar_nav_visibility,
- { BarUtils.isNavBarVisible(this@BarNavActivity) },
- { BarUtils.setNavBarVisibility(this@BarNavActivity, it) }
+ R.string.bar_nav_visibility,
+ { BarUtils.isNavBarVisible(this@BarNavActivity) },
+ { BarUtils.setNavBarVisibility(this@BarNavActivity, it) }
))
add(CommonItemSwitch(
- R.string.bar_nav_light_mode,
- { BarUtils.isNavBarLightMode(this@BarNavActivity) },
- { BarUtils.setNavBarLightMode(this@BarNavActivity, it) }
+ R.string.bar_nav_light_mode,
+ { BarUtils.isNavBarLightMode(this@BarNavActivity) },
+ { BarUtils.setNavBarLightMode(this@BarNavActivity, it) }
))
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- add(CommonItemClick("getNavBarColor: ${ColorUtils.int2ArgbString(BarUtils.getNavBarColor(this@BarNavActivity))}").setOnItemClickListener() { _, item, _ ->
- BarUtils.setNavBarColor(this@BarNavActivity, ColorUtils.getRandomColor())
- itemsView.updateItems(bindItems())
- item.title = "getNavBarColor: ${ColorUtils.int2ArgbString(BarUtils.getNavBarColor(this@BarNavActivity))}"
- })
+ add(
+ CommonItemClick(
+ "getNavBarColor: ${
+ ColorUtils.int2ArgbString(
+ BarUtils.getNavBarColor(
+ this@BarNavActivity
+ )
+ )
+ }"
+ ).setOnItemClickListener() { _, item, _ ->
+ BarUtils.setNavBarColor(
+ this@BarNavActivity,
+ ColorUtils.getRandomColor()
+ )
+ itemsView.updateItems(bindItems())
+ item.title = "getNavBarColor: ${
+ ColorUtils.int2ArgbString(
+ BarUtils.getNavBarColor(this@BarNavActivity)
+ )
+ }"
+ })
}
+ add(CommonItemClick("transparentNavBar").setOnItemClickListener() { _, item, _ ->
+ BarUtils.transparentNavBar(this@BarNavActivity)
+ })
}
}
}
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/status/fragment/BarStatusFragmentActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/status/fragment/BarStatusFragmentActivity.kt
index d504987c93..6df145b5be 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/status/fragment/BarStatusFragmentActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/status/fragment/BarStatusFragmentActivity.kt
@@ -3,13 +3,13 @@ package com.blankj.utilcode.pkg.feature.bar.status.fragment
import android.content.Context
import android.content.Intent
import android.os.Bundle
-import android.support.design.widget.BottomNavigationView
-import android.support.v4.app.Fragment
-import android.support.v4.app.FragmentPagerAdapter
-import android.support.v4.view.ViewPager
import android.view.View
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentPagerAdapter
+import androidx.viewpager.widget.ViewPager
import com.blankj.common.activity.CommonActivity
import com.blankj.utilcode.pkg.R
+import com.google.android.material.bottomnavigation.BottomNavigationView
import kotlinx.android.synthetic.main.bar_status_fragment_activity.*
import java.util.*
@@ -37,7 +37,7 @@ class BarStatusFragmentActivity : CommonActivity() {
R.id.barStatusFragmentNavigationCustom
)
- private val mFragmentList = ArrayList()
+ private val mFragmentList = ArrayList()
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener l@{ item ->
when (item.itemId) {
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bus/BusActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bus/BusActivity.kt
index 4343463169..9bd7c870d0 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bus/BusActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bus/BusActivity.kt
@@ -2,7 +2,7 @@ package com.blankj.utilcode.pkg.feature.bus
import android.content.Context
import android.content.Intent
-import android.support.annotation.Keep
+import androidx.annotation.Keep
import com.blankj.common.activity.CommonActivity
import com.blankj.common.item.CommonItem
import com.blankj.common.item.CommonItemClick
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/clean/CleanActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/clean/CleanActivity.kt
index 7185cc33cb..f0b8620eca 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/clean/CleanActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/clean/CleanActivity.kt
@@ -3,8 +3,6 @@ package com.blankj.utilcode.pkg.feature.clean
import android.content.Context
import android.content.Intent
import com.blankj.common.activity.CommonActivity
-import com.blankj.common.activity.CommonActivityItemsView
-import com.blankj.common.activity.CommonActivityTitleView
import com.blankj.common.item.CommonItem
import com.blankj.common.item.CommonItemClick
import com.blankj.utilcode.pkg.R
@@ -54,6 +52,11 @@ class CleanActivity : CommonActivity() {
showSnackbar(CleanUtils.cleanExternalCache(), externalCacheDir?.absolutePath)
})
}
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
+ add(CommonItemClick(R.string.clean_app_user_data) {
+ CleanUtils.cleanAppUserData()
+ })
+ }
}
}
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/click/ClickActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/click/ClickActivity.kt
index 788ee59061..7a6a112c15 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/click/ClickActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/click/ClickActivity.kt
@@ -2,9 +2,9 @@ package com.blankj.utilcode.pkg.feature.click
import android.content.Context
import android.content.Intent
-import android.support.annotation.StringRes
import android.view.View
import android.widget.TextView
+import androidx.annotation.StringRes
import com.blankj.base.rv.ItemViewHolder
import com.blankj.common.activity.CommonActivity
import com.blankj.common.item.CommonItem
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/device/DeviceActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/device/DeviceActivity.kt
index 1df423ded3..d70fe14e93 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/device/DeviceActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/device/DeviceActivity.kt
@@ -46,6 +46,9 @@ class DeviceActivity : CommonActivity() {
add(CommonItemTitle("getABIs", Arrays.asList(*DeviceUtils.getABIs()).toString()))
add(CommonItemTitle("isTablet", DeviceUtils.isTablet().toString()))
add(CommonItemTitle("isEmulator", DeviceUtils.isEmulator().toString()))
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
+ add(CommonItemTitle("isDevelopmentSettingsEnabled", DeviceUtils.isDevelopmentSettingsEnabled().toString()))
+ }
add(CommonItemTitle("getUniqueDeviceId", DeviceUtils.getUniqueDeviceId("util")))
add(CommonItemTitle("isSameDevice", DeviceUtils.isSameDevice(DeviceUtils.getUniqueDeviceId()).toString()))
}
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ChildFragment.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ChildFragment.kt
index c7c2e5fd0a..a4b1450de5 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ChildFragment.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ChildFragment.kt
@@ -1,8 +1,8 @@
package com.blankj.utilcode.pkg.feature.fragment
import android.os.Bundle
-import android.support.v4.app.FragmentManager
import android.view.View
+import androidx.fragment.app.FragmentManager
import com.blankj.common.fragment.CommonFragment
import com.blankj.common.item.CommonItem
import com.blankj.common.item.CommonItemClick
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt
index 3e57295596..e21eb521fb 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt
@@ -2,12 +2,11 @@ package com.blankj.utilcode.pkg.feature.fragment
import android.os.Build
import android.os.Bundle
-import android.support.annotation.RequiresApi
-import android.support.v4.app.Fragment
-import android.support.v4.app.FragmentManager
import android.transition.*
import android.view.View
import android.widget.ImageView
+import androidx.annotation.RequiresApi
+import androidx.fragment.app.FragmentManager
import com.blankj.base.rv.ItemViewHolder
import com.blankj.common.fragment.CommonFragment
import com.blankj.common.item.CommonItem
@@ -15,7 +14,6 @@ import com.blankj.common.item.CommonItemClick
import com.blankj.utilcode.pkg.R
import com.blankj.utilcode.pkg.helper.DialogHelper
import com.blankj.utilcode.util.*
-import kotlinx.android.synthetic.main.fragment_container.*
import java.util.*
/**
@@ -145,7 +143,7 @@ class ContainerFragment : CommonFragment(), FragmentUtils.OnBackClickListener {
}
}
- private fun addSharedElement(fragment: Fragment): Fragment {
+ private fun addSharedElement(fragment: androidx.fragment.app.Fragment): androidx.fragment.app.Fragment {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
fragment.sharedElementEnterTransition = DetailTransition()
fragment.enterTransition = Fade()
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt
index 99b6355629..5b337e48d5 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt
@@ -4,8 +4,8 @@ import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.os.PersistableBundle
-import android.support.design.widget.BottomNavigationView
-import android.support.v4.app.Fragment
+import com.google.android.material.bottomnavigation.BottomNavigationView
+import androidx.fragment.app.Fragment
import android.view.View
import com.blankj.common.activity.CommonActivity
import com.blankj.utilcode.pkg.R
@@ -29,7 +29,7 @@ class FragmentActivity : CommonActivity() {
}
}
- private val mFragments = arrayListOf()
+ private val mFragments = arrayListOf()
private var curIndex: Int = 0
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/keyboard/KeyboardActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/keyboard/KeyboardActivity.kt
index b94f66876f..5ed25ae4fe 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/keyboard/KeyboardActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/keyboard/KeyboardActivity.kt
@@ -10,8 +10,7 @@ import com.blankj.common.item.CommonItemClick
import com.blankj.common.item.CommonItemTitle
import com.blankj.utilcode.pkg.R
import com.blankj.utilcode.pkg.helper.DialogHelper
-import com.blankj.utilcode.util.CollectionUtils
-import com.blankj.utilcode.util.KeyboardUtils
+import com.blankj.utilcode.util.*
import kotlinx.android.synthetic.main.keyboard_activity.*
/**
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/language/LanguageActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/language/LanguageActivity.kt
index 0e14482b91..c928da21fa 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/language/LanguageActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/language/LanguageActivity.kt
@@ -60,6 +60,9 @@ class LanguageActivity : CommonActivity() {
CommonItemClick(R.string.language_apply_english) {
LanguageUtils.applyLanguage(Locale.ENGLISH, isRelaunchApp())
},
+ CommonItemClick(R.string.language_apply_arabic) {
+ LanguageUtils.applyLanguage(Locale("ar"), isRelaunchApp())
+ },
CommonItemClick(R.string.language_apply_system) {
LanguageUtils.applySystemLanguage(isRelaunchApp())
}
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpActivity.java b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpActivity.java
index 813431f6f8..7fff29f4a7 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpActivity.java
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpActivity.java
@@ -1,16 +1,15 @@
package com.blankj.utilcode.pkg.feature.mvp;
-import android.arch.lifecycle.ViewModel;
-import android.arch.lifecycle.ViewModelProvider;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
-import android.support.annotation.Nullable;
import android.view.View;
import com.blankj.common.activity.CommonActivity;
import com.blankj.utilcode.pkg.R;
+import androidx.annotation.Nullable;
+
/**
*
* author: blankj
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpModel.java b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpModel.java
index 8697f11c1d..e16b4f1934 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpModel.java
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpModel.java
@@ -12,7 +12,7 @@
* desc :
*
*/
-public class MvpModel extends BaseModel implements IMvp.Model {
+public class MvpModel extends BaseModel implements MvpMvp.Model {
private int index;
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/IMvp.java b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpMvp.java
similarity index 94%
rename from feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/IMvp.java
rename to feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpMvp.java
index 4e8edc023e..d0335ef203 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/IMvp.java
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpMvp.java
@@ -10,7 +10,7 @@
* desc :
*
*/
-public interface IMvp {
+public interface MvpMvp {
interface View {
void setLoadingVisible(boolean visible);
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpPresenter.java b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpPresenter.java
index 01990aa3af..fcb68bd3ed 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpPresenter.java
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpPresenter.java
@@ -13,7 +13,7 @@
*
*/
public class MvpPresenter extends BasePresenter
- implements IMvp.Presenter {
+ implements MvpMvp.Presenter {
@Override
public void onBindView() {
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpView.java b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpView.java
index 054cd7ade9..e916398e48 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpView.java
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpView.java
@@ -6,7 +6,6 @@
import com.blankj.base.mvp.BaseView;
import com.blankj.utilcode.pkg.R;
-import com.blankj.utilcode.pkg.feature.fragment.FragmentActivity;
import com.blankj.utilcode.util.ClickUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.SizeUtils;
@@ -22,7 +21,7 @@
*
*/
public class MvpView extends BaseView
- implements IMvp.View {
+ implements MvpMvp.View {
private TextView mvpTv;
private TextView mvpMeasureWidthTv;
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/network/NetworkActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/network/NetworkActivity.kt
index f0c9962b2d..452040376d 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/network/NetworkActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/network/NetworkActivity.kt
@@ -2,13 +2,17 @@ package com.blankj.utilcode.pkg.feature.network
import android.content.Context
import android.content.Intent
+import android.net.wifi.ScanResult
+import android.net.wifi.WifiManager
import android.os.Bundle
import android.view.View
import com.blankj.common.activity.CommonActivity
+import com.blankj.common.helper.PermissionHelper
import com.blankj.common.item.CommonItem
import com.blankj.common.item.CommonItemClick
import com.blankj.common.item.CommonItemSwitch
import com.blankj.common.item.CommonItemTitle
+import com.blankj.utilcode.constant.PermissionConstants
import com.blankj.utilcode.pkg.R
import com.blankj.utilcode.util.*
@@ -24,12 +28,24 @@ class NetworkActivity : CommonActivity(), NetworkUtils.OnNetworkStatusChangedLis
companion object {
fun start(context: Context) {
- val starter = Intent(context, NetworkActivity::class.java)
- context.startActivity(starter)
+ PermissionHelper.request(context, object : PermissionUtils.SimpleCallback {
+ override fun onGranted() {
+ val starter = Intent(context, NetworkActivity::class.java)
+ context.startActivity(starter)
+ }
+
+ override fun onDenied() {
+ }
+ }, PermissionConstants.LOCATION)
}
}
private lateinit var itemsTask: ThreadUtils.SimpleTask>>
+ private lateinit var wifiScanResultItem: CommonItemTitle
+ private val consumer = Utils.Consumer { t ->
+ wifiScanResultItem.setContent(scanResults2String(t.filterResults))
+ wifiScanResultItem.update()
+ }
override fun bindTitleRes(): Int {
return R.string.demo_network
@@ -51,6 +67,7 @@ class NetworkActivity : CommonActivity(), NetworkUtils.OnNetworkStatusChangedLis
override fun bindItems(): List> {
if (ThreadUtils.isMainThread()) return arrayListOf()
+ wifiScanResultItem = CommonItemTitle("getWifiScanResult", scanResults2String(NetworkUtils.getWifiScanResult().filterResults))
return CollectionUtils.newArrayList(
CommonItemTitle("isConnected", NetworkUtils.isConnected().toString()),
CommonItemTitle("getMobileDataEnabled", NetworkUtils.getMobileDataEnabled().toString()),
@@ -72,10 +89,19 @@ class NetworkActivity : CommonActivity(), NetworkUtils.OnNetworkStatusChangedLis
CommonItemTitle("isWifiAvailable", NetworkUtils.isWifiAvailable().toString()),
CommonItemTitle("isAvailable", NetworkUtils.isAvailable().toString()),
CommonItemTitle("getBaiduDomainAddress", NetworkUtils.getDomainAddress("baidu.com")),
+ wifiScanResultItem,
CommonItemSwitch(
R.string.network_wifi_enabled,
- { NetworkUtils.getWifiEnabled() },
+ {
+ val wifiEnabled = NetworkUtils.getWifiEnabled()
+ if (wifiEnabled) {
+ NetworkUtils.addOnWifiChangedConsumer(consumer)
+ } else {
+ NetworkUtils.removeOnWifiChangedConsumer(consumer)
+ }
+ wifiEnabled
+ },
{
NetworkUtils.setWifiEnabled(it)
ThreadUtils.executeByIo(getItemsTask())
@@ -112,5 +138,14 @@ class NetworkActivity : CommonActivity(), NetworkUtils.OnNetworkStatusChangedLis
super.onDestroy()
ThreadUtils.cancel(itemsTask)
NetworkUtils.unregisterNetworkStatusChangedListener(this)
+ NetworkUtils.removeOnWifiChangedConsumer(consumer)
+ }
+
+ private fun scanResults2String(results: List): String {
+ val sb: StringBuilder = StringBuilder()
+ for (result in results) {
+ sb.append(String.format("${result.SSID}, Level: ${WifiManager.calculateSignalLevel(result.level, 4)}\n"))
+ }
+ return sb.toString()
}
}
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/phone/PhoneActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/phone/PhoneActivity.kt
index cb453b3b89..c9b748cdfa 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/phone/PhoneActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/phone/PhoneActivity.kt
@@ -54,8 +54,8 @@ class PhoneActivity : CommonActivity() {
CommonItemTitle("getSimOperatorName", PhoneUtils.getSimOperatorName()),
CommonItemTitle("getSimOperatorByMnc", PhoneUtils.getSimOperatorByMnc()),
- CommonItemClick(R.string.phone_dial) { PhoneUtils.dial("10000") },
- CommonItemClick(R.string.phone_call) { PhoneUtils.call("10000") },
+ CommonItemClick(R.string.phone_dial) { PhoneUtils.dial("*10000#haha") },
+ CommonItemClick(R.string.phone_call) { PhoneUtils.call("*10000#haha") },
CommonItemClick(R.string.phone_send_sms) { PhoneUtils.sendSms("10000", "sendSms") }
)
}
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/reflect/TestPrivateStaticFinal.java b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/reflect/TestPrivateStaticFinal.java
index e62c518699..b7efb5f4d7 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/reflect/TestPrivateStaticFinal.java
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/reflect/TestPrivateStaticFinal.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.pkg.feature.reflect;
-import android.support.annotation.Keep;
+import androidx.annotation.Keep;
/**
*
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt
index 568caecff2..dcde367a5b 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt
@@ -3,10 +3,10 @@ package com.blankj.utilcode.pkg.feature.snackbar
import android.content.Context
import android.content.Intent
import android.graphics.Color
-import android.support.annotation.StringRes
import android.text.SpannableStringBuilder
import android.view.ViewGroup
import android.widget.TextView
+import androidx.annotation.StringRes
import com.blankj.common.activity.CommonActivity
import com.blankj.common.item.CommonItem
import com.blankj.common.item.CommonItemClick
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/span/SpanActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/span/SpanActivity.kt
index d43afd850f..84c9f868bb 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/span/SpanActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/span/SpanActivity.kt
@@ -5,7 +5,6 @@ import android.content.Context
import android.content.Intent
import android.graphics.*
import android.os.Bundle
-import android.support.annotation.ColorInt
import android.text.Layout
import android.text.SpannableStringBuilder
import android.text.TextPaint
@@ -14,6 +13,7 @@ import android.text.style.ClickableSpan
import android.text.style.UpdateAppearance
import android.view.View
import android.view.animation.LinearInterpolator
+import androidx.annotation.ColorInt
import com.blankj.common.activity.CommonActivity
import com.blankj.utilcode.pkg.R
import com.blankj.utilcode.util.SpanUtils
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/CustomToast.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/CustomToast.kt
index 384b1877ea..f0b6876ad4 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/CustomToast.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/CustomToast.kt
@@ -1,7 +1,7 @@
package com.blankj.utilcode.pkg.feature.toast
-import android.support.annotation.StringRes
import android.widget.TextView
+import androidx.annotation.StringRes
import com.blankj.utilcode.pkg.R
import com.blankj.utilcode.util.StringUtils
import com.blankj.utilcode.util.ToastUtils
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/ToastActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/ToastActivity.kt
index 5d55e3c754..f4267ad3a9 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/ToastActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/ToastActivity.kt
@@ -4,6 +4,7 @@ import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.view.Gravity
+import androidx.core.content.ContextCompat
import com.blankj.common.activity.CommonActivity
import com.blankj.common.item.CommonItem
import com.blankj.common.item.CommonItemClick
@@ -79,6 +80,9 @@ class ToastActivity : CommonActivity() {
CommonItemClick(R.string.toast_show_middle) {
ToastUtils.make().setGravity(Gravity.CENTER, 0, 0).show(R.string.toast_middle)
},
+ CommonItemClick(R.string.toast_show_top) {
+ ToastUtils.make().setGravity(Gravity.TOP or Gravity.CENTER_HORIZONTAL, 0, 0).show(R.string.toast_top)
+ },
CommonItemClick(R.string.toast_show_custom_view) {
Thread(Runnable { CustomToast.showLong(R.string.toast_custom_view) }).start()
},
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/vibrate/VibrateActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/vibrate/VibrateActivity.kt
index d2cd9bc147..5dc337bc5b 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/vibrate/VibrateActivity.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/vibrate/VibrateActivity.kt
@@ -32,11 +32,23 @@ class VibrateActivity : CommonActivity() {
override fun bindItems(): MutableList> {
return CollectionUtils.newArrayList(
- CommonItemClick(R.string.vibrate_1000ms) { VibrateUtils.vibrate(1000) },
+ CommonItemClick(R.string.vibrate_1000ms) {
+ VibrateUtils.vibrate(1000)
+ },
CommonItemClick(R.string.vibrate_custom) {
VibrateUtils.vibrate(longArrayOf(0, 1000, 1000, 2000, 2000, 1000), 1)
},
- CommonItemClick(R.string.vibrate_cancel) { VibrateUtils.cancel() }
+ CommonItemClick(R.string.vibrate_background) {
+ backHome()
+ mContentView.postDelayed({
+// VibrateUtils.vibrate(1000) -- can not vibrate in background
+ VibrateUtils.vibrateCompat(longArrayOf(0, 1000, 1000, 2000, 2000, 1000), 1)
+// VibrateUtils.vibrateCompat(1000)
+ }, 1000)
+ },
+ CommonItemClick(R.string.vibrate_cancel) {
+ VibrateUtils.cancel()
+ }
)
}
@@ -44,4 +56,11 @@ class VibrateActivity : CommonActivity() {
super.onDestroy()
VibrateUtils.cancel()
}
+
+ private fun backHome() {
+ val intent = Intent(Intent.ACTION_MAIN).apply {
+ addCategory(Intent.CATEGORY_HOME)
+ }
+ startActivity(intent)
+ }
}
diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/DialogHelper.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/DialogHelper.kt
index 6643ec7806..7d38fda3ca 100644
--- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/DialogHelper.kt
+++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/DialogHelper.kt
@@ -4,7 +4,6 @@ import android.content.Context
import android.content.DialogInterface
import android.graphics.Bitmap
import android.graphics.drawable.ColorDrawable
-import android.support.v4.app.FragmentActivity
import android.text.method.ScrollingMovementMethod
import android.view.Gravity
import android.view.View
@@ -13,6 +12,7 @@ import android.widget.Button
import android.widget.EditText
import android.widget.ImageView
import android.widget.TextView
+import androidx.fragment.app.FragmentActivity
import com.blankj.base.dialog.BaseDialogFragment
import com.blankj.base.dialog.DialogLayoutCallback
import com.blankj.utilcode.pkg.R
@@ -155,4 +155,4 @@ object DialogHelper {
override fun onDismiss(dialog: BaseDialogFragment) {}
}).show()
}
-}
+}
\ No newline at end of file
diff --git a/feature/utilcode/pkg/src/main/res/layout/activity_adaptscreen.xml b/feature/utilcode/pkg/src/main/res/layout/activity_adaptscreen.xml
new file mode 100644
index 0000000000..278fe8c2c6
--- /dev/null
+++ b/feature/utilcode/pkg/src/main/res/layout/activity_adaptscreen.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/feature/utilcode/pkg/src/main/res/layout/adaptscreen_close_activity.xml b/feature/utilcode/pkg/src/main/res/layout/adaptscreen_close_activity.xml
index 0214eb4806..2f8476a4a0 100644
--- a/feature/utilcode/pkg/src/main/res/layout/adaptscreen_close_activity.xml
+++ b/feature/utilcode/pkg/src/main/res/layout/adaptscreen_close_activity.xml
@@ -7,7 +7,7 @@
android:fillViewport="true"
tools:context=".feature.adaptScreen.AdaptCloseActivity">
-
@@ -42,6 +42,6 @@
android:textSize="30pt"
app:layout_constraintTop_toBottomOf="@id/adaptScreenCloseAdaptDpTv" />
-
+
\ No newline at end of file
diff --git a/feature/utilcode/pkg/src/main/res/layout/adaptscreen_height_activity.xml b/feature/utilcode/pkg/src/main/res/layout/adaptscreen_height_activity.xml
index 819d6bb99d..75fa87e8e5 100644
--- a/feature/utilcode/pkg/src/main/res/layout/adaptscreen_height_activity.xml
+++ b/feature/utilcode/pkg/src/main/res/layout/adaptscreen_height_activity.xml
@@ -6,7 +6,7 @@
android:layout_height="match_parent"
tools:context=".feature.adaptScreen.AdaptHeightActivity">
-
@@ -93,6 +93,6 @@
android:textSize="30pt" />
-
+
\ No newline at end of file
diff --git a/feature/utilcode/pkg/src/main/res/layout/adaptscreen_width_activity.xml b/feature/utilcode/pkg/src/main/res/layout/adaptscreen_width_activity.xml
index 9c5e953ecb..b6bfdb2c80 100644
--- a/feature/utilcode/pkg/src/main/res/layout/adaptscreen_width_activity.xml
+++ b/feature/utilcode/pkg/src/main/res/layout/adaptscreen_width_activity.xml
@@ -7,7 +7,7 @@
android:fillViewport="true"
tools:context=".feature.adaptScreen.AdaptWidthActivity">
-
@@ -148,6 +148,6 @@
-
+
\ No newline at end of file
diff --git a/feature/utilcode/pkg/src/main/res/layout/bar_status_fragment_activity.xml b/feature/utilcode/pkg/src/main/res/layout/bar_status_fragment_activity.xml
index 23dbb69305..16518fc22f 100644
--- a/feature/utilcode/pkg/src/main/res/layout/bar_status_fragment_activity.xml
+++ b/feature/utilcode/pkg/src/main/res/layout/bar_status_fragment_activity.xml
@@ -5,7 +5,7 @@
android:layout_height="match_parent"
android:orientation="vertical">
-
-
- Apply Simple Chinese
Apply American
Apply English
+ Apply Arabic
Apply System
\ No newline at end of file
diff --git a/feature/utilcode/pkg/src/main/res/values-zh-rCN/strings.xml b/feature/utilcode/pkg/src/main/res/values-zh-rCN/strings.xml
index 5cab96988f..e06759a6d0 100644
--- a/feature/utilcode/pkg/src/main/res/values-zh-rCN/strings.xml
+++ b/feature/utilcode/pkg/src/main/res/values-zh-rCN/strings.xml
@@ -6,6 +6,7 @@
设置简体中文
设置美语
设置英语
+ 设置阿拉伯语
设置系统语言
\ No newline at end of file
diff --git a/feature/utilcode/pkg/src/main/res/values/strings.xml b/feature/utilcode/pkg/src/main/res/values/strings.xml
index ed7e15412f..551f9adbaf 100644
--- a/feature/utilcode/pkg/src/main/res/values/strings.xml
+++ b/feature/utilcode/pkg/src/main/res/values/strings.xml
@@ -141,6 +141,7 @@
Clean Internal Databases
Clean Internal SP
Clean External Cache
+ cleanAppUserData
Click View Scale Default
@@ -233,6 +234,7 @@
Apply Simple Chinese
Apply American
Apply English
+ Apply Arabic
Apply System
@@ -341,6 +343,7 @@
Show Custom View
Custom View
Show Middle
+ Show Top
Cancel
Show Toast Dialog
Show Toast When Start Activity
@@ -351,6 +354,7 @@
Custom Bg
Spannable String
Middle
+ Top
Add Listener Id
@@ -362,5 +366,6 @@
Vibrate 1000ms
Vibrate Custom
+ Vibrate Background
Cancel
diff --git a/gradle.properties b/gradle.properties
index 63f495a02a..b9d5f2bcbf 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -13,10 +13,14 @@
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
#org.gradle.jvmargs=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
+
+android.enableJetifier=true
+android.useAndroidX=true
+
org.gradle.jvmargs=-Xmx8192m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -XX:-UseGCOverheadLimit -Dfile.encoding=UTF-8
org.gradle.daemon=true
#org.gradle.configureondemand=true
org.gradle.parallel=true
org.gradle.caching=true
-#-Dorg.gradle.debug=true --no-daemon
\ No newline at end of file
+#-Dorg.gradle.debug=true --no-daemon
diff --git a/gradle/publish.gradle b/gradle/publish.gradle
deleted file mode 100644
index 76bb5fea66..0000000000
--- a/gradle/publish.gradle
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- 1. must add the following classpath in root build.gradle
- classpath "com.github.dcendents:android-maven-gradle-plugin:2.1"
- classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4"
-
- 2. add bintrayUser, bintrayKey in root local.properties
-
- 3. copy the file to the directory of gradle, and apply the file in the module
- apply from: "${rootDir.path}/gradle/publish.gradle"
- publish {
- name = "UtilCode"
- groupId = "com.blankj"
- artifactId = "utilcode"
- version = "xx.xx"
- website = "https://github.com/Blankj/AndroidUtilCode"
- }
-
- 4. execute following command to publish
- ./gradlew bintrayUpload -> upload to bintray
- ./gradlew mavenLocal -> upload to local maven
-*/
-
-apply plugin: "com.github.dcendents.android-maven"
-apply plugin: "com.jfrog.bintray"
-
-extensions.create('publish', PublishExtension)
-
-afterEvaluate {
- def ext = project['publish'] as PublishExtension
- loadBintray(ext)
- configMaven(project, ext)
- configBintray(project, ext)
- configJavadoc(project, ext)
-}
-
-private void loadBintray(PublishExtension ext) {
- Properties properties = new Properties()
- File localPropertiesFile = project.rootProject.file("local.properties");
- if (localPropertiesFile.exists()) {
- properties.load(localPropertiesFile.newDataInputStream())
- ext.bintrayUser = properties.getProperty("bintrayUser")
- ext.bintrayKey = properties.getProperty("bintrayKey")
- }
-}
-
-def configMaven(Project project, PublishExtension ext) {
- project.group = ext.groupId
- project.version = ext.version
-
- project.install {
- repositories.mavenInstaller {
- configPom(pom, ext)
- }
- }
-
- project.tasks.create("mavenLocal", Upload) {
- group("publishing")
- configuration = project.configurations.archives
-
- repositories.mavenDeployer {
- repository(url: uri("${project.rootDir.path}/mavenLocal"))
- configPom(pom, ext)
- }
-
- doFirst {
- ext.check(false)
- }
- }
-
- project.tasks.findByName("bintrayUpload").doFirst {
- ext.check(true)
- }
-}
-
-def configPom(pom, PublishExtension ext) {
- pom.project {
- name ext.name
- groupId ext.groupId
- artifactId ext.artifactId
- version ext.version
- packaging isAndroid() ? "aar" : "jar"
- description ext.name
- url ext.website
-
- scm {
- url ext.website
- connection ext.website
- developerConnection ext.website + ".git"
- }
-
- licenses {
- license {
- name 'The Apache Software License, Version 2.0'
- url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
- }
- }
-
- developers {
- developer {
- id ext.bintrayUser
- name ext.bintrayUser
- }
- }
- }
-
- pom.whenConfigured {
- // 检测 module 中的 dependencies 是否有源码依赖
- // 如果是源码依赖,而且没有在 config 中配置 remotePath,那么发布到仓库,其他地方依赖该库时会找不到源码的那个库
- it.dependencies.findAll { dep -> dep.version == "unspecified" }.collect { dep ->
- DepConfig config = Config.depConfig.get(dep.artifactId)
- if (config == null || config.version == null) {
- // 源码依赖而且没有在 config 中配置 remotePath,直接报错
- System.err.println("The module of <" + dep.artifactId + "> should publish to maven first.")
- throw new RuntimeException()
- }
- dep.groupId = config.groupId
- dep.version = config.version
- // 源码依赖,但配置了 remotePath,让 pom 中写入 remotePath
- GLog.l("Please check <${dep.groupId}:${dep.artifactId}:${dep.version}> is published.")
- }
- }
-}
-
-def configBintray(Project project, PublishExtension ext) {
- project.bintray {
- user = ext.bintrayUser
- key = ext.bintrayKey
- configurations = ['archives']
- override = false
- publish = true
- pkg {
- repo = "maven"
- name = ext.name
- websiteUrl = ext.website
- vcsUrl = ext.website + '.git'
- licenses = ["Apache-2.0"]
- }
- }
-}
-
-private void configJavadoc(Project project, PublishExtension ext) {
- if (isAndroid()) {
- // This generates sources.jar
- task sourcesJar(type: Jar) {
- classifier = 'sources'
- from android.sourceSets.main.java.source
- }
-
- task javadoc(type: Javadoc) {
- source = android.sourceSets.main.java.source
- classpath += configurations.compile
- classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
- }
-
- task javadocJar(type: Jar, dependsOn: javadoc) {
- classifier = 'javadoc'
- from javadoc.destinationDir
- }
- } else {
- task sourcesJar(type: Jar, dependsOn: classes) {
- classifier = 'sources'
- from sourceSets.main.allSource
- }
-
- task javadocJar(type: Jar, dependsOn: javadoc) {
- classifier = 'javadoc'
- from javadoc.destinationDir
- }
- }
-
- if (project.hasProperty("kotlin")) {
- // Disable creating javadocs
- project.tasks.withType(Javadoc) {
- enabled = false
- }
- }
-
- javadoc {
- options {
- encoding "UTF-8"
- charSet 'UTF-8'
- author true
- version ext.version
- links "http://docs.oracle.com/javase/7/docs/api"
- title "${ext.name} ${ext.version}"
- }
- }
-
- artifacts {
- archives javadocJar
- archives sourcesJar
- }
-}
-
-def isAndroid() {
- return project.getPlugins().hasPlugin('com.android.application') ||
- project.getPlugins().hasPlugin('com.android.library')
-}
-
-class PublishExtension {
- String name
- String groupId
- String artifactId
- String version
- String website
-
- String bintrayUser
- String bintrayKey
-
- void check(boolean isBintray) {
- checkField(name, "name")
- checkField(groupId, "groupId")
- checkField(artifactId, "artifactId")
- checkField(version, "version")
- checkField(website, "website")
-
- if (isBintray) {
- if (isBintrayEmpty()) {
- throw new NullPointerException("U should set bintrayUser and bintrayKey in local.properties")
- }
- }
- }
-
- boolean isBintrayEmpty() {
- return isEmpty(bintrayUser) || isEmpty(bintrayKey)
- }
-
- static void checkField(String field, String fieldName) {
- if (isEmpty(field)) {
- throw new NullPointerException("$fieldName is empty!!")
- }
- }
-
- static boolean isEmpty(String str) {
- return str == null || str.length() == 0
- }
-}
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 13372aef5e..5c2d1cf016 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 e4718dff4d..1e0ae1a108 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-5.4.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
diff --git a/gradlew b/gradlew
index 9d82f78915..b0d6d0ab5d 100755
--- a/gradlew
+++ b/gradlew
@@ -1,4 +1,20 @@
-#!/usr/bin/env bash
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
##############################################################################
##
@@ -6,20 +22,38 @@
##
##############################################################################
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+# 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
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$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"
-warn ( ) {
+warn () {
echo "$*"
}
-die ( ) {
+die () {
echo
echo "$*"
echo
@@ -30,6 +64,7 @@ die ( ) {
cygwin=false
msys=false
darwin=false
+nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
@@ -40,26 +75,11 @@ case "`uname`" in
MINGW* )
msys=true
;;
+ NONSTOP* )
+ nonstop=true
+ ;;
esac
-# 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
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
@@ -85,7 +105,7 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+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
@@ -150,11 +170,19 @@ if $cygwin ; then
esac
fi
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+APP_ARGS=$(save "$@")
+
+# 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"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
index 8a0b282aa6..15e1ee37a7 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,90 +1,100 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem http://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/lib/base/build.gradle b/lib/base/build.gradle
index 20033bc3f0..b7eb9d588c 100644
--- a/lib/base/build.gradle
+++ b/lib/base/build.gradle
@@ -1,15 +1,14 @@
dependencies {
- implementation fileTree(include: ['*.jar'], dir: 'libs')
- api Config.depConfig.lib_subutil.dep
- api Config.depConfig.lib_utilcode.dep
+ api Config.modules.lib_subutil.dep
+ api Config.modules.lib_utilcode.dep
- api Config.depConfig.support_appcompat_v7.dep
- api Config.depConfig.support_design.dep
- api Config.depConfig.support_multidex.dep
- api Config.depConfig.support_constraint.dep
- api Config.depConfig.kotlin.dep
- api Config.depConfig.free_proguard.dep
- api Config.depConfig.swipe_panel.dep
- api Config.depConfig.eventbus_lib.dep
- compileOnly Config.depConfig.lib_utildebug_no_op.dep
+ api Config.libs.androidx_appcompat.path
+ api Config.libs.androidx_material.path
+ api Config.libs.androidx_multidex.path
+ api Config.libs.androidx_constraint.path
+ api Config.libs.kotlin.path
+ api Config.libs.free_proguard.path
+ api Config.libs.swipe_panel.path
+ api Config.libs.eventbus_lib.path
+ compileOnly Config.modules.lib_utildebug_no_op.dep
}
\ No newline at end of file
diff --git a/lib/base/src/main/java/com/blankj/base/BaseActivity.java b/lib/base/src/main/java/com/blankj/base/BaseActivity.java
index c0c1fce1ce..c0348203f8 100644
--- a/lib/base/src/main/java/com/blankj/base/BaseActivity.java
+++ b/lib/base/src/main/java/com/blankj/base/BaseActivity.java
@@ -2,10 +2,12 @@
import android.app.Activity;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
+import androidx.annotation.LayoutRes;
+import androidx.appcompat.app.AppCompatActivity;
+
import com.blankj.utilcode.util.ClickUtils;
/**
diff --git a/lib/base/src/main/java/com/blankj/base/BaseApplication.java b/lib/base/src/main/java/com/blankj/base/BaseApplication.java
index da049b589c..f1fd6186c0 100644
--- a/lib/base/src/main/java/com/blankj/base/BaseApplication.java
+++ b/lib/base/src/main/java/com/blankj/base/BaseApplication.java
@@ -2,7 +2,8 @@
import android.app.Application;
import android.content.Context;
-import android.support.multidex.MultiDex;
+
+import androidx.multidex.MultiDex;
import com.blankj.utilcode.util.AppUtils;
import com.blankj.utilcode.util.CrashUtils;
diff --git a/lib/base/src/main/java/com/blankj/base/BaseFragment.java b/lib/base/src/main/java/com/blankj/base/BaseFragment.java
index 2ff0a90913..ab2b8877fe 100644
--- a/lib/base/src/main/java/com/blankj/base/BaseFragment.java
+++ b/lib/base/src/main/java/com/blankj/base/BaseFragment.java
@@ -2,13 +2,6 @@
import android.content.Context;
import android.os.Bundle;
-import android.support.annotation.IdRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -17,6 +10,14 @@
import com.blankj.utilcode.util.AppUtils;
import com.blankj.utilcode.util.ClickUtils;
+import androidx.annotation.IdRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
/**
*
* author: Blankj
@@ -89,7 +90,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
} else {
ft.show(this);
}
- ft.commitAllowingStateLoss();
+ ft.commitNowAllowingStateLoss();
}
Bundle bundle = getArguments();
initData(bundle);
diff --git a/lib/base/src/main/java/com/blankj/base/IBaseView.java b/lib/base/src/main/java/com/blankj/base/IBaseView.java
index 282649b774..821cbf4399 100644
--- a/lib/base/src/main/java/com/blankj/base/IBaseView.java
+++ b/lib/base/src/main/java/com/blankj/base/IBaseView.java
@@ -1,11 +1,12 @@
package com.blankj.base;
import android.os.Bundle;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
import android.view.View;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
/**
*
diff --git a/lib/base/src/main/java/com/blankj/base/dialog/BaseDialog.java b/lib/base/src/main/java/com/blankj/base/dialog/BaseDialog.java
index 274f451a56..1599d8becc 100644
--- a/lib/base/src/main/java/com/blankj/base/dialog/BaseDialog.java
+++ b/lib/base/src/main/java/com/blankj/base/dialog/BaseDialog.java
@@ -4,13 +4,14 @@
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
-import android.support.annotation.NonNull;
import android.view.View;
import android.view.Window;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.ThreadUtils;
+import androidx.annotation.NonNull;
+
/**
*
* author: blankj
diff --git a/lib/base/src/main/java/com/blankj/base/dialog/BaseDialogFragment.java b/lib/base/src/main/java/com/blankj/base/dialog/BaseDialogFragment.java
index d83dc5cc32..e115e78878 100644
--- a/lib/base/src/main/java/com/blankj/base/dialog/BaseDialogFragment.java
+++ b/lib/base/src/main/java/com/blankj/base/dialog/BaseDialogFragment.java
@@ -6,12 +6,6 @@
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.app.DialogFragment;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -21,6 +15,13 @@
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ThreadUtils;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.DialogFragment;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
+
/**
*
* author: blankj
diff --git a/lib/base/src/main/java/com/blankj/base/dialog/DialogCallback.java b/lib/base/src/main/java/com/blankj/base/dialog/DialogCallback.java
index 7d1c6e632a..defd34483f 100644
--- a/lib/base/src/main/java/com/blankj/base/dialog/DialogCallback.java
+++ b/lib/base/src/main/java/com/blankj/base/dialog/DialogCallback.java
@@ -2,9 +2,10 @@
import android.app.Activity;
import android.app.Dialog;
-import android.support.annotation.NonNull;
import android.view.Window;
+import androidx.annotation.NonNull;
+
/**
*
* author: blankj
diff --git a/lib/base/src/main/java/com/blankj/base/mvp/BaseModel.java b/lib/base/src/main/java/com/blankj/base/mvp/BaseModel.java
index 84c930fd74..b48ed32f23 100644
--- a/lib/base/src/main/java/com/blankj/base/mvp/BaseModel.java
+++ b/lib/base/src/main/java/com/blankj/base/mvp/BaseModel.java
@@ -1,10 +1,9 @@
package com.blankj.base.mvp;
-import android.arch.lifecycle.LiveData;
-import android.arch.lifecycle.MutableLiveData;
-import android.support.annotation.CallSuper;
import android.util.Log;
+import androidx.annotation.CallSuper;
+
/**
*
* author: blankj
@@ -15,8 +14,6 @@
*/
public abstract class BaseModel {
- LiveData