package com.benq.platform.utils;

import V0.a;
import android.util.Log;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import kotlin.jvm.internal.l;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import w1.f;

/* JADX INFO: loaded from: classes.dex */
public final class FeatureUtils {
    private static final String ELEMENT_CHILD = "feature";
    private static final String ELEMENT_ROOT = "permissions";
    private static final String FEATURE_FILE_NAME = "android.hardware.dynamic.modify.xml";
    private static final String FEATURE_FILE_PATH = "/data/user_permission/android.hardware.dynamic.modify.xml";
    public static final FeatureUtils INSTANCE = new FeatureUtils();
    private static final String TAG = "FeatureUtils";

    private FeatureUtils() {
    }

    private final void addElements(Document document, String str, String str2, String str3, String str4) {
        addElements(document, str, str2, str3, str4, null, null);
    }

    private final Document loadOrCreateXML(String str, String str2) {
        File file;
        DocumentBuilder documentBuilderNewDocumentBuilder;
        Log.d(TAG, "loadOrCreateXML");
        Document documentNewDocument = null;
        try {
            file = new File(str);
            documentBuilderNewDocumentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        } catch (Exception e2) {
            e2.printStackTrace();
            Log.d(TAG, "loadOrCreateXML: " + e2);
        }
        if (file.exists()) {
            Log.d(TAG, "加载现有的XML文件");
            return documentBuilderNewDocumentBuilder.parse(file);
        }
        Log.d(TAG, "创建新的XML文件");
        documentNewDocument = documentBuilderNewDocumentBuilder.newDocument();
        Element elementCreateElement = documentNewDocument.createElement(str2);
        l.d(elementCreateElement, "createElement(...)");
        documentNewDocument.appendChild(elementCreateElement);
        return documentNewDocument;
    }

    private final void saveXML(Document document, String str) {
        try {
            Transformer transformerNewTransformer = TransformerFactory.newInstance().newTransformer();
            transformerNewTransformer.setOutputProperty("indent", "yes");
            transformerNewTransformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
            transformerNewTransformer.transform(new DOMSource(document), new StreamResult(new File(str)));
            Log.d(TAG, "XML文件保存成功");
        } catch (Exception e2) {
            e2.printStackTrace();
        }
    }

    private final String wrapperUsbFilePath(String str) {
        if (V0.a.b().e().isEmpty()) {
            return null;
        }
        String str2 = ((a.n) V0.a.b().e().get(0)).f1773a;
        Log.d(TAG, "usbRootPath: " + str2);
        return str2 + "/" + str;
    }

    public final boolean checkFeature(String file) {
        l.e(file, "file");
        Document documentLoadOrCreateXML = loadOrCreateXML(file, ELEMENT_ROOT);
        if (documentLoadOrCreateXML == null) {
            Log.e(TAG, "document is null");
            return false;
        }
        NodeList elementsByTagName = documentLoadOrCreateXML.getDocumentElement().getElementsByTagName(ELEMENT_CHILD);
        int length = elementsByTagName.getLength();
        for (int i2 = 0; i2 < length; i2++) {
            Node nodeItem = elementsByTagName.item(i2);
            if (nodeItem instanceof Element) {
                Log.d(TAG, "featureName: " + ((Element) nodeItem).getAttribute("name"));
            }
        }
        return true;
    }

    public final boolean customFeature(String file) {
        l.e(file, "file");
        try {
            File file2 = new File(file);
            File file3 = new File(FEATURE_FILE_PATH);
            if (file3.exists()) {
                file3.delete();
            }
            f.b(file2, file3, false, 0, 6, null);
            return true;
        } catch (Exception e2) {
            e2.printStackTrace();
            return false;
        }
    }

    public final String findCustomFeatureFile() {
        String strWrapperUsbFilePath;
        if (V0.a.b().e().isEmpty() || (strWrapperUsbFilePath = wrapperUsbFilePath(FEATURE_FILE_NAME)) == null) {
            return null;
        }
        File file = new File(strWrapperUsbFilePath);
        if (file.exists()) {
            return file.getAbsolutePath();
        }
        return null;
    }

    public final void initFeature() {
        Document documentLoadOrCreateXML = loadOrCreateXML(FEATURE_FILE_PATH, ELEMENT_ROOT);
        if (documentLoadOrCreateXML == null) {
            Log.e(TAG, "document is null");
            return;
        }
        addElements(documentLoadOrCreateXML, ELEMENT_ROOT, ELEMENT_CHILD, "name", "android.hardware.camera");
        addElements(documentLoadOrCreateXML, ELEMENT_ROOT, ELEMENT_CHILD, "name", "android.hardware.camera.autofocus");
        addElements(documentLoadOrCreateXML, ELEMENT_ROOT, ELEMENT_CHILD, "name", "android.hardware.camera.flash");
        addElements(documentLoadOrCreateXML, ELEMENT_ROOT, ELEMENT_CHILD, "name", "android.hardware.location.gps");
        saveXML(documentLoadOrCreateXML, FEATURE_FILE_PATH);
    }

    public final boolean isFeatureEnabled() {
        return new File(FEATURE_FILE_PATH).exists();
    }

    public final void setFeatureEnabled(boolean z2) {
        Log.d(TAG, "setFeatureEnabled: " + z2);
        if (z2) {
            initFeature();
            return;
        }
        File file = new File(FEATURE_FILE_PATH);
        if (file.exists()) {
            Log.d(TAG, "setFeatureEnabled: delete file " + file.delete());
        }
    }

    private final void addElements(Document document, String str, String str2, String str3, String str4, String str5, String str6) {
        Element documentElement = document.getDocumentElement();
        Element elementCreateElement = document.createElement(str2);
        elementCreateElement.setAttribute(str3, str4);
        if (str5 != null && str6 != null) {
            elementCreateElement.setAttribute(str5, str6);
        }
        documentElement.appendChild(elementCreateElement);
    }
}
