导航菜单

页面标题

页面副标题

新暖心缘 v8.1.1 - CheckPermissionActivity.java 源代码

正在查看: 新暖心缘 v8.1.1 应用的 CheckPermissionActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.luanxingyuan.app.util.permission;

import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import androidx.appcompat.app.AppCompatActivity;
import com.faceunity.wrapper.faceunity;
import com.luanxingyuan.app.util.permission.PermissionUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import q.c;

public class CheckPermissionActivity extends AppCompatActivity {
    private static PermissionUtil.OnPermissionListener transferOnPermissionListener;
    private PermissionUtil.OnPermissionListener mOnPermissionListener;
    private int requestCode;

    public static List<String> getDeniedPermissions(Context context, String[] strArr) {
        ArrayList arrayList = new ArrayList();
        for (String str : strArr) {
            if (c.a(context, str) == -1) {
                arrayList.add(str);
            }
        }
        return arrayList;
    }

    private void getIntentData() {
        this.mOnPermissionListener = transferOnPermissionListener;
        transferOnPermissionListener = null;
        String[] stringArrayExtra = getIntent().getStringArrayExtra("permissions");
        if (stringArrayExtra == null || stringArrayExtra.length <= 0) {
            throw new NullPointerException("申请的权限列表不能为空!");
        }
        requestPermissions(stringArrayExtra);
    }

    @TargetApi(23)
    private void requestPermissions(String[] strArr) {
        this.requestCode = new Random().nextInt(1000);
        List<String> deniedPermissions = getDeniedPermissions(this, strArr);
        if (deniedPermissions.size() > 0) {
            requestPermissions((String[]) deniedPermissions.toArray(new String[deniedPermissions.size()]), this.requestCode);
            return;
        }
        PermissionUtil.OnPermissionListener onPermissionListener = this.mOnPermissionListener;
        if (onPermissionListener != null) {
            onPermissionListener.onPermissionGranted();
        }
        if (isFinishing()) {
            return;
        }
        finish();
    }

    public static void start(Context context, String[] strArr, PermissionUtil.OnPermissionListener onPermissionListener) {
        Intent intent = new Intent(context, (Class<?>) CheckPermissionActivity.class);
        intent.putExtra("permissions", strArr);
        intent.addFlags(faceunity.FUAITYPE_HUMAN_PROCESSOR_DETECT);
        context.startActivity(intent);
        transferOnPermissionListener = onPermissionListener;
    }

    private static boolean verifyPermissions(int[] iArr) {
        for (int i8 : iArr) {
            if (i8 != 0) {
                return false;
            }
        }
        return true;
    }

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        Window window = getWindow();
        window.setGravity(51);
        WindowManager.LayoutParams attributes = window.getAttributes();
        attributes.x = 0;
        attributes.y = 0;
        attributes.height = 1;
        attributes.width = 1;
        window.setAttributes(attributes);
        getIntentData();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        this.mOnPermissionListener = null;
    }

    @Override
    public void onRequestPermissionsResult(int i8, String[] strArr, int[] iArr) {
        super.onRequestPermissionsResult(i8, strArr, iArr);
        requestPermissionsResult(i8, iArr);
    }

    public void requestPermissionsResult(int i8, int[] iArr) {
        if (i8 != -1) {
            if (verifyPermissions(iArr)) {
                PermissionUtil.OnPermissionListener onPermissionListener = this.mOnPermissionListener;
                if (onPermissionListener != null) {
                    onPermissionListener.onPermissionGranted();
                }
            } else {
                PermissionUtil.OnPermissionListener onPermissionListener2 = this.mOnPermissionListener;
                if (onPermissionListener2 != null) {
                    onPermissionListener2.onPermissionDenied();
                }
            }
        }
        finish();
    }
}