Browse Source

提交1.1.0版本,将android support转成androidx支持,并将Maven库存放到个人服务器上

yanyi 5 years ago
parent
commit
37dd7c0ac3

+ 24 - 5
README.md

@@ -1,15 +1,34 @@
 # BasePermission
 权限工具类
 
-### 使用方法
+## 使用方法
 
-module 下添加
+### 根目录下build.gradle添加Maven地址
+~~~
+repositories {
+        maven {
+            url "http://maven.yanyi.online:8081/nexus/content/repositories/mylove/"
+        }
+    }
+~~~
+### module 下添加
+~~~
+implementation 'com.yanyi.benyanyi:PermissionHelper:1.1.0'
+~~~
 
-     implementation 'com.yanyi.benyanyi:permissionlib:1.0.9'
-
-具体使用查看[wiki](https://github.com/BenYanYi/BasePermission/wiki)
+或者
+~~~
+<dependency>
+  <groupId>com.yanyi.benyanyi</groupId>
+  <artifactId>PermissionHelper</artifactId>
+  <version>1.1.0</version>
+  <type>aar</type>
+</dependency>
+~~~
+具体使用查看[wiki](http://yanyis.space/android/basepermission/wikis)
 
 ### 版本更新
+* 2020-05-18更新(1.1.0) 将android support转成androidx支持,并将Maven库存放到个人服务器上
 * 2019-07-18更新(1.0.9) 优化拒绝权限通知弹窗,添加注解配置弹窗方法,优化注解方法,去除多余配置
 * 2019-06-26更新(1.0.8) 删除重复方法
 * 2019-06-12更新(1.0.7) 优化方法,规范方法,修改包名,以便所有开源库统一包名

+ 6 - 6
app/build.gradle

@@ -1,14 +1,14 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 27
+    compileSdkVersion 29
     defaultConfig {
         applicationId "com.yanyi.basepermission"
         minSdkVersion 15
-        targetSdkVersion 27
+        targetSdkVersion 29
         versionCode 1
         versionName "1.0"
-        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
     }
     buildTypes {
         release {
@@ -20,9 +20,9 @@ android {
 
 dependencies {
     implementation fileTree(include: ['*.jar'], dir: 'libs')
-    implementation 'com.android.support:appcompat-v7:27.1.1'
+    implementation 'androidx.appcompat:appcompat:1.0.0'
     testImplementation 'junit:junit:4.12'
-    androidTestImplementation 'com.android.support.test:runner:1.0.2'
-    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
     implementation project(':permissionlib')
 }

+ 2 - 2
app/src/androidTest/java/com/yanyi/basepermission/ExampleInstrumentedTest.java

@@ -1,8 +1,8 @@
 package com.yanyi.basepermission;
 
 import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;

+ 3 - 2
app/src/main/java/com/yanyi/basepermission/MainActivity.java

@@ -2,10 +2,11 @@ package com.yanyi.basepermission;
 
 import android.Manifest;
 import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
 import com.benyanyi.permissionlib.PermissionBind;
 import com.benyanyi.permissionlib.PermissionDialogInfo;
 import com.benyanyi.permissionlib.annotation.GetPermissionComplete;

+ 2 - 2
build.gradle

@@ -5,11 +5,11 @@ buildscript {
     repositories {
         google()
         jcenter()
+        maven{ url 'http://maven.yanyi.online:8081/nexus/content/repositories/mylove/'}
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.1.2'
+        classpath 'com.android.tools.build:gradle:3.2.0'
         classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
-        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.2'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files

+ 2 - 0
gradle.properties

@@ -12,3 +12,5 @@ org.gradle.jvmargs=-Xmx1536m
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
 android.injected.testOnly=false
+android.useAndroidX=true
+android.enableJetifier=true

+ 1 - 1
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-4.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

+ 15 - 67
permissionlib/bintrayUpload.gradle

@@ -1,80 +1,28 @@
-// 这里添加下面两行代码。
-apply plugin: 'com.github.dcendents.android-maven'
-apply plugin: 'com.jfrog.bintray'
+apply plugin: 'maven-publish'
+apply plugin: 'maven'
 
-// 定义两个链接,下面会用到。
-def siteUrl = 'http://www.yanyis.space/yanyi/basepermission' // 项目主页。
-def gitUrl = 'http://www.yanyis.space/yanyi/basepermission.git' // Git仓库的url。
+Properties properties = new Properties()
+properties.load(project.rootProject.file('local.properties').newDataInputStream())
+uploadArchives {
+    repositories {
+        mavenDeployer {
+            repository(url: properties.getProperty("POM_URL")) {
+                authentication(userName: properties.getProperty("nexus.user"), password: properties.getProperty("nexus.password"))
+            }
 
-group = "com.yanyi.benyanyi"// 唯一包名,比如compile 'com.ansen.http:okhttpencapsulation:1.0.1'中的com.ansen.http就是这里配置的。
-version = "1.0.9"//项目引用的版本号,比如compile 'com.ansen.http:okhttpencapsulation:1.0.1'中的1.0.1就是这里配置的。
-install {
-    repositories.mavenInstaller {
-        // This generates POM.xml with proper parameters
-        pom {
-            project {
-                packaging 'aar'
-                // Add your description here
-                name '动态获取权限。'
-                url siteUrl
-                // Set your license
+            pom.groupId = properties.getProperty("POM_GROUP_ID")
+            pom.artifactId = properties.getProperty("POM_ATRIFACT_ID")
+            pom.version = properties.getProperty("POM_VERSION")
+
+            pom.project {
                 licenses {
                     license {
                         name 'The Apache Software License, Version 2.0'
                         url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                     }
                 }
-                developers {
-                    developer {
-                        id 'benyanyi'     //填写的一些基本信息
-                        name 'benyanyi'
-                        email 'git@yanyi.red'
-                    }
-                }
-                scm {
-                    connection gitUrl
-                    developerConnection gitUrl
-                    url siteUrl
-                }
             }
         }
     }
 }
-task sourcesJar(type: Jar) {
-    from android.sourceSets.main.java.srcDirs
-    classifier = 'sources'
-}
-task javadoc(type: Javadoc) {
-    source = android.sourceSets.main.java.srcDirs
-    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
-}
-task javadocJar(type: Jar, dependsOn: javadoc) {
-    classifier = 'javadoc'
-    from javadoc.destinationDir
-}
-artifacts {
-    archives javadocJar
-    archives sourcesJar
-}
-Properties properties = new Properties()
-properties.load(project.rootProject.file('local.properties').newDataInputStream())
-bintray {
-    user = properties.getProperty("bintray.user")
-    key = properties.getProperty("bintray.apikey")
-    configurations = ['archives']
-    pkg {
-        repo = "BasePermission"
-        name = "PermissionHelper"   //发布到JCenter上的项目名字
-        websiteUrl = siteUrl
-        vcsUrl = gitUrl
-        licenses = ["Apache-2.0"]
-        publish = true
-    }
-}
-javadoc { //jav doc采用utf-8编码否则会报“GBK的不可映射字符”错误
-    options{
-        encoding "UTF-8"
-        charSet 'UTF-8'
-    }
-}
 //gradlew bintrayUpload    terminal中输入

+ 6 - 6
permissionlib/build.gradle

@@ -1,17 +1,17 @@
 apply plugin: 'com.android.library'
 
 android {
-    compileSdkVersion 27
+    compileSdkVersion 29
 
 
 
     defaultConfig {
         minSdkVersion 14
-        targetSdkVersion 27
+        targetSdkVersion 29
         versionCode 1
         versionName "1.0"
 
-        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 
     }
 
@@ -27,9 +27,9 @@ android {
 dependencies {
     implementation fileTree(dir: 'libs', include: ['*.jar'])
 
-    implementation 'com.android.support:appcompat-v7:27.1.1'
+    implementation 'androidx.appcompat:appcompat:1.0.0'
     testImplementation 'junit:junit:4.12'
-    androidTestImplementation 'com.android.support.test:runner:1.0.2'
-    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
 }
 apply from: 'bintrayUpload.gradle'

+ 2 - 2
permissionlib/src/androidTest/java/com/yanyi/permissionlib/ExampleInstrumentedTest.java

@@ -1,8 +1,8 @@
 package com.yanyi.permissionlib;
 
 import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;

+ 11 - 13
permissionlib/src/main/java/com/benyanyi/permissionlib/PermissionBind.java

@@ -1,12 +1,12 @@
 package com.benyanyi.permissionlib;
 
-import android.app.Activity;
+import androidx.fragment.app.FragmentActivity;
 
 import com.benyanyi.permissionlib.annotation.GetPermissionComplete;
 import com.benyanyi.permissionlib.annotation.GetPermissionDialogInfo;
 import com.benyanyi.permissionlib.annotation.GetPermissionFailure;
-import com.benyanyi.permissionlib.annotation.GetPermissions;
 import com.benyanyi.permissionlib.annotation.GetPermissionSuccess;
+import com.benyanyi.permissionlib.annotation.GetPermissions;
 import com.benyanyi.permissionlib.msg.FailureMsg;
 
 import java.lang.reflect.Method;
@@ -22,13 +22,13 @@ public final class PermissionBind {
     private PermissionConfig permissionConfig;
     private Object object;
 
-    private PermissionBind(Activity activity, Object object) {
+    private PermissionBind(FragmentActivity activity, Object object) {
         this.object = object;
         this.permissionConfig = PermissionHelper.getInstance(activity);
         initPermission();
     }
 
-    public static PermissionBind request(Activity activity, Object object) {
+    public static PermissionBind request(FragmentActivity activity, Object object) {
         if (instance == null) {
             instance = new PermissionBind(activity, object);
         }
@@ -140,15 +140,13 @@ public final class PermissionBind {
             if (permissionFailure != null) {
                 Class<?>[] parameterTypes = method.getParameterTypes();
                 String str1 = "String[]";
-                if (parameterTypes != null) {
-                    for (Class<?> aClass : parameterTypes) {
-                        if (aClass.getSimpleName().equals(str1)) {
-                            method.setAccessible(true);
-                            try {
-                                method.invoke(this.object, (Object) failurePermissions);
-                            } catch (Exception e) {
-                                e.printStackTrace();
-                            }
+                for (Class<?> aClass : parameterTypes) {
+                    if (aClass.getSimpleName().equals(str1)) {
+                        method.setAccessible(true);
+                        try {
+                            method.invoke(this.object, (Object) failurePermissions);
+                        } catch (Exception e) {
+                            e.printStackTrace();
                         }
                     }
                 }

+ 10 - 9
permissionlib/src/main/java/com/benyanyi/permissionlib/PermissionFragment.java

@@ -2,18 +2,19 @@ package com.benyanyi.permissionlib;
 
 import android.annotation.TargetApi;
 import android.app.AlertDialog;
-import android.app.Fragment;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.os.Build;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.ContextCompat;
 import android.text.TextUtils;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.Fragment;
+
 import com.benyanyi.permissionlib.msg.FailureMsg;
 
 import java.util.ArrayList;
@@ -44,19 +45,19 @@ public final class PermissionFragment extends Fragment {
         setRetainInstance(true);
     }
 
-    public void setPermissions(String[] permissions) {
+    void setPermissions(String[] permissions) {
         this.permissions = permissions;
     }
 
-    public void setInfo(PermissionDialogInfo info) {
+    void setInfo(PermissionDialogInfo info) {
         this.info = info;
     }
 
-    public void setCallBack(PermissionCallBack callBack) {
+    void setCallBack(PermissionCallBack callBack) {
         this.callBack = callBack;
     }
 
-    public void startForPermissionResult(int permissionCode) {
+    void startForPermissionResult(int permissionCode) {
         this.permissionCode = permissionCode;
         if (checkPermission()) {
             if (this.callBack != null) {

+ 13 - 10
permissionlib/src/main/java/com/benyanyi/permissionlib/PermissionHelper.java

@@ -1,7 +1,7 @@
 package com.benyanyi.permissionlib;
 
-import android.app.Activity;
-import android.app.FragmentManager;
+import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
 
 /**
  * @author YanYi
@@ -11,28 +11,31 @@ import android.app.FragmentManager;
  */
 public class PermissionHelper implements PermissionConfig {
     private static PermissionConfig instance;
-    private Activity mActivity;
+    private FragmentActivity mActivity;
 
     private String tag = "PermissionHelper";
 
     private PermissionFragment permissionFragment;
 
-    private PermissionHelper(Activity activity) {
-        this.mActivity = activity;
+    private PermissionHelper(FragmentActivity fragmentActivity) {
+        this.mActivity = fragmentActivity;
         permissionFragment = getFragment();
     }
 
-    public static PermissionConfig getInstance(Activity activity) {
-        instance = new PermissionHelper(activity);
+    public static PermissionConfig getInstance(FragmentActivity fragmentActivity) {
+        if (instance == null) {
+            instance = new PermissionHelper(fragmentActivity);
+        }
         return instance;
     }
 
     private PermissionFragment getFragment() {
-        PermissionFragment fragment = (PermissionFragment) this.mActivity.getFragmentManager()
-                .findFragmentByTag(tag);
+//        PermissionFragment fragment = (PermissionFragment) this.mActivity.getFragmentManager()
+//                .findFragmentByTag(tag);
+        PermissionFragment fragment = (PermissionFragment) this.mActivity.getSupportFragmentManager().findFragmentByTag(tag);
         if (fragment == null) {
             fragment = new PermissionFragment();
-            FragmentManager fragmentManager = this.mActivity.getFragmentManager();
+            FragmentManager fragmentManager = this.mActivity.getSupportFragmentManager();
             fragmentManager
                     .beginTransaction()
                     .add(fragment, tag)