詹子聪 5 rokov pred
rodič
commit
0ce7256a1b

+ 7 - 5
app/build.gradle

@@ -1,5 +1,5 @@
 apply plugin: 'com.android.application'
-//apply plugin: 'com.hujiang.android-aspectjx'
+apply plugin: 'com.hujiang.android-aspectjx'
 
 
 android {
@@ -58,9 +58,11 @@ dependencies {
     implementation project(path: ':common')
     implementation project(path: ':mvp')
 
-//    compile 'org.aspectj:aspectjrt:1.8.+'
+    compile 'org.aspectj:aspectjrt:1.8.+'
+    // 动态权限申请firefly1126/android_permission_aspectjx
+    compile 'com.firefly1126.permissionaspect:permissionaspect:1.0.1'
 }
 
-//aspectjx {
-//    exclude  "android.support",'androidx','com.google','com.squareup.leakcanary','com.squareup.leakcanary.core','com.alipay','org.apache','com.tencent'
-//}
+aspectjx {
+    exclude  "android.support",'androidx','com.google','com.squareup.leakcanary','com.squareup.leakcanary.core','com.alipay','org.apache','com.tencent'
+}

+ 3 - 1
app/src/main/AndroidManifest.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.miekir.newmvp">
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 
     <application
         android:allowBackup="true"
@@ -8,7 +9,8 @@
         android:label="@string/app_name"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
-        android:theme="@style/AppTheme">
+        android:theme="@style/AppTheme"
+        android:name=".ui.MvpApplication">
         <activity android:name=".ui.home.HomeActivity"
             android:configChanges="orientation|screenSize|keyboardHidden">
             <intent-filter>

+ 20 - 0
app/src/main/java/com/miekir/newmvp/ui/MvpApplication.java

@@ -0,0 +1,20 @@
+package com.miekir.newmvp.ui;
+
+import android.app.Application;
+
+import com.firefly1126.permissionaspect.PermissionCheckSDK;
+
+/**
+ * Copyright (C), 2019-2020, Miekir
+ *
+ * @author Miekir
+ * @date 2020/11/22 13:13
+ * Description:
+ */
+public class MvpApplication extends Application {
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        PermissionCheckSDK.init(this);
+    }
+}

+ 26 - 1
app/src/main/java/com/miekir/newmvp/ui/home/HomeActivity.java

@@ -1,10 +1,15 @@
 package com.miekir.newmvp.ui.home;
 
+import android.Manifest;
 import android.content.Intent;
 import android.os.Bundle;
 import android.util.Log;
 import android.view.View;
 
+import com.hujiang.permissiondispatcher.CheckPermission;
+import com.hujiang.permissiondispatcher.NeedPermission;
+import com.hujiang.permissiondispatcher.PermissionItem;
+import com.hujiang.permissiondispatcher.PermissionListener;
 import com.miekir.mvp.presenter.InjectPresenter;
 import com.miekir.mvp.view.BaseMvpActivity;
 import com.miekir.newmvp.R;
@@ -30,7 +35,7 @@ public class HomeActivity extends BaseMvpActivity implements View.OnClickListene
     public void onClick(View v) {
         switch (v.getId()) {
             case R.id.btn_jump:
-                startActivity(new Intent(HomeActivity.this, HomeActivity.class));
+                startNewActivityCustom();
                 break;
             case R.id.btn_task:
                 // 点击之后,后台执行耗时操作
@@ -41,6 +46,26 @@ public class HomeActivity extends BaseMvpActivity implements View.OnClickListene
         }
     }
 
+    @NeedPermission(permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE})
+    private void startNewActivity() {
+        startActivity(new Intent(HomeActivity.this, HomeActivity.class));
+    }
+
+    private void startNewActivityCustom() {
+        PermissionItem item = new PermissionItem(Manifest.permission.WRITE_EXTERNAL_STORAGE);
+        CheckPermission.instance(this).check(item, new PermissionListener() {
+            @Override
+            public void permissionGranted() {
+                //获取到权限时执行正常业务逻辑
+            }
+
+            @Override
+            public void permissionDenied() {
+                //权限被拒绝时给用户友好提示
+            }
+        });
+    }
+
     @Override
     public void onArticleResult(String result) {
         Log.d(getClass().getName(), "main obj is " + this.toString());

+ 1 - 1
build.gradle

@@ -8,7 +8,7 @@ buildscript {
     }
     dependencies {
         classpath 'com.android.tools.build:gradle:3.6.1'
-//        classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10'
+        classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.10'
     }
 }