diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index acdf960..aa446be 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,7 +4,7 @@
-
+
@@ -15,7 +15,6 @@
-
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index a5f05cd..e34606c 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -21,5 +21,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index be70e9a..5cd3570 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -5,6 +5,12 @@
+
+
+
+
+
+
@@ -27,4 +33,7 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/qaplug_profiles.xml b/.idea/qaplug_profiles.xml
new file mode 100644
index 0000000..3dfd21f
--- /dev/null
+++ b/.idea/qaplug_profiles.xml
@@ -0,0 +1,465 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index 7f68460..0000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index b40b31b..660403b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -22,7 +22,7 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
- implementation project(':permission')
+ implementation 'io.github.haiyangcode:andPms:0.0.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
diff --git a/build.gradle b/build.gradle
index 801467d..fc8ac0b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,8 +3,8 @@
buildscript {
repositories {
google()
- jcenter()
-
+ mavenCentral()
+ mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.3'
@@ -17,7 +17,8 @@ buildscript {
allprojects {
repositories {
google()
- jcenter()
+ mavenCentral()
+ mavenCentral()
}
}
diff --git a/gradle.properties b/gradle.properties
index 2de2ee2..4e9f19f 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -14,3 +14,23 @@ org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true
android.enableJetifier=true
+
+libraryName=androidPms
+libraryDescription=android测试发布厂库
+
+publishedGroupId=io.github.haiyangcode
+artifact=androidPms
+libraryVersion=0.0.1
+
+siteUrl=https://github.com/HaiYangCode/AndroidPms
+gitUrl=https://github.com/HaiYangCode/AndroidPms
+developerId=yanghai0523
+developerName=yanghai0523
+developerEmail=yanghai0523@gmail.com
+
+
+
+licenseName=The Apache Software License, Version 2.0
+licenseUrl=http://www.apache.org/licenses/LICENSE-2.0.txt
+allLicenses=["Apache-2.0"]
+
diff --git a/maven-publish.gradle b/maven-publish.gradle
new file mode 100644
index 0000000..7dae3d5
--- /dev/null
+++ b/maven-publish.gradle
@@ -0,0 +1,69 @@
+apply plugin: 'maven'
+apply plugin: 'signing'
+
+
+def ossrhUsername = "yanghai0523"
+def ossrhPassword = "F22@sonatype"//"在SonaType上申请的密码"
+
+def PUBLISH_GROUP_ID = 'io.github.haiyangcode' //这里可以不是直接申请时候的groupId只要开头是就可以
+
+def PUBLISH_ARTIFACT_ID = "andPms"
+
+def PUBLISH_VERSION = "0.0.2" //这个是直接获取的库gradle里配置好的版本号,不用到处修改版本号,只需要维护一份就可以。
+
+//签名
+signing {
+ required { gradle.taskGraph.hasTask("uploadArchives") }
+ sign configurations.archives
+}
+
+uploadArchives {
+ repositories {
+ mavenDeployer {
+
+ beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
+
+ repository(url: "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/") {
+ authentication(userName: ossrhUsername, password: ossrhPassword)
+ }
+
+ snapshotRepository(url: "https://s01.oss.sonatype.org/content/repositories/snapshots/") {
+ authentication(userName: ossrhUsername, password: ossrhPassword)
+ }
+
+ pom.groupId = PUBLISH_GROUP_ID
+ pom.artifactId = PUBLISH_ARTIFACT_ID
+ pom.version = PUBLISH_VERSION
+
+ pom.project {
+ name 'andPms'
+ packaging 'aar' //我这里发布的是安卓的包,所有写的aar
+ // optionally artifactId can be defined here
+ description '这里是android权限申请工具类'//'发布包的描述'
+ url 'https://github.com/HaiYangCode/AndroidPms'
+
+ scm {
+ connection 'scm:https://github.com/HaiYangCode/AndroidPms'//''scm:替换成项目git地址'
+ developerConnection 'scm:https://github.com/HaiYangCode/AndroidPms'
+//''scm:替换为git开头的项目地址'
+ url 'https://github.com/HaiYangCode/AndroidPms'//'项目首页,可以是github项目的主页'
+ }
+
+ licenses {
+ license {
+ name 'The Apache License, Version 2.0'
+ url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+ }
+ }
+
+ developers {
+ developer {
+ id 'yanghai0523'
+ name '这里随意填写就可以'
+ email 'yanghai0523@gmail.com'
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/permission/build.gradle b/permission/build.gradle
index 794340b..cefd30d 100644
--- a/permission/build.gradle
+++ b/permission/build.gradle
@@ -1,5 +1,5 @@
apply plugin: 'com.android.library'
-
+apply from: '../maven-publish.gradle'
android {
compileSdkVersion 28
diff --git a/permission/src/main/java/com/aot/pms/PermissionHelper.java b/permission/src/main/java/com/aot/pms/PermissionUtil.java
similarity index 85%
rename from permission/src/main/java/com/aot/pms/PermissionHelper.java
rename to permission/src/main/java/com/aot/pms/PermissionUtil.java
index 7881371..558499d 100644
--- a/permission/src/main/java/com/aot/pms/PermissionHelper.java
+++ b/permission/src/main/java/com/aot/pms/PermissionUtil.java
@@ -10,27 +10,22 @@
import com.aot.pms.listener.OnExitListener;
import com.aot.pms.listener.OnExplainListener;
import com.aot.pms.listener.OnPermissionCallbackListener;
-import com.aot.pms.permission.ConcretePermission;
+import com.aot.pms.permission.PermissionNode;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
-public class
+public class PermissionUtil implements OnPermissionCallbackListener {
-
-
-
-PermissionHelper implements OnPermissionCallbackListener {
-
- private PermissionHelper() {
+ private PermissionUtil() {
}
private static class Holder {
- private static PermissionHelper instance = new PermissionHelper();
+ private static PermissionUtil instance = new PermissionUtil();
}
- public static PermissionHelper getInstance() {
+ public static PermissionUtil getInstance() {
return Holder.instance;
}
@@ -64,7 +59,7 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis
// curPermission = curPermission.getNextPermission();
//记录第一个权限
- private static ConcretePermission curPermission = null;
+ private static PermissionNode curPermission = null;
/**
* 构建所有的权限后,调用该方法开始申请权限
@@ -119,7 +114,7 @@ public static class Builder {
private Builder() {
}
- private final ArrayList permissions = new ArrayList<>();
+ private final ArrayList permissions = new ArrayList<>();
/**
@@ -128,7 +123,7 @@ private Builder() {
*/
public Builder addPermission(@NonNull String permissionName) {
i++;
- permissions.add(new ConcretePermission(permissionName, i + resultCode, false));
+ permissions.add(new PermissionNode(permissionName, i + resultCode, false));
return this;
}
@@ -143,7 +138,7 @@ public Builder addPermission(@NonNull String permissionName) {
public Builder addPermission(@NonNull String permissionName, boolean isForce) {
i++;
- permissions.add(new ConcretePermission(permissionName, i + resultCode, isForce));
+ permissions.add(new PermissionNode(permissionName, i + resultCode, isForce));
return this;
}
@@ -166,13 +161,13 @@ public Builder setOnExplainListener(OnExplainListener listener) {
/**
* 将多个权限以链表的方式连接在一起
*/
- public Builder build() {
+ public Builder buildPerChain() {
int i = 0;
- ConcretePermission prePermission = null;//上一个权限
- for (ConcretePermission item : permissions) {
+ PermissionNode prePermission = null;//上一个权限
+ for (PermissionNode item : permissions) {
if (i == 0) {
- PermissionHelper.curPermission = item;
+ PermissionUtil.curPermission = item;
}
if (prePermission != null) {
prePermission.setNextPermission(item);
diff --git a/permission/src/main/java/com/aot/pms/permission/ConcretePermission.java b/permission/src/main/java/com/aot/pms/permission/PermissionNode.java
similarity index 78%
rename from permission/src/main/java/com/aot/pms/permission/ConcretePermission.java
rename to permission/src/main/java/com/aot/pms/permission/PermissionNode.java
index c464842..da3668d 100644
--- a/permission/src/main/java/com/aot/pms/permission/ConcretePermission.java
+++ b/permission/src/main/java/com/aot/pms/permission/PermissionNode.java
@@ -1,6 +1,6 @@
package com.aot.pms.permission;
-public class ConcretePermission {
+public class PermissionNode {
/**
* 每一个权限,都有唯一的判断的code码,防止多个权限用同一个code导致的无法区分
@@ -24,7 +24,7 @@ public boolean isMust() {
/**
* 下一个权限
*/
- protected ConcretePermission nextPermission;
+ protected PermissionNode nextPermission;
/**
* 申请的权限名字
*/
@@ -40,13 +40,13 @@ public String getPermissionName() {
* @param resultCode
* @param isMust
*/
- public ConcretePermission(String permissionName, int resultCode, boolean isMust) {
+ public PermissionNode(String permissionName, int resultCode, boolean isMust) {
this.permissionName = permissionName;
this.requestCode = resultCode;
this.isMust = isMust;
}
- public void setNextPermission(ConcretePermission nextPermission) {
+ public void setNextPermission(PermissionNode nextPermission) {
this.nextPermission = nextPermission;
}
@@ -55,7 +55,7 @@ public void setNextPermission(ConcretePermission nextPermission) {
*
* @return
*/
- public ConcretePermission getNextPermission() {
+ public PermissionNode getNextPermission() {
return nextPermission;
}