Commit 92ef3449bb43de39e7065521b0627df57c220733
Merge branch 'master' of bj.gitlab.cnlive.com:cnlive-team/newModuleStrike
Showing
23 changed files
with
471 additions
and
129 deletions
app/strike/build.gradle
| ... | ... | @@ -39,6 +39,10 @@ android { |
| 39 | 39 | dexOptions { |
| 40 | 40 | javaMaxHeapSize '4g' |
| 41 | 41 | } |
| 42 | + | |
| 43 | + dataBinding { | |
| 44 | + enabled true | |
| 45 | + } | |
| 42 | 46 | buildTypes { |
| 43 | 47 | debug { |
| 44 | 48 | signingConfig signingConfigs.debugConfig |
| ... | ... | @@ -169,6 +173,7 @@ dependencies { |
| 169 | 173 | implementation project(path: ':core:network') |
| 170 | 174 | implementation project(path: ':core:base') |
| 171 | 175 | implementation project(path: ':cloud:user') |
| 176 | + implementation project(path: ':cloud:pay') | |
| 172 | 177 | |
| 173 | 178 | implementation project(path: ':core:imageload') |
| 174 | 179 | implementation project(path: ':module:xiaojiasoundbox') | ... | ... |
app/strike/src/main/java/com/cnlive/strike/MainActivity.java
| ... | ... | @@ -34,6 +34,7 @@ public class MainActivity extends AppCompatActivity { |
| 34 | 34 | public void onClick(View v) { |
| 35 | 35 | if (TextUtils.isEmpty(UserService.getUid(MainActivity.this))) { |
| 36 | 36 | startActivity(new Intent(MainActivity.this, LoginActivity.class)); |
| 37 | +// finish(); | |
| 37 | 38 | } else { |
| 38 | 39 | startActivity(new Intent(MainActivity.this, MyActivity.class)); |
| 39 | 40 | } | ... | ... |
app/strike/src/main/java/com/cnlive/strike/MyActivity.java
| ... | ... | @@ -3,29 +3,85 @@ package com.cnlive.strike; |
| 3 | 3 | |
| 4 | 4 | import android.content.Intent; |
| 5 | 5 | import android.text.TextUtils; |
| 6 | +import android.view.View; | |
| 6 | 7 | |
| 7 | 8 | import com.alibaba.android.arouter.facade.annotation.Route; |
| 8 | 9 | import com.cnlive.core.libs.base.frame.activity.BaseActivity; |
| 10 | +import com.cnlive.core.network.HttpConn; | |
| 11 | +import com.cnlive.core.network.NetCallBack; | |
| 12 | +import com.cnlive.core.network.model.BaseResult; | |
| 13 | +import com.cnlive.libs.wjjpay.model.GroupBalanceInfo; | |
| 14 | +import com.cnlive.libs.wjjpay.pay.WjjPay; | |
| 9 | 15 | import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; |
| 10 | 16 | import com.cnlive.moudle.pedometer.ui.activity.RunLineActivity; |
| 17 | +import com.cnlive.strike.databinding.ActivityMyBinding; | |
| 11 | 18 | import com.cnlive.strike.user.auth.UserService; |
| 12 | 19 | import com.cnlive.strike.xiaojiaspeaker.commonInfo.XiaoJIaCommInfo; |
| 13 | 20 | import com.cnlive.strike.xiaojiaspeaker.ui.activity.AllDeviceActivity; |
| 21 | +import com.cnlive.strike.xiaojiaspeaker.util.QMUITipDialogUtil; | |
| 14 | 22 | |
| 15 | 23 | @Route(path = "/strick/MyActivity") |
| 16 | 24 | public class MyActivity extends BaseActivity { |
| 25 | + public ActivityMyBinding binding; | |
| 17 | 26 | |
| 18 | 27 | @Override |
| 19 | - protected int getViewLayoutId() { | |
| 28 | + protected int getBindLayoutId() { | |
| 20 | 29 | return R.layout.activity_my; |
| 21 | 30 | } |
| 22 | 31 | |
| 23 | 32 | @Override |
| 33 | + protected void initBindingData() { | |
| 34 | + super.initBindingData(); | |
| 35 | + binding = (ActivityMyBinding) baseBinding; | |
| 36 | + } | |
| 37 | + | |
| 38 | + @Override | |
| 24 | 39 | protected void initView() { |
| 25 | 40 | // getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new MyFragment()).commitAllowingStateLoss(); |
| 26 | 41 | initXiaoJiaSoundBoxData(); |
| 27 | - startActivity(new Intent(MyActivity.this, RunLineActivity.class)); | |
| 28 | - finish(); | |
| 42 | +// startActivity(new Intent(MyActivity.this, RunLineActivity.class)); | |
| 43 | +// finish(); | |
| 44 | + binding.btnChange.setOnClickListener(new View.OnClickListener() { | |
| 45 | + @Override | |
| 46 | + public void onClick(View v) { | |
| 47 | + startActivity(new Intent(MyActivity.this, RunLineActivity.class)); | |
| 48 | + | |
| 49 | +// WjjPay.passwordIsExisting(UserService.getUid(me), new NetCallBack<BaseResult<GroupBalanceInfo>>() { | |
| 50 | +// @Override | |
| 51 | +// public void onRequestState(int state) { | |
| 52 | +// | |
| 53 | +// } | |
| 54 | +// | |
| 55 | +// @Override | |
| 56 | +// public void onSuccess(BaseResult<GroupBalanceInfo> data) { | |
| 57 | +// QMUITipDialogUtil.successDialog(me, data.getErrorCode() + "" + data.getData().getBalance(), 5); | |
| 58 | +// } | |
| 59 | +// | |
| 60 | +// @Override | |
| 61 | +// public void onFailure(String errCode, String errMsg) { | |
| 62 | +// QMUITipDialogUtil.failedDialog(me, errMsg, 3); | |
| 63 | +// } | |
| 64 | +// }); | |
| 65 | +// WjjPay.setPassword(UserService.getUid(me), "123456", new NetCallBack<BaseResult>() { | |
| 66 | +// @Override | |
| 67 | +// public void onRequestState(int state) { | |
| 68 | +// if (state == HttpConn.ON_START) { | |
| 69 | +// QMUITipDialogUtil.loadingDialog(me, "修改中", true); | |
| 70 | +// } | |
| 71 | +// } | |
| 72 | +// | |
| 73 | +// @Override | |
| 74 | +// public void onSuccess(BaseResult data) { | |
| 75 | +// QMUITipDialogUtil.successDialog(me, data.getMessage(), 5); | |
| 76 | +// } | |
| 77 | +// | |
| 78 | +// @Override | |
| 79 | +// public void onFailure(String errCode, String errMsg) { | |
| 80 | +// QMUITipDialogUtil.failedDialog(me, errMsg, 3); | |
| 81 | +// } | |
| 82 | +// }); | |
| 83 | + } | |
| 84 | + }); | |
| 29 | 85 | } |
| 30 | 86 | |
| 31 | 87 | @Override | ... | ... |
app/strike/src/main/res/layout/activity_my.xml
| 1 | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 3 | - xmlns:app="http://schemas.android.com/apk/res-auto" | |
| 4 | - xmlns:tools="http://schemas.android.com/tools" | |
| 5 | - android:layout_width="match_parent" | |
| 6 | - android:layout_height="match_parent" | |
| 7 | - tools:context="com.cnlive.strike.MyActivity"> | |
| 2 | +<layout> | |
| 8 | 3 | |
| 9 | - <RelativeLayout | |
| 10 | - android:id="@+id/fragment_container" | |
| 4 | + <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
| 5 | + xmlns:app="http://schemas.android.com/apk/res-auto" | |
| 6 | + xmlns:tools="http://schemas.android.com/tools" | |
| 11 | 7 | android:layout_width="match_parent" |
| 12 | - android:layout_height="match_parent"> | |
| 8 | + android:layout_height="match_parent" | |
| 9 | + tools:context="com.cnlive.strike.MyActivity"> | |
| 13 | 10 | |
| 14 | - <TextView | |
| 15 | - android:layout_width="wrap_content" | |
| 16 | - android:layout_height="wrap_content" | |
| 17 | - android:text="sfwerfwef" /> | |
| 11 | + <RelativeLayout | |
| 12 | + android:id="@+id/fragment_container" | |
| 13 | + android:layout_width="match_parent" | |
| 14 | + android:layout_height="match_parent"> | |
| 15 | + | |
| 16 | + <TextView | |
| 17 | + android:layout_width="wrap_content" | |
| 18 | + android:layout_height="wrap_content" | |
| 19 | + android:text="sfwerfwef" /> | |
| 20 | + | |
| 21 | + <Button | |
| 22 | + android:id="@+id/btn_change" | |
| 23 | + android:layout_width="wrap_content" | |
| 24 | + android:layout_height="wrap_content" | |
| 25 | + android:text="修改支付密码" /> | |
| 26 | + </RelativeLayout> | |
| 18 | 27 | </RelativeLayout> |
| 19 | -</RelativeLayout> | |
| 28 | +</layout> | |
| 20 | 29 | \ No newline at end of file | ... | ... |
cloud/user/src/main/AndroidManifest.xml
| ... | ... | @@ -39,7 +39,6 @@ |
| 39 | 39 | android:name="WEIBO_CHANNEL" |
| 40 | 40 | android:value="weibo" /> |
| 41 | 41 | |
| 42 | - <activity android:name="com.cnlive.strike.moudle.user.ui.activity.MainTestActivity" /> | |
| 43 | 42 | <activity |
| 44 | 43 | android:name=".ui.activity.LoginActivity" |
| 45 | 44 | android:configChanges="keyboardHidden|screenSize|orientation|smallestScreenSize|screenLayout" |
| ... | ... | @@ -50,12 +49,6 @@ |
| 50 | 49 | <action android:name="android.accounts.AccountAuthenticator" /> |
| 51 | 50 | </intent-filter> |
| 52 | 51 | </activity> |
| 53 | - | |
| 54 | - <activity | |
| 55 | - android:name="com.cnlive.strike.moudle.user.ui.activity.BindPhoneNumberActivity" | |
| 56 | - android:configChanges="keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation" | |
| 57 | - android:launchMode="singleTop" | |
| 58 | - android:screenOrientation="portrait" /> | |
| 59 | 52 | <activity |
| 60 | 53 | android:name=".ui.activity.FirstLoginActivity" |
| 61 | 54 | android:configChanges="keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation" | ... | ... |
cloud/user/src/main/java/com/cnlive/strike/user/sms/SmsVerifyCatcher.java
| ... | ... | @@ -27,6 +27,9 @@ import androidx.core.app.ActivityCompat; |
| 27 | 27 | import androidx.core.content.ContextCompat; |
| 28 | 28 | import androidx.fragment.app.Fragment; |
| 29 | 29 | |
| 30 | +import com.cnlive.core.libs.base.frame.fragment.BaseFragment; | |
| 31 | +import com.cnlive.core.libs.base.interfaces.OnPermissionResponseListener; | |
| 32 | + | |
| 30 | 33 | /** |
| 31 | 34 | * Created by Anton Bevza on 8/15/16. |
| 32 | 35 | */ |
| ... | ... | @@ -35,7 +38,7 @@ public class SmsVerifyCatcher { |
| 35 | 38 | public static int PERMISSION_REQUEST_CODE = 12; |
| 36 | 39 | |
| 37 | 40 | private Activity activity; |
| 38 | - private Fragment fragment; | |
| 41 | + private BaseFragment fragment; | |
| 39 | 42 | private OnSmsCatchListener<String> onSmsCatchListener; |
| 40 | 43 | private SmsReceiver smsReceiver; |
| 41 | 44 | private String phoneNumber; |
| ... | ... | @@ -49,13 +52,17 @@ public class SmsVerifyCatcher { |
| 49 | 52 | smsReceiver.setCallback(this.onSmsCatchListener); |
| 50 | 53 | } |
| 51 | 54 | |
| 52 | - public SmsVerifyCatcher(Activity activity, Fragment fragment, OnSmsCatchListener<String> onSmsCatchListener) { | |
| 55 | + public SmsVerifyCatcher(Activity activity, BaseFragment fragment, OnSmsCatchListener<String> onSmsCatchListener) { | |
| 53 | 56 | this(activity, onSmsCatchListener); |
| 54 | 57 | this.fragment = fragment; |
| 58 | + | |
| 55 | 59 | } |
| 56 | 60 | |
| 57 | 61 | //For fragments |
| 58 | - public static boolean isStoragePermissionGranted(Activity activity, Fragment fragment) { | |
| 62 | + public static boolean isStoragePermissionGranted(Activity activity, BaseFragment fragment) { | |
| 63 | + if (null==fragment){ | |
| 64 | + return false; | |
| 65 | + } | |
| 59 | 66 | if (Build.VERSION.SDK_INT >= 23) { |
| 60 | 67 | if (ContextCompat.checkSelfPermission(activity, Manifest.permission.RECEIVE_SMS) |
| 61 | 68 | == PackageManager.PERMISSION_GRANTED && | ... | ... |
cloud/user/src/main/java/com/cnlive/strike/user/ui/activity/LoginActivity.java
| ... | ... | @@ -15,6 +15,8 @@ import com.cnlive.core.libs.base.frame.fragment.BaseFragment; |
| 15 | 15 | import com.cnlive.core.libs.base.util.FragmentUtil; |
| 16 | 16 | import com.cnlive.strike.user.R; |
| 17 | 17 | import com.cnlive.strike.user.ui.fragment.QuickLoginFragment; |
| 18 | +import com.me.yokeyword.fragmentation.anim.DefaultHorizontalAnimator; | |
| 19 | +import com.me.yokeyword.fragmentation.anim.FragmentAnimator; | |
| 18 | 20 | |
| 19 | 21 | /** |
| 20 | 22 | * @author Lynn |
| ... | ... | @@ -24,7 +26,6 @@ import com.cnlive.strike.user.ui.fragment.QuickLoginFragment; |
| 24 | 26 | @Route(path = LoginActivity.PATH) |
| 25 | 27 | public class LoginActivity extends BaseActivity { |
| 26 | 28 | public static final String PATH = "/cloud/user/ui/activity/login"; |
| 27 | - | |
| 28 | 29 | public static String FROM_TOKEN_ERROR = "from_token_error"; |
| 29 | 30 | public static String TAG_MSG = "tagMsg"; |
| 30 | 31 | public static String TAG_SHARE = "tagValue"; |
| ... | ... | @@ -71,13 +72,17 @@ public class LoginActivity extends BaseActivity { |
| 71 | 72 | context.startActivity(intent); |
| 72 | 73 | } |
| 73 | 74 | |
| 74 | - | |
| 75 | 75 | @Override |
| 76 | - protected void initView() { | |
| 76 | + protected void initParam() { | |
| 77 | + super.initParam(); | |
| 77 | 78 | fromTokenError = getIntent().getBooleanExtra(FROM_TOKEN_ERROR, false); |
| 78 | 79 | tagMsg = getIntent().getStringExtra(TAG_MSG) == null ? "" : getIntent().getStringExtra(TAG_MSG); |
| 79 | 80 | shareType = getIntent().getStringExtra(TAG_SHARE); |
| 80 | 81 | clickAd = getIntent().getBooleanExtra(TAG_CLICK_AD, false); |
| 82 | + } | |
| 83 | + | |
| 84 | + @Override | |
| 85 | + protected void initView() { | |
| 81 | 86 | addFragment(); |
| 82 | 87 | } |
| 83 | 88 | |
| ... | ... | @@ -105,4 +110,5 @@ public class LoginActivity extends BaseActivity { |
| 105 | 110 | if (quickLoginFragment != null) |
| 106 | 111 | quickLoginFragment.onRequestPermissionsResult(requestCode, permissions, grantResults); |
| 107 | 112 | } |
| 113 | + | |
| 108 | 114 | } | ... | ... |
core/base/src/main/java/com/cnlive/core/libs/base/frame/activity/BaseActivity.java
| ... | ... | @@ -87,9 +87,9 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 87 | 87 | public BaseActivity me;//本类 |
| 88 | 88 | private Bundle savedInstanceState; |
| 89 | 89 | private OnPermissionResponseListener onPermissionResponseListener; //权限申请回调 |
| 90 | - private int DEFAULT_REQUEST_CODE_PERMISSION = 0x00099;//默认权限请求码 | |
| 90 | + private final int DEFAULT_REQUEST_CODE_PERMISSION = 0x00099;//默认权限请求码 | |
| 91 | 91 | private int USER_SET_REQUEST_CODE_PERMISSION = -0x00099;//用户设置的权限请求码 |
| 92 | - private String defaultDefinePermissionTip = "需要必要的权限才可以正常使用该功能,您已拒绝获得该权限。\n如果需要重新授权,您可以点击“设置”按钮进入系统设置进行授权";//默认拒绝的权限提示语 | |
| 92 | + private final String defaultDefinePermissionTip = "需要必要的权限才可以正常使用该功能,您已拒绝获得该权限。\n如果需要重新授权,您可以点击“设置”按钮进入系统设置进行授权";//默认拒绝的权限提示语 | |
| 93 | 93 | private String userSetDefinePermissionTip = "";//用户设置的权限提示语 |
| 94 | 94 | // private SwipeBackActivityHelper mHelper;//侧滑返回 |
| 95 | 95 | private boolean isOpenSwipBack = false; |
| ... | ... | @@ -99,6 +99,7 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 99 | 99 | private final SwipeBackActivityDelegate mSwipeDelegate = new SwipeBackActivityDelegate(this); |
| 100 | 100 | private boolean isDefinePermissionCloseActivity = false; |
| 101 | 101 | private boolean isUserClickAllowBtn = false;//用户是否点击允许按钮 |
| 102 | + private boolean isShowRefuseDialog = true;//是否显示拒绝提示框 | |
| 102 | 103 | private String[] userSetPermission; |
| 103 | 104 | |
| 104 | 105 | @Override |
| ... | ... | @@ -281,6 +282,7 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 281 | 282 | isUserClickAllowBtn = false; |
| 282 | 283 | int requestCode = DEFAULT_REQUEST_CODE_PERMISSION; |
| 283 | 284 | String tip = defaultDefinePermissionTip; |
| 285 | + boolean isShowDialog = isShowRefuseDialog; | |
| 284 | 286 | if (null != onPermissionResponseListener && null != userSetPermission) { |
| 285 | 287 | if (null != userSetDefinePermissionTip) { |
| 286 | 288 | tip = userSetDefinePermissionTip; |
| ... | ... | @@ -289,7 +291,7 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 289 | 291 | requestCode = USER_SET_REQUEST_CODE_PERMISSION; |
| 290 | 292 | } |
| 291 | 293 | //开始请求 |
| 292 | - requestPermission(requestCode, tip, isDefinePermissionCloseActivity, userSetPermission, onPermissionResponseListener); | |
| 294 | + requestPermission(requestCode, tip, isDefinePermissionCloseActivity, userSetPermission, isShowDialog, onPermissionResponseListener); | |
| 293 | 295 | } |
| 294 | 296 | } |
| 295 | 297 | } |
| ... | ... | @@ -482,6 +484,20 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 482 | 484 | } |
| 483 | 485 | } |
| 484 | 486 | |
| 487 | + public void requestPermission(String[] permissions, boolean isShowRefuseDialog, OnPermissionResponseListener | |
| 488 | + onPermissionResponseListener) { | |
| 489 | + this.onPermissionResponseListener = onPermissionResponseListener; | |
| 490 | + this.isShowRefuseDialog = isShowRefuseDialog; | |
| 491 | + if (checkPermissions(permissions)) { | |
| 492 | + if (onPermissionResponseListener != null) { | |
| 493 | + onPermissionResponseListener.onSuccess(permissions); | |
| 494 | + } | |
| 495 | + } else { | |
| 496 | + List<String> needPermissions = getDeniedPermissions(permissions); | |
| 497 | + ActivityCompat.requestPermissions(this, needPermissions.toArray(new String[needPermissions.size()]), DEFAULT_REQUEST_CODE_PERMISSION); | |
| 498 | + } | |
| 499 | + } | |
| 500 | + | |
| 485 | 501 | /** |
| 486 | 502 | * 请求权限 |
| 487 | 503 | * <p> |
| ... | ... | @@ -491,6 +507,7 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 491 | 507 | * @param permissions 请求的权限 |
| 492 | 508 | * @param onPermissionResponseListener 回调监听器 |
| 493 | 509 | */ |
| 510 | + | |
| 494 | 511 | public void requestPermission(boolean isDefineActivity, String[] permissions, OnPermissionResponseListener |
| 495 | 512 | onPermissionResponseListener) { |
| 496 | 513 | this.onPermissionResponseListener = onPermissionResponseListener; |
| ... | ... | @@ -505,6 +522,21 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 505 | 522 | } |
| 506 | 523 | } |
| 507 | 524 | |
| 525 | + public void requestPermission(boolean isDefineActivity, String[] permissions, boolean isShowRefuseDialog, OnPermissionResponseListener | |
| 526 | + onPermissionResponseListener) { | |
| 527 | + this.onPermissionResponseListener = onPermissionResponseListener; | |
| 528 | + this.isDefinePermissionCloseActivity = isDefineActivity; | |
| 529 | + this.isShowRefuseDialog = isShowRefuseDialog; | |
| 530 | + if (checkPermissions(permissions)) { | |
| 531 | + if (onPermissionResponseListener != null) { | |
| 532 | + onPermissionResponseListener.onSuccess(permissions); | |
| 533 | + } | |
| 534 | + } else { | |
| 535 | + List<String> needPermissions = getDeniedPermissions(permissions); | |
| 536 | + ActivityCompat.requestPermissions(this, needPermissions.toArray(new String[needPermissions.size()]), DEFAULT_REQUEST_CODE_PERMISSION); | |
| 537 | + } | |
| 538 | + } | |
| 539 | + | |
| 508 | 540 | /** |
| 509 | 541 | * 请求权限 |
| 510 | 542 | * <p> |
| ... | ... | @@ -514,6 +546,7 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 514 | 546 | * @param permissions 请求的权限 |
| 515 | 547 | * @param onPermissionResponseListener 回调监听器 |
| 516 | 548 | */ |
| 549 | + | |
| 517 | 550 | public void requestPermission(String defineTip, boolean isDefineActivity, String[] permissions, OnPermissionResponseListener |
| 518 | 551 | onPermissionResponseListener) { |
| 519 | 552 | this.isDefinePermissionCloseActivity = isDefineActivity; |
| ... | ... | @@ -530,6 +563,23 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 530 | 563 | } |
| 531 | 564 | } |
| 532 | 565 | |
| 566 | + public void requestPermission(String defineTip, boolean isDefineActivity, String[] permissions, boolean isShowRefuseDialog, OnPermissionResponseListener | |
| 567 | + onPermissionResponseListener) { | |
| 568 | + this.isDefinePermissionCloseActivity = isDefineActivity; | |
| 569 | + this.userSetDefinePermissionTip = defineTip; | |
| 570 | + this.onPermissionResponseListener = onPermissionResponseListener; | |
| 571 | + this.isShowRefuseDialog = isShowRefuseDialog; | |
| 572 | + this.userSetPermission = permissions; | |
| 573 | + if (checkPermissions(permissions)) { | |
| 574 | + if (onPermissionResponseListener != null) { | |
| 575 | + onPermissionResponseListener.onSuccess(permissions); | |
| 576 | + } | |
| 577 | + } else { | |
| 578 | + List<String> needPermissions = getDeniedPermissions(permissions); | |
| 579 | + ActivityCompat.requestPermissions(this, needPermissions.toArray(new String[needPermissions.size()]), DEFAULT_REQUEST_CODE_PERMISSION); | |
| 580 | + } | |
| 581 | + } | |
| 582 | + | |
| 533 | 583 | /** |
| 534 | 584 | * 请求权限 |
| 535 | 585 | * <p> |
| ... | ... | @@ -553,6 +603,21 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 553 | 603 | } |
| 554 | 604 | } |
| 555 | 605 | |
| 606 | + public void requestPermission(String defineTip, String[] permissions, boolean isShowRefuseDialog, OnPermissionResponseListener | |
| 607 | + onPermissionResponseListener) { | |
| 608 | + this.userSetDefinePermissionTip = defineTip; | |
| 609 | + this.onPermissionResponseListener = onPermissionResponseListener; | |
| 610 | + this.isShowRefuseDialog = isShowRefuseDialog; | |
| 611 | + if (checkPermissions(permissions)) { | |
| 612 | + if (onPermissionResponseListener != null) { | |
| 613 | + onPermissionResponseListener.onSuccess(permissions); | |
| 614 | + } | |
| 615 | + } else { | |
| 616 | + List<String> needPermissions = getDeniedPermissions(permissions); | |
| 617 | + ActivityCompat.requestPermissions(this, needPermissions.toArray(new String[needPermissions.size()]), DEFAULT_REQUEST_CODE_PERMISSION); | |
| 618 | + } | |
| 619 | + } | |
| 620 | + | |
| 556 | 621 | /** |
| 557 | 622 | * 自定义权限申请码 |
| 558 | 623 | * |
| ... | ... | @@ -575,6 +640,22 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 575 | 640 | } |
| 576 | 641 | } |
| 577 | 642 | |
| 643 | + public void requestPermission(int requestCode, boolean isDefineActivity, String[] | |
| 644 | + permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 645 | + this.onPermissionResponseListener = onPermissionResponseListener; | |
| 646 | + this.USER_SET_REQUEST_CODE_PERMISSION = requestCode; | |
| 647 | + this.isDefinePermissionCloseActivity = isDefineActivity; | |
| 648 | + this.isShowRefuseDialog = isShowRefuseDialog; | |
| 649 | + if (checkPermissions(permissions)) { | |
| 650 | + if (onPermissionResponseListener != null) { | |
| 651 | + onPermissionResponseListener.onSuccess(permissions); | |
| 652 | + } | |
| 653 | + } else { | |
| 654 | + List<String> needPermissions = getDeniedPermissions(permissions); | |
| 655 | + ActivityCompat.requestPermissions(this, needPermissions.toArray(new String[needPermissions.size()]), USER_SET_REQUEST_CODE_PERMISSION); | |
| 656 | + } | |
| 657 | + } | |
| 658 | + | |
| 578 | 659 | /** |
| 579 | 660 | * 自定义权限申请码 |
| 580 | 661 | * |
| ... | ... | @@ -596,6 +677,21 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 596 | 677 | } |
| 597 | 678 | } |
| 598 | 679 | |
| 680 | + public void requestPermission(int requestCode, String[] | |
| 681 | + permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 682 | + this.onPermissionResponseListener = onPermissionResponseListener; | |
| 683 | + this.USER_SET_REQUEST_CODE_PERMISSION = requestCode; | |
| 684 | + this.isShowRefuseDialog = isShowRefuseDialog; | |
| 685 | + if (checkPermissions(permissions)) { | |
| 686 | + if (onPermissionResponseListener != null) { | |
| 687 | + onPermissionResponseListener.onSuccess(permissions); | |
| 688 | + } | |
| 689 | + } else { | |
| 690 | + List<String> needPermissions = getDeniedPermissions(permissions); | |
| 691 | + ActivityCompat.requestPermissions(this, needPermissions.toArray(new String[needPermissions.size()]), USER_SET_REQUEST_CODE_PERMISSION); | |
| 692 | + } | |
| 693 | + } | |
| 694 | + | |
| 599 | 695 | /** |
| 600 | 696 | * 自定义权限申请码和提示信息 |
| 601 | 697 | * |
| ... | ... | @@ -619,6 +715,23 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 619 | 715 | } |
| 620 | 716 | } |
| 621 | 717 | |
| 718 | + public void requestPermission(int requestCode, String defineTip, boolean isDefineActivity, String[] | |
| 719 | + permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 720 | + this.onPermissionResponseListener = onPermissionResponseListener; | |
| 721 | + this.USER_SET_REQUEST_CODE_PERMISSION = requestCode; | |
| 722 | + this.isDefinePermissionCloseActivity = isDefineActivity; | |
| 723 | + this.userSetDefinePermissionTip = defineTip; | |
| 724 | + this.isShowRefuseDialog = isShowRefuseDialog; | |
| 725 | + if (checkPermissions(permissions)) { | |
| 726 | + if (onPermissionResponseListener != null) { | |
| 727 | + onPermissionResponseListener.onSuccess(permissions); | |
| 728 | + } | |
| 729 | + } else { | |
| 730 | + List<String> needPermissions = getDeniedPermissions(permissions); | |
| 731 | + ActivityCompat.requestPermissions(this, needPermissions.toArray(new String[needPermissions.size()]), USER_SET_REQUEST_CODE_PERMISSION); | |
| 732 | + } | |
| 733 | + } | |
| 734 | + | |
| 622 | 735 | /** |
| 623 | 736 | * 自定义权限申请码和提示信息 |
| 624 | 737 | * |
| ... | ... | @@ -641,6 +754,22 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 641 | 754 | } |
| 642 | 755 | } |
| 643 | 756 | |
| 757 | + public void requestPermission(int requestCode, String defineTip, String[] | |
| 758 | + permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 759 | + this.onPermissionResponseListener = onPermissionResponseListener; | |
| 760 | + this.USER_SET_REQUEST_CODE_PERMISSION = requestCode; | |
| 761 | + this.userSetDefinePermissionTip = defineTip; | |
| 762 | + this.isShowRefuseDialog = isShowRefuseDialog; | |
| 763 | + if (checkPermissions(permissions)) { | |
| 764 | + if (onPermissionResponseListener != null) { | |
| 765 | + onPermissionResponseListener.onSuccess(permissions); | |
| 766 | + } | |
| 767 | + } else { | |
| 768 | + List<String> needPermissions = getDeniedPermissions(permissions); | |
| 769 | + ActivityCompat.requestPermissions(this, needPermissions.toArray(new String[needPermissions.size()]), USER_SET_REQUEST_CODE_PERMISSION); | |
| 770 | + } | |
| 771 | + } | |
| 772 | + | |
| 644 | 773 | /** |
| 645 | 774 | * 自定义权限申请码和提示信息 |
| 646 | 775 | * 可传入string字符串 |
| ... | ... | @@ -665,6 +794,23 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 665 | 794 | } |
| 666 | 795 | } |
| 667 | 796 | |
| 797 | + public void requestPermission(int requestCode, @StringRes int defineTip, boolean isDefineActivity, String[] | |
| 798 | + permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 799 | + this.onPermissionResponseListener = onPermissionResponseListener; | |
| 800 | + this.USER_SET_REQUEST_CODE_PERMISSION = requestCode; | |
| 801 | + this.userSetDefinePermissionTip = getResources().getString(defineTip); | |
| 802 | + this.isDefinePermissionCloseActivity = isDefineActivity; | |
| 803 | + this.isShowRefuseDialog = isShowRefuseDialog; | |
| 804 | + if (checkPermissions(permissions)) { | |
| 805 | + if (onPermissionResponseListener != null) { | |
| 806 | + onPermissionResponseListener.onSuccess(permissions); | |
| 807 | + } | |
| 808 | + } else { | |
| 809 | + List<String> needPermissions = getDeniedPermissions(permissions); | |
| 810 | + ActivityCompat.requestPermissions(this, needPermissions.toArray(new String[needPermissions.size()]), USER_SET_REQUEST_CODE_PERMISSION); | |
| 811 | + } | |
| 812 | + } | |
| 813 | + | |
| 668 | 814 | /** |
| 669 | 815 | * 自定义权限申请码和提示信息 |
| 670 | 816 | * 可传入string字符串 |
| ... | ... | @@ -688,6 +834,22 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 688 | 834 | } |
| 689 | 835 | } |
| 690 | 836 | |
| 837 | + public void requestPermission(int requestCode, @StringRes int defineTip, String[] | |
| 838 | + permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 839 | + this.onPermissionResponseListener = onPermissionResponseListener; | |
| 840 | + this.USER_SET_REQUEST_CODE_PERMISSION = requestCode; | |
| 841 | + this.userSetDefinePermissionTip = getResources().getString(defineTip); | |
| 842 | + this.isShowRefuseDialog = isShowRefuseDialog; | |
| 843 | + if (checkPermissions(permissions)) { | |
| 844 | + if (onPermissionResponseListener != null) { | |
| 845 | + onPermissionResponseListener.onSuccess(permissions); | |
| 846 | + } | |
| 847 | + } else { | |
| 848 | + List<String> needPermissions = getDeniedPermissions(permissions); | |
| 849 | + ActivityCompat.requestPermissions(this, needPermissions.toArray(new String[needPermissions.size()]), USER_SET_REQUEST_CODE_PERMISSION); | |
| 850 | + } | |
| 851 | + } | |
| 852 | + | |
| 691 | 853 | /** |
| 692 | 854 | * 获取权限集中需要申请权限的列表 |
| 693 | 855 | * |
| ... | ... | @@ -717,17 +879,34 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 717 | 879 | public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, |
| 718 | 880 | @NonNull int[] grantResults) { |
| 719 | 881 | super.onRequestPermissionsResult(requestCode, permissions, grantResults); |
| 882 | + if (null != getSupportFragmentManager() && null != getSupportFragmentManager().getFragments()) { | |
| 883 | + for (Fragment fragment : getSupportFragmentManager().getFragments()) { | |
| 884 | + if (null != fragment) { | |
| 885 | + fragment.onRequestPermissionsResult(requestCode, permissions, grantResults); | |
| 886 | + } | |
| 887 | + } | |
| 888 | + } | |
| 720 | 889 | //默认权限申请码 |
| 721 | 890 | if (requestCode == DEFAULT_REQUEST_CODE_PERMISSION) { |
| 722 | 891 | if (verifyPermissions(grantResults)) { |
| 723 | 892 | if (onPermissionResponseListener != null) { |
| 724 | 893 | onPermissionResponseListener.onSuccess(permissions); |
| 725 | 894 | } |
| 895 | + //重置显示值 | |
| 896 | + resetPermissionConfig(); | |
| 726 | 897 | } else { |
| 727 | 898 | if (onPermissionResponseListener != null) { |
| 728 | 899 | onPermissionResponseListener.onFail(); |
| 729 | 900 | } |
| 730 | - showTipsDialog(); | |
| 901 | + if (isShowRefuseDialog) { | |
| 902 | + showTipsDialog(); | |
| 903 | + } else { | |
| 904 | + if (isDefinePermissionCloseActivity) { | |
| 905 | + finish(); | |
| 906 | + } | |
| 907 | + //重置显示值 | |
| 908 | + resetPermissionConfig(); | |
| 909 | + } | |
| 731 | 910 | } |
| 732 | 911 | } |
| 733 | 912 | //用户自定义权限申请码 |
| ... | ... | @@ -736,17 +915,36 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 736 | 915 | if (onPermissionResponseListener != null) { |
| 737 | 916 | onPermissionResponseListener.onSuccess(permissions); |
| 738 | 917 | } |
| 918 | + //重置显示值 | |
| 919 | + resetPermissionConfig(); | |
| 739 | 920 | } else { |
| 740 | 921 | if (onPermissionResponseListener != null) { |
| 741 | 922 | onPermissionResponseListener.onFail(); |
| 742 | 923 | } |
| 743 | - showTipsDialog(); | |
| 924 | + if (isShowRefuseDialog) { | |
| 925 | + showTipsDialog(); | |
| 926 | + } else { | |
| 927 | + if (isDefinePermissionCloseActivity) { | |
| 928 | + finish(); | |
| 929 | + } | |
| 930 | + //重置显示值 | |
| 931 | + resetPermissionConfig(); | |
| 932 | + } | |
| 744 | 933 | } |
| 745 | - //重置用户提示语 | |
| 746 | - userSetDefinePermissionTip = ""; | |
| 934 | + | |
| 747 | 935 | } |
| 748 | 936 | } |
| 749 | 937 | |
| 938 | + private void resetPermissionConfig() { | |
| 939 | + isShowRefuseDialog = true;//默认显示权限拒绝提示框 | |
| 940 | + isUserClickAllowBtn = false;//默认用户没有点击允许按钮 | |
| 941 | + USER_SET_REQUEST_CODE_PERMISSION = -0x00099;//默认用户没有自己设置权限请求码 | |
| 942 | + userSetDefinePermissionTip = "";//默认没有设置提示语 | |
| 943 | + isDefinePermissionCloseActivity = false;//默认不允许关闭当前窗口 | |
| 944 | + userSetPermission = null;//重置用户设置权限 | |
| 945 | + onPermissionResponseListener = null; | |
| 946 | + } | |
| 947 | + | |
| 750 | 948 | /** |
| 751 | 949 | * 检测所有的权限是否都已授权 |
| 752 | 950 | * |
| ... | ... | @@ -813,17 +1011,9 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 813 | 1011 | @Override |
| 814 | 1012 | public void onClick(DialogInterface dialog, int which) { |
| 815 | 1013 | if (isDefinePermissionCloseActivity) { |
| 816 | - isDefinePermissionCloseActivity = false; | |
| 817 | - //先判断当前是否是多个activity | |
| 818 | -// if (null != getSupportFragmentManager().getFragments() && getSupportFragmentManager().getFragments().size() > 1) { | |
| 819 | -// //移除最上层的 | |
| 820 | -// pop(); | |
| 821 | -// } else { | |
| 822 | 1014 | finish(); |
| 823 | -// } | |
| 824 | - | |
| 825 | 1015 | } |
| 826 | - | |
| 1016 | + resetPermissionConfig(); | |
| 827 | 1017 | } |
| 828 | 1018 | }) |
| 829 | 1019 | .setPositiveButton("去设置", new DialogInterface.OnClickListener() { |
| ... | ... | @@ -997,6 +1187,10 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 997 | 1187 | mDelegate.loadRootFragment(R.id.root_container, toFragment); |
| 998 | 1188 | } |
| 999 | 1189 | |
| 1190 | + public void loadRootFragment(@NonNull ISupportFragment toFragment, boolean allowAnimation) { | |
| 1191 | + mDelegate.loadRootFragment(R.id.root_container, toFragment, allowAnimation); | |
| 1192 | + } | |
| 1193 | + | |
| 1000 | 1194 | /** |
| 1001 | 1195 | * 加载根Fragment, 即Activity内的第一个Fragment 或 Fragment内的第一个子Fragment |
| 1002 | 1196 | * |
| ... | ... | @@ -1007,6 +1201,16 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 1007 | 1201 | mDelegate.loadRootFragment(containerId, toFragment); |
| 1008 | 1202 | } |
| 1009 | 1203 | |
| 1204 | + /** | |
| 1205 | + * 加载根Fragment, 即Activity内的第一个Fragment 或 Fragment内的第一个子Fragment | |
| 1206 | + * | |
| 1207 | + * @param containerId 容器id | |
| 1208 | + * @param toFragment 目标Fragment | |
| 1209 | + */ | |
| 1210 | + public void loadRootFragment(int containerId, @NonNull ISupportFragment toFragment, boolean allowAnimation) { | |
| 1211 | + mDelegate.loadRootFragment(containerId, toFragment, allowAnimation); | |
| 1212 | + } | |
| 1213 | + | |
| 1010 | 1214 | public void loadRootFragment(int containerId, ISupportFragment toFragment, boolean addToBackStack, boolean allowAnimation) { |
| 1011 | 1215 | mDelegate.loadRootFragment(containerId, toFragment, addToBackStack, allowAnimation); |
| 1012 | 1216 | } |
| ... | ... | @@ -1019,6 +1223,13 @@ public abstract class BaseActivity<V extends BaseView, P extends BasePresenter<V |
| 1019 | 1223 | } |
| 1020 | 1224 | |
| 1021 | 1225 | /** |
| 1226 | + * 加载多个同级根Fragment,类似Wechat, QQ主页的场景 | |
| 1227 | + */ | |
| 1228 | + public void loadMultipleRootFragment(int showPosition, ISupportFragment... toFragments) { | |
| 1229 | + mDelegate.loadMultipleRootFragment(R.id.root_container, showPosition, toFragments); | |
| 1230 | + } | |
| 1231 | + | |
| 1232 | + /** | |
| 1022 | 1233 | * show一个Fragment,hide其他同栈所有Fragment |
| 1023 | 1234 | * 使用该方法时,要确保同级栈内无多余的Fragment,(只有通过loadMultipleRootFragment()载入的Fragment) |
| 1024 | 1235 | * <p> | ... | ... |
core/base/src/main/java/com/cnlive/core/libs/base/frame/fragment/BaseFragment.java
| ... | ... | @@ -268,51 +268,95 @@ public abstract class BaseFragment<V extends BaseView, P extends BasePresenter<V |
| 268 | 268 | me.requestPermission(permissions, onPermissionResponseListener); |
| 269 | 269 | } |
| 270 | 270 | |
| 271 | + public void requestPermission(String[] permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 272 | + me.requestPermission(permissions, isShowRefuseDialog, onPermissionResponseListener); | |
| 273 | + } | |
| 274 | + | |
| 271 | 275 | //权限申请 |
| 272 | 276 | public void requestPermission(boolean isDefineActivity, String[] permissions, OnPermissionResponseListener onPermissionResponseListener) { |
| 273 | 277 | me.requestPermission(isDefineActivity, permissions, onPermissionResponseListener); |
| 274 | 278 | } |
| 275 | 279 | |
| 280 | + public void requestPermission(boolean isDefineActivity, String[] permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 281 | + me.requestPermission(isDefineActivity, permissions, isShowRefuseDialog, onPermissionResponseListener); | |
| 282 | + } | |
| 283 | + | |
| 276 | 284 | //权限申请 |
| 277 | 285 | public void requestPermission(int requestCode, String[] permissions, OnPermissionResponseListener onPermissionResponseListener) { |
| 278 | 286 | me.requestPermission(requestCode, permissions, onPermissionResponseListener); |
| 279 | 287 | } |
| 280 | 288 | |
| 289 | + public void requestPermission(int requestCode, String[] permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 290 | + me.requestPermission(requestCode, permissions, isShowRefuseDialog, onPermissionResponseListener); | |
| 291 | + } | |
| 292 | + | |
| 281 | 293 | //权限申请 |
| 282 | 294 | public void requestPermission(int requestCode, boolean isDefineActivity, String[] permissions, OnPermissionResponseListener onPermissionResponseListener) { |
| 283 | 295 | me.requestPermission(requestCode, isDefineActivity, permissions, onPermissionResponseListener); |
| 284 | 296 | } |
| 285 | 297 | |
| 298 | + public void requestPermission(int requestCode, boolean isDefineActivity, String[] permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 299 | + me.requestPermission(requestCode, isDefineActivity, permissions, isShowRefuseDialog, onPermissionResponseListener); | |
| 300 | + } | |
| 301 | + | |
| 286 | 302 | //权限申请 |
| 287 | 303 | public void requestPermission(int requestCode, String defineTip, String[] permissions, OnPermissionResponseListener onPermissionResponseListener) { |
| 288 | 304 | me.requestPermission(requestCode, defineTip, permissions, onPermissionResponseListener); |
| 289 | 305 | } |
| 290 | 306 | |
| 307 | + public void requestPermission(int requestCode, String defineTip, String[] permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 308 | + me.requestPermission(requestCode, defineTip, permissions, isShowRefuseDialog, onPermissionResponseListener); | |
| 309 | + } | |
| 310 | + | |
| 291 | 311 | //权限申请 |
| 292 | 312 | public void requestPermission(int requestCode, String defineTip, boolean isDefineActivity, String[] permissions, OnPermissionResponseListener onPermissionResponseListener) { |
| 293 | 313 | me.requestPermission(requestCode, defineTip, isDefineActivity, permissions, onPermissionResponseListener); |
| 294 | 314 | } |
| 295 | 315 | |
| 316 | + public void requestPermission(int requestCode, String defineTip, boolean isDefineActivity, String[] permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 317 | + me.requestPermission(requestCode, defineTip, isDefineActivity, permissions, isShowRefuseDialog, onPermissionResponseListener); | |
| 318 | + } | |
| 319 | + | |
| 296 | 320 | public void requestPermission(String defineTip, String[] permissions, OnPermissionResponseListener |
| 297 | 321 | onPermissionResponseListener) { |
| 298 | 322 | me.requestPermission(defineTip, permissions, onPermissionResponseListener); |
| 299 | 323 | } |
| 300 | 324 | |
| 325 | + public void requestPermission(String defineTip, String[] permissions, boolean isShowRefuseDialog, OnPermissionResponseListener | |
| 326 | + onPermissionResponseListener) { | |
| 327 | + me.requestPermission(defineTip, permissions, isShowRefuseDialog, onPermissionResponseListener); | |
| 328 | + } | |
| 329 | + | |
| 301 | 330 | public void requestPermission(String defineTip, boolean isDefineActivity, String[] permissions, OnPermissionResponseListener |
| 302 | 331 | onPermissionResponseListener) { |
| 303 | 332 | me.requestPermission(defineTip, isDefineActivity, permissions, onPermissionResponseListener); |
| 304 | 333 | } |
| 305 | 334 | |
| 335 | + public void requestPermission(String defineTip, boolean isDefineActivity, String[] permissions, boolean isShowRefuseDialog, OnPermissionResponseListener | |
| 336 | + onPermissionResponseListener) { | |
| 337 | + me.requestPermission(defineTip, isDefineActivity, permissions, isShowRefuseDialog, onPermissionResponseListener); | |
| 338 | + } | |
| 339 | + | |
| 306 | 340 | public void requestPermission(int requestCode, @StringRes int defineTip, String[] |
| 307 | 341 | permissions, OnPermissionResponseListener onPermissionResponseListener) { |
| 308 | 342 | me.requestPermission(requestCode, defineTip, permissions, onPermissionResponseListener); |
| 309 | 343 | } |
| 310 | 344 | |
| 345 | + public void requestPermission(int requestCode, @StringRes int defineTip, String[] | |
| 346 | + permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 347 | + me.requestPermission(requestCode, defineTip, permissions, isShowRefuseDialog, onPermissionResponseListener); | |
| 348 | + } | |
| 349 | + | |
| 311 | 350 | public void requestPermission(int requestCode, @StringRes int defineTip, boolean isDefineActivity, String[] |
| 312 | 351 | permissions, OnPermissionResponseListener onPermissionResponseListener) { |
| 313 | 352 | me.requestPermission(requestCode, defineTip, isDefineActivity, permissions, onPermissionResponseListener); |
| 314 | 353 | } |
| 315 | 354 | |
| 355 | + public void requestPermission(int requestCode, @StringRes int defineTip, boolean isDefineActivity, String[] | |
| 356 | + permissions, boolean isShowRefuseDialog, OnPermissionResponseListener onPermissionResponseListener) { | |
| 357 | + me.requestPermission(requestCode, defineTip, isDefineActivity, permissions, isShowRefuseDialog, onPermissionResponseListener); | |
| 358 | + } | |
| 359 | + | |
| 316 | 360 | //多权限检查 |
| 317 | 361 | public boolean checkPermissions(String[] permissions) { |
| 318 | 362 | return me.checkPermissions(permissions); | ... | ... |
core/base/src/main/java/com/me/yokeyword/fragmentation/SupportActivityDelegate.java
| ... | ... | @@ -192,6 +192,10 @@ public class SupportActivityDelegate { |
| 192 | 192 | loadRootFragment(containerId, toFragment, true, false); |
| 193 | 193 | } |
| 194 | 194 | |
| 195 | + public void loadRootFragment(int containerId, ISupportFragment toFragment, boolean allowAnimation) { | |
| 196 | + loadRootFragment(containerId, toFragment, true, allowAnimation); | |
| 197 | + } | |
| 198 | + | |
| 195 | 199 | public void loadRootFragment(int containerId, ISupportFragment toFragment, boolean addToBackStack, boolean allowAnimation) { |
| 196 | 200 | mTransactionDelegate.loadRootTransaction(getSupportFragmentManager(), containerId, toFragment, addToBackStack, allowAnimation); |
| 197 | 201 | } | ... | ... |
core/network/build.gradle
| ... | ... | @@ -31,4 +31,6 @@ dependencies { |
| 31 | 31 | testImplementation 'junit:junit:4.12' |
| 32 | 32 | androidTestImplementation 'androidx.test.ext:junit:1.1.1' |
| 33 | 33 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' |
| 34 | + //七牛上传 | |
| 35 | + implementation "com.qiniu:qiniu-android-sdk:$rootProject.qiniuAndroidSdk" | |
| 34 | 36 | } | ... | ... |
core/network/src/main/java/com/cnlive/core/network/NetBuilder.java
| 1 | 1 | package com.cnlive.core.network; |
| 2 | 2 | |
| 3 | 3 | |
| 4 | +import com.cnlive.core.network.interceptor.NetPPEncryptInterceptor; | |
| 5 | +import com.cnlive.core.network.interceptor.NetPPPayEncryptInterceptor; | |
| 4 | 6 | import com.cnlive.core.network.interceptor.SignEncryptInterceptor; |
| 5 | 7 | import com.cnlive.core.network.request.HttpConfig; |
| 6 | 8 | |
| ... | ... | @@ -65,6 +67,12 @@ public class NetBuilder<NetService> { |
| 65 | 67 | if (interceptor instanceof SignEncryptInterceptor) { |
| 66 | 68 | isAdd = true; |
| 67 | 69 | break; |
| 70 | + } else if (interceptor instanceof NetPPEncryptInterceptor) { | |
| 71 | + isAdd = true; | |
| 72 | + break; | |
| 73 | + } else if (interceptor instanceof NetPPPayEncryptInterceptor) { | |
| 74 | + isAdd = true; | |
| 75 | + break; | |
| 68 | 76 | } |
| 69 | 77 | } |
| 70 | 78 | if (!isAdd) { | ... | ... |
core/network/src/main/java/com/cnlive/core/network/interceptor/DESEncryptInterceptor.java
| 1 | 1 | package com.cnlive.core.network.interceptor; |
| 2 | 2 | |
| 3 | 3 | |
| 4 | -import com.cnlive.core.network.util.SignUtil; | |
| 5 | 4 | import com.cnlive.core.libs.base.application.AppConfig; |
| 5 | +import com.cnlive.core.network.util.SignUtil; | |
| 6 | 6 | import com.cnlive.libs.encipher.CNLiveEncipher; |
| 7 | 7 | |
| 8 | 8 | import java.io.IOException; | ... | ... |
core/network/src/main/java/com/cnlive/core/network/interceptor/NetPPPayEncryptInterceptor.java
| ... | ... | @@ -6,99 +6,97 @@ import com.cnlive.core.network.util.SignUtil; |
| 6 | 6 | |
| 7 | 7 | import java.io.IOException; |
| 8 | 8 | import java.util.HashMap; |
| 9 | +import java.util.Iterator; | |
| 9 | 10 | import java.util.Map; |
| 10 | 11 | |
| 11 | 12 | import okhttp3.FormBody; |
| 12 | -import okhttp3.HttpUrl; | |
| 13 | 13 | import okhttp3.Interceptor; |
| 14 | 14 | import okhttp3.MultipartBody; |
| 15 | 15 | import okhttp3.Request; |
| 16 | -import okhttp3.RequestBody; | |
| 17 | 16 | import okhttp3.Response; |
| 18 | 17 | |
| 19 | 18 | public class NetPPPayEncryptInterceptor implements Interceptor { |
| 20 | - @Override | |
| 21 | - public Response intercept(Chain chain) throws IOException { | |
| 22 | - Request request = chain.request(); | |
| 23 | - | |
| 24 | - if (request.body() instanceof FormBody) { | |
| 25 | - //处理方式 1 | |
| 26 | - Map<String, String> parameter = new HashMap<>(); | |
| 27 | - | |
| 28 | - FormBody body = ((FormBody) request.body()); | |
| 29 | - FormBody.Builder builder = new FormBody.Builder(); | |
| 19 | + public NetPPPayEncryptInterceptor() { | |
| 20 | + } | |
| 30 | 21 | |
| 31 | - for (int i = 0; i < body.size(); i++) { | |
| 32 | - parameter.put(body.name(i), body.value(i)); | |
| 22 | + public Response intercept(Chain var1) throws IOException { | |
| 23 | + Request var2 = var1.request(); | |
| 24 | + Map.Entry var7; | |
| 25 | + FormBody.Builder var11; | |
| 26 | + Iterator var13; | |
| 27 | + FormBody var14; | |
| 28 | + Request var15; | |
| 29 | + if (var2.body() instanceof FormBody) { | |
| 30 | + HashMap var8 = new HashMap(); | |
| 31 | + FormBody var9 = (FormBody)var2.body(); | |
| 32 | + var11 = new FormBody.Builder(); | |
| 33 | + | |
| 34 | + for(int var16 = 0; var16 < var9.size(); ++var16) { | |
| 35 | + var8.put(var9.name(var16), var9.value(var16)); | |
| 33 | 36 | } |
| 34 | 37 | |
| 35 | - for (Map.Entry<String, String> entity : SignUtil.getNetPPPaySignString(parameter).entrySet()) { | |
| 36 | - builder.addEncoded(entity.getKey(), entity.getValue()); | |
| 37 | - } | |
| 38 | + var13 = SignUtil.getNetPPPaySignString(var8).entrySet().iterator(); | |
| 38 | 39 | |
| 39 | - RequestBody newBody = builder.build(); | |
| 40 | + while(var13.hasNext()) { | |
| 41 | + var7 = (Map.Entry)var13.next(); | |
| 42 | + var11.addEncoded((String)var7.getKey(), (String)var7.getValue()); | |
| 43 | + } | |
| 40 | 44 | |
| 41 | - Request newRequest = request.newBuilder() | |
| 42 | - .method(request.method(), newBody) | |
| 43 | - .url(request.url()) | |
| 44 | - .build(); | |
| 45 | - return chain.proceed(newRequest); | |
| 46 | - } else if (request.body() instanceof MultipartBody) { | |
| 47 | - //处理方式 2 (暂时不签名) | |
| 45 | + var14 = var11.build(); | |
| 46 | + var15 = var2.newBuilder().method(var2.method(), var14).url(var2.url()).build(); | |
| 47 | + return var1.proceed(var15); | |
| 48 | + } else if (var2.body() instanceof MultipartBody) { | |
| 49 | + return var1.proceed(var2); | |
| 48 | 50 | } else { |
| 49 | - if ("POST".equals(request.method())) { | |
| 50 | - //处理方式 3 | |
| 51 | - HttpUrl.Builder authorizedUrlBuilder = request.url().newBuilder(); | |
| 52 | - | |
| 53 | - Map<String, String> parameter = new HashMap<>(); | |
| 54 | - | |
| 55 | - for (String key : request.url().queryParameterNames()) { | |
| 56 | - parameter.put(key, request.url().queryParameter(key)); | |
| 57 | - authorizedUrlBuilder.removeAllQueryParameters(key); | |
| 51 | + okhttp3.HttpUrl.Builder var3; | |
| 52 | + HashMap var4; | |
| 53 | + Iterator var5; | |
| 54 | + String var6; | |
| 55 | + if ("POST".equals(var2.method())) { | |
| 56 | + var3 = var2.url().newBuilder(); | |
| 57 | + var4 = new HashMap(); | |
| 58 | + var5 = var2.url().queryParameterNames().iterator(); | |
| 59 | + | |
| 60 | + while(var5.hasNext()) { | |
| 61 | + var6 = (String)var5.next(); | |
| 62 | + var4.put(var6, var2.url().queryParameter(var6)); | |
| 63 | + var3.removeAllQueryParameters(var6); | |
| 58 | 64 | } |
| 59 | 65 | |
| 60 | - FormBody.Builder builder = new FormBody.Builder(); | |
| 66 | + var11 = new FormBody.Builder(); | |
| 67 | + var13 = SignUtil.getNetPPPaySignString(var4).entrySet().iterator(); | |
| 61 | 68 | |
| 62 | - for (Map.Entry<String, String> entity : SignUtil.getNetPPPaySignString(parameter).entrySet()) { | |
| 63 | - builder.add(entity.getKey(), entity.getValue()); | |
| 69 | + while(var13.hasNext()) { | |
| 70 | + var7 = (Map.Entry)var13.next(); | |
| 71 | + var11.add((String)var7.getKey(), (String)var7.getValue()); | |
| 64 | 72 | } |
| 65 | 73 | |
| 66 | - RequestBody newBody = builder.build(); | |
| 67 | - | |
| 68 | - Request newRequest = request.newBuilder() | |
| 69 | - .method(request.method(), newBody) | |
| 70 | - .url(authorizedUrlBuilder.build()) | |
| 71 | - .build(); | |
| 72 | - return chain.proceed(newRequest); | |
| 73 | - }else{ | |
| 74 | - //处理方式 3 | |
| 75 | - HttpUrl.Builder authorizedUrlBuilder = request.url().newBuilder(); | |
| 76 | - | |
| 77 | - Map<String, String> parameter = new HashMap<>(); | |
| 78 | - | |
| 79 | - for (String key : request.url().queryParameterNames()) { | |
| 80 | - parameter.put(key, request.url().queryParameter(key)); | |
| 81 | - authorizedUrlBuilder.removeAllQueryParameters(key); | |
| 74 | + var14 = var11.build(); | |
| 75 | + var15 = var2.newBuilder().method(var2.method(), var14).url(var3.build()).build(); | |
| 76 | + return var1.proceed(var15); | |
| 77 | + } else { | |
| 78 | + var3 = var2.url().newBuilder(); | |
| 79 | + var4 = new HashMap(); | |
| 80 | + var5 = var2.url().queryParameterNames().iterator(); | |
| 81 | + | |
| 82 | + while(var5.hasNext()) { | |
| 83 | + var6 = (String)var5.next(); | |
| 84 | + var4.put(var6, var2.url().queryParameter(var6)); | |
| 85 | + var3.removeAllQueryParameters(var6); | |
| 82 | 86 | } |
| 83 | 87 | |
| 84 | - for (Map.Entry<String, String> entity : SignUtil.getNetPPPaySignString(parameter).entrySet()) { | |
| 85 | - authorizedUrlBuilder.addQueryParameter(entity.getKey(), entity.getValue()); | |
| 86 | - } | |
| 88 | + var5 = SignUtil.getNetPPPaySignString(var4).entrySet().iterator(); | |
| 87 | 89 | |
| 88 | - authorizedUrlBuilder.scheme(request.url().scheme()); | |
| 89 | - authorizedUrlBuilder.host(request.url().host()); | |
| 90 | + while(var5.hasNext()) { | |
| 91 | + Map.Entry var12 = (Map.Entry)var5.next(); | |
| 92 | + var3.addQueryParameter((String)var12.getKey(), (String)var12.getValue()); | |
| 93 | + } | |
| 90 | 94 | |
| 91 | - Request newRequest = request.newBuilder() | |
| 92 | - .method(request.method(), request.body()) | |
| 93 | - .url(authorizedUrlBuilder.build()) | |
| 94 | - .build(); | |
| 95 | - return chain.proceed(newRequest); | |
| 95 | + var3.scheme(var2.url().scheme()); | |
| 96 | + var3.host(var2.url().host()); | |
| 97 | + Request var10 = var2.newBuilder().method(var2.method(), var2.body()).url(var3.build()).build(); | |
| 98 | + return var1.proceed(var10); | |
| 96 | 99 | } |
| 97 | 100 | } |
| 98 | - | |
| 99 | - | |
| 100 | - return chain.proceed(request); | |
| 101 | 101 | } |
| 102 | - | |
| 103 | - | |
| 104 | 102 | } |
| 105 | 103 | \ No newline at end of file | ... | ... |
module/pedometer/src/main/java/com/cnlive/moudle/pedometer/upload/UploadLogic.java renamed to core/network/src/main/java/com/cnlive/core/network/upload/UploadLogic.java
module/pedometer/src/main/java/com/cnlive/moudle/pedometer/upload/UploadProvider.java renamed to core/network/src/main/java/com/cnlive/core/network/upload/UploadProvider.java
| 1 | -package com.cnlive.moudle.pedometer.upload; | |
| 1 | +package com.cnlive.core.network.upload; | |
| 2 | 2 | |
| 3 | 3 | import android.app.Activity; |
| 4 | 4 | import android.content.Context; |
| ... | ... | @@ -8,17 +8,17 @@ import android.text.TextUtils; |
| 8 | 8 | |
| 9 | 9 | import com.cnlive.core.libs.base.application.AppConfig; |
| 10 | 10 | import com.cnlive.core.libs.base.util.AlertUtil; |
| 11 | +import com.cnlive.core.libs.base.util.FileTypeUtil; | |
| 11 | 12 | import com.cnlive.core.libs.base.util.StringUtils; |
| 12 | 13 | import com.cnlive.core.network.model.BaseResult; |
| 13 | 14 | import com.cnlive.core.network.HttpConn; |
| 14 | 15 | import com.cnlive.core.network.NetCallBack; |
| 15 | 16 | import com.cnlive.core.network.api.ApiBaseServiceOpen; |
| 16 | 17 | import com.cnlive.core.network.request.BaseRequest; |
| 17 | -import com.cnlive.media.picker.utils.FileTypeUtil; | |
| 18 | 18 | import com.cnlive.core.network.model.UploadAuthData; |
| 19 | -import com.cnlive.moudle.pedometer.upload.interfaces.ProgressCallback; | |
| 20 | -import com.cnlive.moudle.pedometer.utils.FileUtil; | |
| 21 | -import com.cnlive.moudle.pedometer.utils.IDUtils; | |
| 19 | +import com.cnlive.core.network.upload.interfaces.ProgressCallback; | |
| 20 | +import com.cnlive.core.network.upload.utils.FileUtil; | |
| 21 | +import com.cnlive.core.network.upload.utils.IDUtils; | |
| 22 | 22 | import com.qiniu.android.http.ResponseInfo; |
| 23 | 23 | import com.qiniu.android.storage.UpCompletionHandler; |
| 24 | 24 | import com.qiniu.android.storage.UpProgressHandler; | ... | ... |
module/pedometer/src/main/java/com/cnlive/moudle/pedometer/upload/interfaces/ProgressCallback.java renamed to core/network/src/main/java/com/cnlive/core/network/upload/interfaces/ProgressCallback.java
module/pedometer/src/main/java/com/cnlive/moudle/pedometer/upload/utils/FileUtil.java renamed to core/network/src/main/java/com/cnlive/core/network/upload/utils/FileUtil.java
module/pedometer/src/main/java/com/cnlive/moudle/pedometer/upload/utils/IDUtils.java renamed to core/network/src/main/java/com/cnlive/core/network/upload/utils/IDUtils.java
module/pedometer/src/main/java/com/cnlive/moudle/pedometer/upload/utils/MD5.java renamed to core/network/src/main/java/com/cnlive/core/network/upload/utils/MD5.java
module/pedometer/src/main/java/com/cnlive/moudle/pedometer/upload/utils/MD5Utils.java renamed to core/network/src/main/java/com/cnlive/core/network/upload/utils/MD5Utils.java
module/pedometer/build.gradle
| ... | ... | @@ -81,8 +81,6 @@ dependencies { |
| 81 | 81 | //加载动画 |
| 82 | 82 | implementation "com.wang.avi:library:$rootProject.avi" |
| 83 | 83 | // implementation "com.cnlive.libs:video_qiniu:$rootProject.libVideoQiniu" |
| 84 | - //七牛上传 | |
| 85 | - implementation "com.qiniu:qiniu-android-sdk:$rootProject.qiniuAndroidSdk" | |
| 86 | 84 | implementation("com.cnlive:lib_upload:$rootProject.libUpload") { |
| 87 | 85 | exclude group: 'com.android.support' |
| 88 | 86 | exclude group: 'com.cnlive' | ... | ... |
module/pedometer/src/main/java/com/cnlive/moudle/collectionTrace/frame/view/CollRunningFinishFragmentView.java
| ... | ... | @@ -41,7 +41,7 @@ import com.cnlive.moudle.collectionTrace.ui.fragment.CollRunningFinishFragment; |
| 41 | 41 | import com.cnlive.moudle.collectionTrace.utils.CollStepUtil; |
| 42 | 42 | import com.cnlive.moudle.pedometer.commonInfo.CommonInfo; |
| 43 | 43 | import com.cnlive.moudle.pedometer.sql.entity.CollUserStepEntity; |
| 44 | -import com.cnlive.moudle.pedometer.upload.UploadLogic; | |
| 44 | +import com.cnlive.core.network.upload.UploadLogic; | |
| 45 | 45 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; |
| 46 | 46 | import com.cnlive.moudle.pedometer.utils.ScreenUtil; |
| 47 | 47 | import com.cnlive.moudle.pedometer.utils.TimeUtil; | ... | ... |