Info Call to External Storage API

Description

List of all external storage API calls. Insecure storage of sensitive information by setting insecure permissions or storing data without encryption might expose this information to an attacker.

Recommendation

This entry is informative, no recommendations applicable.

Technical details

Method com.google.android.gms.common.data.BitmapTeleporter.zzcj() calling method java.io.FileOutputStream.<init>()


    private final java.io.FileOutputStream zzcj()
    {
        if (this.zzne != null) {
            try {
                IllegalStateException v0_6 = java.io.File.createTempFile("teleporter", ".tmp", this.zzne);
                try {
                    String v1_2 = new java.io.FileOutputStream(v0_6);
                    this.zznb = android.os.ParcelFileDescriptor.open(v0_6, 268435456);
                    v0_6.delete();
                    return v1_2;
                } catch (IllegalStateException v0) {
                    throw new IllegalStateException("Temporary file is somehow already deleted");
                }
            } catch (IllegalStateException v0_7) {
                throw new IllegalStateException("Could not create temporary file", v0_7);
            }
            v1_2 = new java.io.FileOutputStream(v0_6);
            this.zznb = android.os.ParcelFileDescriptor.open(v0_6, 268435456);
            v0_6.delete();
            return v1_2;
        } else {
            throw new IllegalStateException("setTempDir() must be called before writing this object to a parcel");
        }
    }

Method plugin.google.maps.PluginUtil.unpackZipFromBytes() calling method java.io.FileOutputStream.<init>()


    public static java.util.ArrayList unpackZipFromBytes(java.io.InputStream p12, String p13)
    {
        java.util.ArrayList v6_1 = new java.util.ArrayList();
        try {
            java.util.zip.ZipInputStream v8_1 = new java.util.zip.ZipInputStream(new java.io.BufferedInputStream(p12));
            byte[] v0 = new byte[1024];
        } catch (java.io.IOException v3) {
            v3.printStackTrace();
            return v6_1;
        }
        while(true) {
            java.util.zip.ZipEntry v7 = v8_1.getNextEntry();
            if (v7 == null) {
                v8_1.close();
                p12.close();
                return v6_1;
            } else {
                String v5 = v7.getName();
                if (!v7.isDirectory()) {
                    v6_1.add(new java.io.File(new StringBuilder().append(p13).append("/").append(v5).toString()));
                    java.io.FileOutputStream v4_1 = new java.io.FileOutputStream(new StringBuilder().append(p13).append("/").append(v5).toString());
                    while(true) {
                        int v1 = v8_1.read(v0);
                        if (v1 == -1) {
                            break;
                        }
                    }
                    v4_1.close();
                    v8_1.closeEntry();
                } else {
                    java.io.File v2_1 = new java.io.File(new StringBuilder().append(p13).append("/").append(v5).toString());
                    v6_1.add(v2_1);
                    v2_1.mkdirs();
                }
            }
        }
        v4_1.write(v0, 0, v1);
    }

Method org.apache.cordova.CordovaResourceApi.openOutputStream() calling method java.io.FileOutputStream.<init>()


    public java.io.OutputStream openOutputStream(android.net.Uri p7, boolean p8)
    {
        java.io.FileOutputStream v3_0;
        this.assertBackgroundThread();
        switch (org.apache.cordova.CordovaResourceApi.getUriType(p7)) {
            case 0:
                java.io.File v1_1 = new java.io.File(p7.getPath());
                java.io.File v2 = v1_1.getParentFile();
                if (v2 != null) {
                    v2.mkdirs();
                }
                v3_0 = new java.io.FileOutputStream(v1_1, p8);
                break;
            case 1:
            default:
                throw new java.io.FileNotFoundException(new StringBuilder().append("URI not supported by CordovaResourceApi: ").append(p7).toString());
                break;
            case 2:
            case 3:
                java.io.FileOutputStream v3_6;
                if (!p8) {
                    v3_6 = "w";
                } else {
                    v3_6 = "wa";
                }
                v3_0 = this.contentResolver.openAssetFileDescriptor(p7, v3_6).createOutputStream();
                break;
        }
        return v3_0;
    }

Method android.support.v4.util.AtomicFile.startWrite() calling method java.io.FileOutputStream.<init>()


    public java.io.FileOutputStream startWrite()
    {
        if (this.mBaseName.exists()) {
            if (this.mBackupName.exists()) {
                this.mBaseName.delete();
            } else {
                if (!this.mBaseName.renameTo(this.mBackupName)) {
                    android.util.Log.w("AtomicFile", new StringBuilder().append("Couldn\'t rename file ").append(this.mBaseName).append(" to backup file ").append(this.mBackupName).toString());
                }
            }
        }
        try {
            java.io.FileOutputStream v3_1 = new java.io.FileOutputStream(this.mBaseName);
        } catch (java.io.FileNotFoundException v0) {
            if (this.mBaseName.getParentFile().mkdirs()) {
                try {
                    v3_1 = new java.io.FileOutputStream(this.mBaseName);
                } catch (java.io.FileNotFoundException v1) {
                    throw new java.io.IOException(new StringBuilder().append("Couldn\'t create ").append(this.mBaseName).toString());
                }
            } else {
                throw new java.io.IOException(new StringBuilder().append("Couldn\'t create directory ").append(this.mBaseName).toString());
            }
        }
        return v3_1;
    }

Method android.support.v4.print.PrintHelper$PrintHelperApi19$2.doInBackground() calling method java.io.FileOutputStream.<init>()


    protected varargs Throwable doInBackground(Void[] p13)
    {
        Throwable v7 = 0;
        try {
            if (!this.val$cancellationSignal.isCanceled()) {
                android.print.pdf.PrintedPdfDocument v6_1 = new android.print.pdf.PrintedPdfDocument(this.this$0.mContext, this.val$pdfAttributes);
                android.graphics.Bitmap v4 = android.support.v4.print.PrintHelper$PrintHelperApi19.access$100(this.this$0, this.val$bitmap, this.val$pdfAttributes.getColorMode());
                if (!this.val$cancellationSignal.isCanceled()) {
                    try {
                        android.graphics.RectF v0_1;
                        android.graphics.pdf.PdfDocument$Page v5 = v6_1.startPage(1);
                    } catch (java.io.IOException v8_30) {
                        v6_1.close();
                        if (this.val$fileDescriptor != null) {
                            try {
                                this.val$fileDescriptor.close();
                            } catch (java.io.FileDescriptor v9) {
                            }
                        }
                        if (v4 != this.val$bitmap) {
                            v4.recycle();
                        }
                        throw v8_30;
                    }
                    if (!this.this$0.mIsMinMarginsHandlingCorrect) {
                        android.print.pdf.PrintedPdfDocument v1_1 = new android.print.pdf.PrintedPdfDocument(this.this$0.mContext, this.val$attributes);
                        android.graphics.pdf.PdfDocument$Page v2 = v1_1.startPage(1);
                        v0_1 = new android.graphics.RectF(v2.getInfo().getContentRect());
                        v1_1.finishPage(v2);
                        v1_1.close();
                    } else {
                        v0_1 = new android.graphics.RectF(v5.getInfo().getContentRect());
                    }
                    android.graphics.Matrix v3 = android.support.v4.print.PrintHelper$PrintHelperApi19.access$200(this.this$0, v4.getWidth(), v4.getHeight(), v0_1, this.val$fittingMode);
                    if (!this.this$0.mIsMinMarginsHandlingCorrect) {
                        v3.postTranslate(v0_1.left, v0_1.top);
                        v5.getCanvas().clipRect(v0_1);
                    }
                    v5.getCanvas().drawBitmap(v4, v3, 0);
                    v6_1.finishPage(v5);
                    if (!this.val$cancellationSignal.isCanceled()) {
                        v6_1.writeTo(new java.io.FileOutputStream(this.val$fileDescriptor.getFileDescriptor()));
                        v6_1.close();
                        if (this.val$fileDescriptor != null) {
                            try {
                                this.val$fileDescriptor.close();
                            } catch (java.io.IOException v8) {
                            }
                        }
                        if (v4 != this.val$bitmap) {
                            v4.recycle();
                        }
                    } else {
                        v6_1.close();
                        if (this.val$fileDescriptor != null) {
                            try {
                                this.val$fileDescriptor.close();
                            } catch (java.io.IOException v8) {
                            }
                        }
                        if (v4 != this.val$bitmap) {
                            v4.recycle();
                        }
                    }
                }
            }
        } catch (Throwable v7) {
        }
        return v7;
    }

Method android.support.v4.graphics.TypefaceCompatUtil.copyToFile() calling method java.io.FileOutputStream.<init>()


    public static boolean copyToFile(java.io.File p9, java.io.InputStream p10)
    {
        int v5_0 = 0;
        java.io.FileOutputStream v2 = 0;
        try {
            java.io.FileOutputStream v3_1 = new java.io.FileOutputStream(p9, 0);
            try {
                byte[] v0 = new byte[1024];
            } catch (int v5_1) {
                v2 = v3_1;
                android.support.v4.graphics.TypefaceCompatUtil.closeQuietly(v2);
                throw v5_1;
            } catch (java.io.IOException v1) {
                v2 = v3_1;
                android.util.Log.e("TypefaceCompatUtil", new StringBuilder().append("Error copying resource contents to temp file: ").append(v1.getMessage()).toString());
                android.support.v4.graphics.TypefaceCompatUtil.closeQuietly(v2);
                return v5_0;
            }
            while(true) {
                int v4 = p10.read(v0);
                if (v4 == -1) {
                    break;
                }
                v3_1.write(v0, 0, v4);
            }
            v5_0 = 1;
            android.support.v4.graphics.TypefaceCompatUtil.closeQuietly(v3_1);
            return v5_0;
        } catch (int v5_1) {
        } catch (java.io.IOException v1) {
        }
    }

Method plugin.google.maps.PluginKmlOverlay.getKmlContents() calling method java.io.FileInputStream.<init>()


    private java.io.InputStream getKmlContents(String p13)
    {
        try {
            if ((!p13.startsWith("http://")) && (!p13.startsWith("https://"))) {
                if (((p13.indexOf("file://") != 0) || (p13.contains("file:///android_asset/"))) && (p13.indexOf("/") != 0)) {
                    if (p13.indexOf("file:///android_asset/") == 0) {
                        p13 = p13.replace("file:///android_asset/", "");
                    }
                    try {
                        boolean v4_0 = p13.startsWith("/");
                        String v13_1 = new java.io.File(p13).getCanonicalPath();
                    } catch (Exception v1_1) {
                        v1_1.printStackTrace();
                        java.io.InputStream v3_0 = this.cordova.getActivity().getResources().getAssets().open(v13_1);
                    }
                    if (v4_0) {
                    } else {
                        v13_1 = v13_1.substring(1);
                    }
                } else {
                    String v13_2 = p13.replace("file://", "");
                    try {
                        boolean v4_1 = v13_2.startsWith("/");
                        String v13_3 = new java.io.File(v13_2).getCanonicalPath();
                    } catch (Exception v1_2) {
                        v1_2.printStackTrace();
                        v3_0 = new java.io.FileInputStream(v13_3);
                    }
                    if (v4_1) {
                    } else {
                        v13_3 = v13_3.substring(1);
                    }
                }
            } else {
                java.net.URL v9_1 = new java.net.URL(p13);
                int v5 = 1;
                java.net.HttpURLConnection v2_0 = 0;
                String v0 = 0;
                int v6 = 0;
                while ((v5 != 0) && (v6 < 10)) {
                    v5 = 0;
                    v2_0 = ((java.net.HttpURLConnection) v9_1.openConnection());
                    v2_0.setRequestMethod("GET");
                    if (v0 != null) {
                        v2_0.setRequestProperty("Cookie", v0);
                    }
                    v2_0.addRequestProperty("Accept-Language", "en-US,en;q=0.8");
                    v2_0.addRequestProperty("User-Agent", "Mozilla");
                    v2_0.setInstanceFollowRedirects(1);
                    java.net.HttpURLConnection.setFollowRedirects(1);
                    int v8 = v2_0.getResponseCode();
                    if ((v8 != 200) && ((v8 == 302) || ((v8 == 301) || (v8 == 303)))) {
                        v5 = 1;
                    }
                    if (v5 != 0) {
                        v9_1 = new java.net.URL(v2_0.getHeaderField("Location"));
                        v0 = v2_0.getHeaderField("Set-Cookie");
                        v2_0.disconnect();
                        v6++;
                    }
                }
                v3_0 = v2_0.getInputStream();
            }
        } catch (Exception v1_0) {
            v1_0.printStackTrace();
            v3_0 = 0;
        }
        return v3_0;
    }

Method android.support.v4.graphics.TypefaceCompatApi21Impl.createFromFontInfo() calling method java.io.FileInputStream.<init>()


    public android.graphics.Typeface createFromFontInfo(android.content.Context p12, android.os.CancellationSignal p13, android.support.v4.provider.FontsContractCompat$FontInfo[] p14, int p15)
    {
        Throwable v6_2;
        if (p14.length >= 1) {
            try {
                android.os.ParcelFileDescriptor v4 = p12.getContentResolver().openFileDescriptor(this.findBestInfo(p14, p15).getUri(), "r", p13);
                try {
                    java.io.File v2 = this.getFile(v4);
                } catch (Throwable v6_6) {
                    Throwable v7_4 = 0;
                    if (v4 != null) {
                        if (v7_4 == null) {
                            v4.close();
                        } else {
                            v4.close();
                        }
                    }
                    throw v6_6;
                } catch (Throwable v6_5) {
                    try {
                        throw v6_5;
                    } catch (Throwable v7_3) {
                        v7_4 = v6_5;
                        v6_6 = v7_3;
                    }
                }
                if ((v2 != null) && (v2.canRead())) {
                    v6_2 = android.graphics.Typeface.createFromFile(v2);
                    if (v4 != null) {
                        if (0 == 0) {
                            v4.close();
                        } else {
                            try {
                                v4.close();
                            } catch (Throwable v7_1) {
                                0.addSuppressed(v7_1);
                            }
                        }
                    }
                } else {
                    java.io.FileInputStream v3_1 = new java.io.FileInputStream(v4.getFileDescriptor());
                    Throwable v7_2 = 0;
                    try {
                        v6_2 = super.createFromInputStream(p12, v3_1);
                    } catch (Throwable v7_2) {
                        throw v7_2;
                    } catch (Throwable v6_4) {
                        if (v3_1 != null) {
                            if (v7_2 == null) {
                                v3_1.close();
                            } else {
                                v3_1.close();
                            }
                        }
                        throw v6_4;
                    }
                    if (v3_1 != null) {
                        if (0 == 0) {
                            v3_1.close();
                        } else {
                            try {
                                v3_1.close();
                            } catch (Throwable v9_1) {
                                0.addSuppressed(v9_1);
                            }
                        }
                    }
                    if (v4 != null) {
                        if (0 == 0) {
                            v4.close();
                        } else {
                            try {
                                v4.close();
                            } catch (Throwable v7_5) {
                                0.addSuppressed(v7_5);
                            }
                        }
                    }
                }
            } catch (java.io.IOException v1) {
                v6_2 = 0;
            }
        } else {
            v6_2 = 0;
        }
        return v6_2;
    }

Method plugin.google.maps.AsyncLoadImage.doInBackground() calling method java.io.FileInputStream.<init>()


    protected varargs plugin.google.maps.AsyncLoadImage$AsyncLoadImageResult doInBackground(Void[] p49)
    {
        plugin.google.maps.AsyncLoadImage$AsyncLoadImageResult v37_0;
        int v22_1 = this.mOptions.width;
        int v21_0 = this.mOptions.height;
        String v15_0 = this.mOptions.url;
        String v30 = v15_0;
        if (v15_0 != null) {
            String v7_2 = plugin.google.maps.AsyncLoadImage.getCacheKey(v30, v22_1, v21_0);
            android.graphics.Bitmap v16_1 = plugin.google.maps.AsyncLoadImage.getBitmapFromMemCache(v7_2);
            if (v16_1 == null) {
                if (!v15_0.startsWith("data:image")) {
                    if ((this.currentPageUrl.startsWith("http://localhost")) || (this.currentPageUrl.startsWith("http://127.0.0.1"))) {
                        if (!v15_0.contains("://")) {
                            v15_0 = "file:///android_asset/www/".concat(v15_0);
                        } else {
                            v15_0 = v15_0.replaceAll("http://.+?/", "file:///android_asset/www/");
                        }
                    }
                    if ((!v15_0.contains("://")) && ((!v15_0.startsWith("/")) && ((!v15_0.startsWith("www/")) && ((!v15_0.startsWith("data:image")) && ((!v15_0.startsWith("./")) && (!v15_0.startsWith("../"))))))) {
                        v15_0 = new StringBuilder().append("./").append(v15_0).toString();
                    }
                    if ((v15_0.startsWith("./")) || (v15_0.startsWith("../"))) {
                        String v15_1 = v15_0.replace("(\\.\\/)+", "./");
                        String v10_3 = this.currentPageUrl.replaceAll("[^\\/]*$", "").replaceAll("#.*$", "").replaceAll("\\/[^\\/]+\\.[^\\/]+$", "");
                        if (!v10_3.endsWith("/")) {
                            v10_3 = new StringBuilder().append(v10_3).append("/").toString();
                        }
                        v15_0 = new StringBuilder().append(v10_3).append(v15_1).toString().replaceAll("(\\/\\.\\/+)+", "/");
                    }
                    if ((v15_0.indexOf("file://") != 0) || (v15_0.contains("file:///android_asset/"))) {
                        if (v15_0.contains("./")) {
                            try {
                                boolean v20 = v15_0.startsWith("/");
                                java.io.File v36 = new java.io.File;
                                v36(v15_0);
                                v15_0 = v36.getCanonicalPath();
                            } catch (Exception v12_0) {
                                v12_0.printStackTrace();
                            }
                            if (!v20) {
                                v15_0 = v15_0.substring(1);
                            }
                        }
                    } else {
                        v15_0 = v15_0.replace("file://", "");
                    }
                }
                String v7_0 = plugin.google.maps.AsyncLoadImage.getCacheKey(v15_0, v22_1, v21_0);
                android.graphics.Bitmap v16_0 = plugin.google.maps.AsyncLoadImage.getBitmapFromMemCache(v7_0);
                if (v16_0 == null) {
                    String v7_1 = plugin.google.maps.AsyncLoadImage.getCacheKey(v30, v22_1, v21_0);
                    if (v15_0.indexOf("http") != 0) {
                        if ((v15_0.indexOf("data:image/") != 0) || (!v15_0.contains(";base64,"))) {
                            java.io.FileInputStream v18_0 = 0;
                            try {
                                if (!v15_0.startsWith("file:/android_asset/")) {
                                    if (!v15_0.startsWith("file:///android_asset/")) {
                                        if (v15_0.startsWith("/")) {
                                            java.io.FileInputStream v19 = new java.io.FileInputStream;
                                            v19(new java.io.File(v15_0));
                                            v18_0 = v19;
                                        }
                                    } else {
                                        android.content.res.AssetManager v5_0 = this.cordova.getActivity().getAssets();
                                        v15_0 = v15_0.replace("file:///android_asset/", "");
                                        v18_0 = v5_0.open(v15_0);
                                    }
                                } else {
                                    android.content.res.AssetManager v5_1 = this.cordova.getActivity().getAssets();
                                    v15_0 = v15_0.replace("file:/android_asset/", "");
                                    v18_0 = v5_1.open(v15_0);
                                }
                            } catch (Exception v12_1) {
                                v12_1.printStackTrace();
                                v37_0 = 0;
                                return v37_0;
                            }
                            if (v18_0 == null) {
                                android.util.Log.e("AsyncLoadImage", new StringBuilder().append("Can not load the file from \'").append(v15_0).append("\'").toString());
                                v37_0 = 0;
                                return v37_0;
                            } else {
                                android.graphics.Bitmap v16_2 = android.graphics.BitmapFactory.decodeStream(v18_0);
                                v18_0.close();
                            }
                        } else {
                            v16_2 = plugin.google.maps.PluginUtil.getBitmapFromBase64encodedImage(v15_0.split(",")[1]);
                        }
                        if ((v22_1 <= 0) || (v21_0 <= 0)) {
                            android.graphics.Bitmap v16_3 = plugin.google.maps.PluginUtil.scaleBitmapForDevice(v16_2);
                        } else {
                            v16_3 = plugin.google.maps.PluginUtil.resizeBitmap(v16_2, Math.round((((float) v22_1) * this.density)), Math.round((((float) v21_0) * this.density)));
                        }
                        v37_0 = new plugin.google.maps.AsyncLoadImage$AsyncLoadImageResult();
                        v37_0.image = v16_3;
                        v37_0.cacheHit = 0;
                        if (!this.mOptions.noCaching) {
                            v37_0.cacheKey = v7_1;
                            plugin.google.maps.AsyncLoadImage.addBitmapToMemoryCache(v7_1, v16_3);
                        }
                    } else {
                        try {
                            java.net.URL v42_0 = new java.net.URL;
                            v42_0(v15_0);
                            int v34 = 1;
                            java.net.HttpURLConnection v14_0 = 0;
                            String v9 = 0;
                            int v35 = 0;
                            java.net.URL v43 = v42_0;
                        } catch (Exception v12_3) {
                            v12_3.printStackTrace();
                            v37_0 = 0;
                        }
                        while ((v34 != 0) && (v35 < 10)) {
                            v34 = 0;
                            v14_0 = ((java.net.HttpURLConnection) v43.openConnection());
                            v14_0.setRequestMethod("GET");
                            if (v9 != null) {
                                v14_0.setRequestProperty("Cookie", v9);
                            }
                            v14_0.addRequestProperty("Accept-Language", "en-US,en;q=0.8");
                            v14_0.addRequestProperty("User-Agent", this.userAgent);
                            v14_0.setInstanceFollowRedirects(1);
                            java.net.HttpURLConnection.setFollowRedirects(1);
                            try {
                                int v40 = v14_0.getResponseCode();
                            } catch (Exception v12_2) {
                                java.net.URL v42_1 = v43;
                                android.util.Log.e("AsyncLoadImage", new StringBuilder().append("can not connect to ").append(v15_0).toString(), v12_2);
                                v43 = v42_1;
                            }
                            if ((v40 != 200) && ((v40 == 302) || ((v40 == 301) || (v40 == 303)))) {
                                v34 = 1;
                            }
                            if (v34 == 0) {
                                if (v40 == 200) {
                                    break;
                                }
                                v37_0 = 0;
                                return v37_0;
                            } else {
                                v42_1 = new java.net.URL;
                                v42_1(v14_0.getHeaderField("Location"));
                                try {
                                    v9 = v14_0.getHeaderField("Set-Cookie");
                                    v14_0.disconnect();
                                    v35++;
                                    v43 = v42_1;
                                } catch (Exception v12_2) {
                                }
                            }
                        }
                        java.io.FileInputStream v18_1 = v14_0.getInputStream();
                        java.io.ByteArrayOutputStream v6_1 = new java.io.ByteArrayOutputStream();
                        byte[] v11 = new byte[16384];
                        while(true) {
                            int v26 = v18_1.read(v11, 0, v11.length);
                            if (v26 == -1) {
                                break;
                            }
                            v6_1.write(v11, 0, v26);
                        }
                        v6_1.flush();
                        v18_1.close();
                        int v17 = v6_1.toByteArray();
                        android.graphics.BitmapFactory$Options v29_1 = new android.graphics.BitmapFactory$Options();
                        v29_1.inJustDecodeBounds = 1;
                        v29_1.inPreferredConfig = android.graphics.Bitmap$Config.ARGB_8888;
                        android.graphics.BitmapFactory.decodeByteArray(v17, 0, v17.length, v29_1);
                        if ((v22_1 < 1) && (v21_0 < 1)) {
                            v22_1 = v29_1.outWidth;
                            v21_0 = v29_1.outHeight;
                        }
                        int v28 = ((int) (((float) v22_1) * this.density));
                        int v27 = ((int) (((float) v21_0) * this.density));
                        if ((v28 > 2000) || (v27 > 2000)) {
                            float v33;
                            if (v28 < v27) {
                                v33 = (1157234688 / ((float) v27));
                            } else {
                                v33 = (1157234688 / ((float) v28));
                            }
                            v28 = ((int) (((float) v28) * v33));
                            v27 = ((int) (((float) v27) * v33));
                            android.util.Log.w("AsyncLoadImage", "Since the image size is too large, the image size resizes down mandatory");
                        }
                        android.graphics.Bitmap v39 = android.graphics.Bitmap.createBitmap(v28, v27, android.graphics.Bitmap$Config.ARGB_8888);
                        float v31 = (((float) v28) / ((float) v29_1.outWidth));
                        float v32 = (((float) v27) / ((float) v29_1.outHeight));
                        float v23 = (((float) v28) / 1073741824);
                        float v24 = (((float) v27) / 1073741824);
                        v29_1.inJustDecodeBounds = 0;
                        v29_1.outWidth = v28;
                        v29_1.outHeight = v27;
                        android.graphics.Matrix v38_1 = new android.graphics.Matrix();
                        v38_1.setScale(v31, v32, v23, v24);
                        int v8_1 = new android.graphics.Canvas(v39);
                        v8_1.setMatrix(v38_1);
                        int v25 = android.graphics.BitmapFactory.decodeByteArray(v17, 0, v17.length, v29_1);
                        v8_1.drawBitmap(v25, (v23 - ((float) (v29_1.outWidth / 2))), (v24 - ((float) (v29_1.outHeight / 2))), new android.graphics.Paint(2));
                        v25.recycle();
                        int v8 = 0;
                        v37_0 = new plugin.google.maps.AsyncLoadImage$AsyncLoadImageResult();
                        v37_0.image = v39;
                        v37_0.cacheHit = 0;
                        if (!this.mOptions.noCaching) {
                            v37_0.cacheKey = v7_1;
                            plugin.google.maps.AsyncLoadImage.addBitmapToMemoryCache(v7_1, v39);
                        }
                    }
                } else {
                    v37_0 = new plugin.google.maps.AsyncLoadImage$AsyncLoadImageResult();
                    v37_0.image = v16_0;
                    v37_0.cacheHit = 1;
                    v37_0.cacheKey = v7_0;
                }
            } else {
                v37_0 = new plugin.google.maps.AsyncLoadImage$AsyncLoadImageResult();
                v37_0.image = v16_1;
                v37_0.cacheHit = 1;
                v37_0.cacheKey = v7_2;
            }
        } else {
            v37_0 = 0;
        }
        return v37_0;
    }

Method org.apache.cordova.CordovaResourceApi.openForRead() calling method java.io.FileInputStream.<init>()


    public org.apache.cordova.CordovaResourceApi$OpenForReadResult openForRead(android.net.Uri p23, boolean p24)
    {
        if (!p24) {
            this = this.assertBackgroundThread();
        }
        org.apache.cordova.CordovaResourceApi$OpenForReadResult v2_2;
        switch (org.apache.cordova.CordovaResourceApi.getUriType(p23)) {
            case 0:
                java.io.InputStream v4_2 = new java.io.FileInputStream(p23.getPath());
                v2_2 = new org.apache.cordova.CordovaResourceApi$OpenForReadResult(p23, v4_2, this.getMimeTypeFromPath(p23.getPath()), v4_2.getChannel().size(), 0);
                return v2_2;
            case 1:
                String v9 = p23.getPath().substring(15);
                int v6 = -1;
                try {
                    android.content.res.AssetFileDescriptor v8_2 = this.assetManager.openFd(v9);
                    java.io.InputStream v4_0 = v8_2.createInputStream();
                    int v6_3 = v8_2.getLength();
                } catch (java.io.FileNotFoundException v18) {
                    v4_0 = this.assetManager.open(v9);
                }
                v2_2 = new org.apache.cordova.CordovaResourceApi$OpenForReadResult(p23, v4_0, this.getMimeTypeFromPath(v9), v6_3, v8_2);
                return v2_2;
            case 2:
            case 3:
                String v5_3 = this.contentResolver.getType(p23);
                android.content.res.AssetFileDescriptor v8_1 = this.contentResolver.openAssetFileDescriptor(p23, "r");
                v2_2 = new org.apache.cordova.CordovaResourceApi$OpenForReadResult(p23, v8_1.createInputStream(), v5_3, v8_1.getLength(), v8_1);
                return v2_2;
            case 4:
                org.apache.cordova.CordovaResourceApi$OpenForReadResult v21 = this.readDataUri(p23);
                if (v21 == null) {
                } else {
                    v2_2 = v21;
                    return v2_2;
                }
            case 5:
            case 6:
                java.net.HttpURLConnection v17_1 = ((java.net.HttpURLConnection) new java.net.URL(p23.toString()).openConnection());
                v17_1.setDoInput(1);
                String v5_2 = v17_1.getHeaderField("Content-Type");
                if (v5_2 != null) {
                    v5_2 = v5_2.split(";")[0];
                }
                v2_2 = new org.apache.cordova.CordovaResourceApi$OpenForReadResult(p23, v17_1.getInputStream(), v5_2, ((long) v17_1.getContentLength()), 0);
                return v2_2;
            case 7:
                org.apache.cordova.CordovaPlugin v19 = this.pluginManager.getPlugin(p23.getHost());
                if (v19 != null) {
                    v2_2 = v19.handleOpenForRead(p23);
                    return v2_2;
                } else {
                    throw new java.io.FileNotFoundException(new StringBuilder().append("Invalid plugin ID in URI: ").append(p23).toString());
                }
        }
        throw new java.io.FileNotFoundException(new StringBuilder().append("URI not supported by CordovaResourceApi: ").append(p23).toString());
    }

Method com.ionicframework.cordova.webview.AndroidProtocolHandler.openFile() calling method java.io.FileInputStream.<init>()


    public java.io.InputStream openFile(String p3)
    {
        return new java.io.FileInputStream(new java.io.File(p3));
    }

Method com.ionicframework.cordova.webview.AndroidProtocolHandler.openAsset() calling method java.io.FileInputStream.<init>()


    public java.io.InputStream openAsset(String p5, String p6)
    {
        java.io.FileInputStream v2_5;
        if (!p5.startsWith(new StringBuilder().append(p6).append("/_file_").toString())) {
            v2_5 = this.context.getAssets().open(p5, 2);
        } else {
            if (!p5.contains("content://")) {
                v2_5 = new java.io.FileInputStream(new java.io.File(p5.replace(new StringBuilder().append(p6).append("/_file_/").toString(), "")));
            } else {
                v2_5 = this.context.getContentResolver().openInputStream(android.net.Uri.parse(p5.replace(new StringBuilder().append(p6).append("/_file_/").toString(), "content://")));
            }
        }
        return v2_5;
    }

Method com.google.android.gms.common.util.IOUtils$zzb.zzdd() calling method java.io.FileInputStream.<init>()


    public final byte[] zzdd()
    {
        try {
            int v1_1 = new java.io.FileInputStream(this.file);
            try {
                Throwable v0_0 = com.google.android.gms.common.util.IOUtils.zzb(v1_1, v1_1.getChannel().size());
                com.google.android.gms.common.util.IOUtils.closeQuietly(v1_1);
                return v0_0;
            } catch (Throwable v0_1) {
                com.google.android.gms.common.util.IOUtils.closeQuietly(v1_1);
                throw v0_1;
            }
        } catch (Throwable v0_1) {
            v1_1 = 0;
        }
        v0_0 = com.google.android.gms.common.util.IOUtils.zzb(v1_1, v1_1.getChannel().size());
        com.google.android.gms.common.util.IOUtils.closeQuietly(v1_1);
        return v0_0;
    }

Method android.support.v4.util.AtomicFile.openRead() calling method java.io.FileInputStream.<init>()


    public java.io.FileInputStream openRead()
    {
        if (this.mBackupName.exists()) {
            this.mBaseName.delete();
            this.mBackupName.renameTo(this.mBaseName);
        }
        return new java.io.FileInputStream(this.mBaseName);
    }

Method android.support.v4.graphics.TypefaceCompatUtil.mmap() calling method java.io.FileInputStream.<init>()


    private static java.nio.ByteBuffer mmap(java.io.File p11)
    {
        java.io.FileInputStream v7_1 = new java.io.FileInputStream(p11);
        try {
            java.nio.channels.FileChannel v0 = v7_1.getChannel();
            Throwable v1_0 = v0.map(java.nio.channels.FileChannel$MapMode.READ_ONLY, 0, v0.size());
        } catch (Throwable v1_2) {
            Throwable v2_1 = 0;
            if (v7_1 != null) {
                if (v2_1 == null) {
                    v7_1.close();
                } else {
                    v7_1.close();
                }
            }
            throw v1_2;
        } catch (Throwable v1_1) {
            try {
                throw v1_1;
            } catch (Throwable v2_0) {
                v2_1 = v1_1;
                v1_2 = v2_0;
            }
        }
        if (v7_1 == null) {
            return v1_0;
        } else {
            if (0 == 0) {
                v7_1.close();
                return v1_0;
            } else {
                try {
                    v7_1.close();
                } catch (Throwable v2_2) {
                    0.addSuppressed(v2_2);
                }
                return v1_0;
            }
        }
    }

Method android.support.v4.graphics.TypefaceCompatUtil.mmap() calling method java.io.FileInputStream.<init>()


    public static java.nio.ByteBuffer mmap(android.content.Context p13, android.os.CancellationSignal p14, android.net.Uri p15)
    {
        Throwable v1_1;
        android.os.ParcelFileDescriptor v8 = p13.getContentResolver().openFileDescriptor(p15, "r", p14);
        if (v8 != null) {
            try {
                java.io.FileInputStream v7_0 = new java.io.FileInputStream(v8.getFileDescriptor());
                try {
                    java.nio.channels.FileChannel v0 = v7_0.getChannel();
                    v1_1 = v0.map(java.nio.channels.FileChannel$MapMode.READ_ONLY, 0, v0.size());
                } catch (Throwable v1_4) {
                    Throwable v2_2 = 0;
                    if (v7_0 != null) {
                        if (v2_2 == null) {
                            v7_0.close();
                        } else {
                            v7_0.close();
                        }
                    }
                    throw v1_4;
                } catch (Throwable v1_3) {
                    try {
                        throw v1_3;
                    } catch (Throwable v2_1) {
                        v2_2 = v1_3;
                        v1_4 = v2_1;
                    }
                }
                if (v7_0 != null) {
                    if (0 == 0) {
                        v7_0.close();
                    } else {
                        try {
                            v7_0.close();
                        } catch (Throwable v2_3) {
                            0.addSuppressed(v2_3);
                        }
                    }
                }
                if (v8 == null) {
                    return v1_1;
                } else {
                    if (0 == 0) {
                        v8.close();
                        return v1_1;
                    } else {
                        try {
                            v8.close();
                        } catch (Throwable v2_6) {
                            0.addSuppressed(v2_6);
                        }
                        return v1_1;
                    }
                }
            } catch (Throwable v1_6) {
                Throwable v2_5 = 0;
                if (v8 != null) {
                    if (v2_5 == null) {
                        v8.close();
                    } else {
                        try {
                            v8.close();
                        } catch (Throwable v3_1) {
                            v2_5.addSuppressed(v3_1);
                        }
                    }
                }
                throw v1_6;
            } catch (Throwable v1_5) {
                try {
                    throw v1_5;
                } catch (Throwable v2_4) {
                    v2_5 = v1_5;
                    v1_6 = v2_4;
                }
            }
        } else {
            v1_1 = 0;
            if (v8 == null) {
                return v1_1;
            } else {
                if (0 == 0) {
                    v8.close();
                    return v1_1;
                } else {
                    try {
                        v8.close();
                    } catch (Throwable v2_7) {
                        0.addSuppressed(v2_7);
                    }
                    return v1_1;
                }
            }
        }
    }

Method com.google.android.gms.common.util.ProcessUtils.zzm() calling method java.io.FileReader.<init>()


    private static java.io.BufferedReader zzm(String p3)
    {
        android.os.StrictMode$ThreadPolicy v1 = android.os.StrictMode.allowThreadDiskReads();
        try {
            Throwable v0_1 = new java.io.BufferedReader(new java.io.FileReader(p3));
            android.os.StrictMode.setThreadPolicy(v1);
            return v0_1;
        } catch (Throwable v0_2) {
            android.os.StrictMode.setThreadPolicy(v1);
            throw v0_2;
        }
    }

Method plugin.google.maps.PluginKmlOverlay.getKmlContents() calling method java.io.File.<init>()


    private java.io.InputStream getKmlContents(String p13)
    {
        try {
            if ((!p13.startsWith("http://")) && (!p13.startsWith("https://"))) {
                if (((p13.indexOf("file://") != 0) || (p13.contains("file:///android_asset/"))) && (p13.indexOf("/") != 0)) {
                    if (p13.indexOf("file:///android_asset/") == 0) {
                        p13 = p13.replace("file:///android_asset/", "");
                    }
                    try {
                        boolean v4_0 = p13.startsWith("/");
                        String v13_1 = new java.io.File(p13).getCanonicalPath();
                    } catch (Exception v1_1) {
                        v1_1.printStackTrace();
                        java.io.InputStream v3_0 = this.cordova.getActivity().getResources().getAssets().open(v13_1);
                    }
                    if (v4_0) {
                    } else {
                        v13_1 = v13_1.substring(1);
                    }
                } else {
                    String v13_2 = p13.replace("file://", "");
                    try {
                        boolean v4_1 = v13_2.startsWith("/");
                        String v13_3 = new java.io.File(v13_2).getCanonicalPath();
                    } catch (Exception v1_2) {
                        v1_2.printStackTrace();
                        v3_0 = new java.io.FileInputStream(v13_3);
                    }
                    if (v4_1) {
                    } else {
                        v13_3 = v13_3.substring(1);
                    }
                }
            } else {
                java.net.URL v9_1 = new java.net.URL(p13);
                int v5 = 1;
                java.net.HttpURLConnection v2_0 = 0;
                String v0 = 0;
                int v6 = 0;
                while ((v5 != 0) && (v6 < 10)) {
                    v5 = 0;
                    v2_0 = ((java.net.HttpURLConnection) v9_1.openConnection());
                    v2_0.setRequestMethod("GET");
                    if (v0 != null) {
                        v2_0.setRequestProperty("Cookie", v0);
                    }
                    v2_0.addRequestProperty("Accept-Language", "en-US,en;q=0.8");
                    v2_0.addRequestProperty("User-Agent", "Mozilla");
                    v2_0.setInstanceFollowRedirects(1);
                    java.net.HttpURLConnection.setFollowRedirects(1);
                    int v8 = v2_0.getResponseCode();
                    if ((v8 != 200) && ((v8 == 302) || ((v8 == 301) || (v8 == 303)))) {
                        v5 = 1;
                    }
                    if (v5 != 0) {
                        v9_1 = new java.net.URL(v2_0.getHeaderField("Location"));
                        v0 = v2_0.getHeaderField("Set-Cookie");
                        v2_0.disconnect();
                        v6++;
                    }
                }
                v3_0 = v2_0.getInputStream();
            }
        } catch (Exception v1_0) {
            v1_0.printStackTrace();
            v3_0 = 0;
        }
        return v3_0;
    }

Method android.support.v4.graphics.TypefaceCompatApi21Impl.getFile() calling method java.io.File.<init>()


    private java.io.File getFile(android.os.ParcelFileDescriptor p6)
    {
        try {
            int v2_6;
            String v1 = android.system.Os.readlink(new StringBuilder().append("/proc/self/fd/").append(p6.getFd()).toString());
        } catch (android.system.ErrnoException v0) {
            v2_6 = 0;
            return v2_6;
        }
        if (!android.system.OsConstants.S_ISREG(android.system.Os.stat(v1).st_mode)) {
            v2_6 = 0;
            return v2_6;
        } else {
            v2_6 = new java.io.File(v1);
            return v2_6;
        }
    }

Method plugin.google.maps.PluginTileProvider.getTile() calling method java.io.File.<init>()


    public com.google.android.gms.maps.model.Tile getTile(int p40, int p41, int p42)
    {
        com.google.android.gms.maps.model.Tile v32;
        if (!this.isRemoved) {
            String v7 = 0;
            byte[] v5_20 = new Object[5];
            v5_20[0] = this.mapId;
            v5_20[1] = this.pluginId;
            v5_20[2] = Integer.valueOf(p40);
            v5_20[3] = Integer.valueOf(p41);
            v5_20[4] = Integer.valueOf(p42);
            String v37 = String.format(java.util.Locale.US, "%s-%s-%d-%d-%d", v5_20);
            try {
                int v6_5 = new Object[6];
                v6_5[0] = this.mapId;
                v6_5[1] = this.pluginId;
                v6_5[2] = v37;
                v6_5[3] = Integer.valueOf(p40);
                v6_5[4] = Integer.valueOf(p41);
                v6_5[5] = Integer.valueOf(p42);
                this.handler.post(new plugin.google.maps.PluginTileProvider$1(this, String.format(java.util.Locale.ENGLISH, "javascript:if(window.cordova){cordova.fireDocumentEvent(\'%s-%s-tileoverlay\', {key: \"%s\", x: %d, y: %d, zoom: %d});}", v6_5)));
                try {
                    this.semaphore.wait(1000);
                } catch (java.io.IOException v22_1) {
                    v22_1.printStackTrace();
                    v32 = 0;
                }
                String v38_0 = ((String) this.tileUrlMap.remove(v37));
                v7 = v38_0;
                v32 = 0;
                if ((v38_0 != null) && (!"(null)".equals(v38_0))) {
                    if ((v38_0.startsWith("http://localhost")) || (v38_0.startsWith("http://127.0.0.1"))) {
                        if (!v38_0.contains("://")) {
                            v38_0 = "file:///android_asset/www/".concat(v38_0);
                        } else {
                            v38_0 = v38_0.replaceAll("http://.+?/", "file:///android_asset/www/");
                        }
                    }
                    java.io.InputStream v25_0 = 0;
                    try {
                        if ((!v38_0.startsWith("http://")) && (!v38_0.startsWith("https://"))) {
                            if ((!v38_0.contains("://")) && ((!v38_0.startsWith("/")) && ((!v38_0.startsWith("www/")) && ((!v38_0.startsWith("./")) && (!v38_0.startsWith("../")))))) {
                                v38_0 = new StringBuilder().append("./").append(v38_0).toString();
                            }
                            if ((v38_0.startsWith("./")) || (v38_0.startsWith("../"))) {
                                v38_0 = new StringBuilder().append(this.webPageUrl.replaceAll("[^\\/]*$", "")).append("/").append(v38_0.replace("././", "./")).toString();
                            }
                            String v18_0 = new StringBuilder().append(new java.io.File(v38_0).hashCode()).append("").toString();
                            android.graphics.Bitmap v19_1 = ((android.graphics.Bitmap) plugin.google.maps.PluginTileProvider.tileCache.get(v18_0));
                            if ((v19_1 == null) || (v19_1.isRecycled())) {
                                if ((v38_0.indexOf("file://") != 0) || (v38_0.contains("file:///android_asset/"))) {
                                    if (v38_0.indexOf("file:///android_asset/") == 0) {
                                        v38_0 = v38_0.replace("file:///android_asset/", "");
                                    }
                                    if (v38_0.contains("./")) {
                                        try {
                                            boolean v26 = v38_0.startsWith("/");
                                            java.io.File v30 = new java.io.File;
                                            v30(v38_0);
                                            v38_0 = v30.getCanonicalPath();
                                        } catch (java.util.HashSet v2) {
                                        }
                                        if (!v26) {
                                            v38_0 = v38_0.substring(1);
                                        }
                                    }
                                    try {
                                        android.graphics.Bitmap v24_0 = android.graphics.BitmapFactory.decodeStream(this.assetManager.open(v38_0));
                                        android.graphics.Bitmap v35 = v24_0.copy(android.graphics.Bitmap$Config.ARGB_8888, 1);
                                        v24_0.recycle();
                                        android.graphics.Bitmap v24_1 = v35;
                                    } catch (java.io.IOException v22) {
                                        v32 = 0;
                                        return v32;
                                    }
                                } else {
                                    String v38_2 = v38_0.replace("file://", "");
                                    java.io.File v34 = new java.io.File;
                                    v34(v38_2);
                                    if (!v34.exists()) {
                                        v32 = 0;
                                        return v32;
                                    } else {
                                        v24_1 = android.graphics.BitmapFactory.decodeFile(v38_2);
                                    }
                                }
                                if (v24_1 == null) {
                                    return v32;
                                } else {
                                    if ((v24_1.getWidth() == this.tileSize) && (v24_1.getHeight() == this.tileSize)) {
                                        plugin.google.maps.PluginTileProvider.tileCache.put(v18_0, v24_1.copy(android.graphics.Bitmap$Config.ARGB_8888, 1));
                                        if (this.isDebug) {
                                            this.drawDebugInfo(v24_1, p40, p41, p42, v7);
                                        }
                                        com.google.android.gms.maps.model.Tile v33_0 = new com.google.android.gms.maps.model.Tile;
                                        v33_0(this.tileSize, this.tileSize, this.bitmapToByteArray(v24_1));
                                        v32 = v33_0;
                                    } else {
                                        android.graphics.Bitmap v11_0 = this.resizeForTile(v24_1);
                                        plugin.google.maps.PluginTileProvider.tileCache.put(v18_0, v11_0.copy(android.graphics.Bitmap$Config.ARGB_8888, 1));
                                        if (this.isDebug) {
                                            this.drawDebugInfo(v11_0, p40, p41, p42, v7);
                                        }
                                        com.google.android.gms.maps.model.Tile v33_1 = new com.google.android.gms.maps.model.Tile;
                                        v33_1(this.tileSize, this.tileSize, this.bitmapToByteArray(v11_0));
                                        v11_0.recycle();
                                        v32 = v33_1;
                                    }
                                    v24_1.recycle();
                                    this.cacheKeys.add(v18_0);
                                    return v32;
                                }
                            } else {
                                if (!this.isDebug) {
                                    com.google.android.gms.maps.model.Tile v33_2 = new com.google.android.gms.maps.model.Tile;
                                    v33_2(this.tileSize, this.tileSize, this.bitmapToByteArray(v19_1));
                                    v32 = v33_2;
                                    return v32;
                                } else {
                                    android.graphics.Bitmap v9_0 = v19_1.copy(android.graphics.Bitmap$Config.ARGB_8888, 1);
                                    this.drawDebugInfo(v9_0, p40, p41, p42, v7);
                                    v19_1.recycle();
                                    v33_1 = new com.google.android.gms.maps.model.Tile;
                                    v33_1(this.tileSize, this.tileSize, this.bitmapToByteArray(v9_0));
                                    v9_0.recycle();
                                    v32 = v33_1;
                                    return v32;
                                }
                            }
                        } else {
                            int v28 = 1;
                            java.net.URL v36 = new java.net.URL;
                            v36(v38_0);
                            String v18_1 = new StringBuilder().append(v36.hashCode()).append("").toString();
                            android.graphics.Bitmap v19_3 = ((android.graphics.Bitmap) plugin.google.maps.PluginTileProvider.tileCache.get(v18_1));
                            if ((v19_3 == null) || (v19_3.isRecycled())) {
                                java.net.HttpURLConnection v23_0 = 0;
                                String v20 = 0;
                                int v29 = 0;
                                while ((v28 != 0) && (v29 < 10)) {
                                    v28 = 0;
                                    v23_0 = ((java.net.HttpURLConnection) v36.openConnection());
                                    v23_0.setRequestMethod("GET");
                                    v23_0.setReadTimeout(3000);
                                    v23_0.setConnectTimeout(3000);
                                    if (v20 != null) {
                                        v23_0.setRequestProperty("Cookie", v20);
                                    }
                                    v23_0.addRequestProperty("Accept-Language", "en-US,en;q=0.8");
                                    v23_0.addRequestProperty("User-Agent", this.userAgent);
                                    v23_0.setInstanceFollowRedirects(1);
                                    java.net.HttpURLConnection.setFollowRedirects(1);
                                    int v31 = v23_0.getResponseCode();
                                    if ((v31 != 200) && ((v31 == 302) || ((v31 == 301) || (v31 == 303)))) {
                                        v28 = 1;
                                    }
                                    if (v28 != 0) {
                                        v36 = new java.net.URL;
                                        v36(v23_0.getHeaderField("Location"));
                                        v20 = v23_0.getHeaderField("Set-Cookie");
                                        v23_0.disconnect();
                                        v29++;
                                    }
                                }
                                if (v23_0 != null) {
                                    v25_0 = v23_0.getInputStream();
                                    android.graphics.Bitmap v24_2 = android.graphics.BitmapFactory.decodeStream(v25_0);
                                    if (v24_2 != null) {
                                        if ((v24_2.getWidth() == this.tileSize) && (v24_2.getHeight() == this.tileSize)) {
                                            plugin.google.maps.PluginTileProvider.tileCache.put(v18_1, v24_2.copy(android.graphics.Bitmap$Config.ARGB_8888, 1));
                                            if (this.isDebug) {
                                                this.drawDebugInfo(v24_2, p40, p41, p42, v7);
                                            }
                                            com.google.android.gms.maps.model.Tile v33_3 = new com.google.android.gms.maps.model.Tile;
                                            v33_3(this.tileSize, this.tileSize, this.bitmapToByteArray(v24_2));
                                            v32 = v33_3;
                                        } else {
                                            android.graphics.Bitmap v11_1 = this.resizeForTile(v24_2);
                                            plugin.google.maps.PluginTileProvider.tileCache.put(v18_1, v11_1.copy(android.graphics.Bitmap$Config.ARGB_8888, 1));
                                            if (this.isDebug) {
                                                this.drawDebugInfo(v11_1, p40, p41, p42, v7);
                                            }
                                            v33_1 = new com.google.android.gms.maps.model.Tile;
                                            v33_1(this.tileSize, this.tileSize, this.bitmapToByteArray(v11_1));
                                            v11_1.recycle();
                                            v32 = v33_1;
                                        }
                                        this.cacheKeys.add(v18_1);
                                        v24_2.recycle();
                                    }
                                    v23_0.disconnect();
                                }
                                v25_0.close();
                                return v32;
                            } else {
                                if (!this.isDebug) {
                                    com.google.android.gms.maps.model.Tile v33_4 = new com.google.android.gms.maps.model.Tile;
                                    v33_4(this.tileSize, this.tileSize, this.bitmapToByteArray(v19_3));
                                    v32 = v33_4;
                                    return v32;
                                } else {
                                    android.graphics.Bitmap v9_1 = v19_3.copy(android.graphics.Bitmap$Config.ARGB_8888, 1);
                                    this.drawDebugInfo(v9_1, p40, p41, p42, v7);
                                    v33_1 = new com.google.android.gms.maps.model.Tile;
                                    v33_1(this.tileSize, this.tileSize, this.bitmapToByteArray(v9_1));
                                    v9_1.recycle();
                                    v32 = v33_1;
                                    return v32;
                                }
                            }
                        }
                    } catch (java.io.IOException v22_0) {
                    } catch (java.io.IOException v22_0) {
                    }
                    v22_0.printStackTrace();
                    v32 = 0;
                } else {
                    if (!this.isDebug) {
                        v32 = 0;
                    } else {
                        if (this.emptyBitmap == null) {
                            this.emptyBitmap = android.graphics.Bitmap.createBitmap(this.tileSize, this.tileSize, android.graphics.Bitmap$Config.ARGB_8888);
                        }
                        android.graphics.Bitmap v3 = this.emptyBitmap.copy(android.graphics.Bitmap$Config.ARGB_8888, 1);
                        this.drawDebugInfo(v3, p40, p41, p42, v7);
                        v32 = new com.google.android.gms.maps.model.Tile;
                        v32(this.tileSize, this.tileSize, this.bitmapToByteArray(v3));
                        v3.recycle();
                    }
                }
            } catch (java.util.HashSet v2_117) {
                throw v2_117;
            }
        } else {
            v32 = 0;
        }
        return v32;
    }

Method android.support.v4.provider.RawDocumentFile.renameTo() calling method java.io.File.<init>()


    public boolean renameTo(String p3)
    {
        int v1_1;
        java.io.File v0_1 = new java.io.File(this.mFile.getParentFile(), p3);
        if (!this.mFile.renameTo(v0_1)) {
            v1_1 = 0;
        } else {
            this.mFile = v0_1;
            v1_1 = 1;
        }
        return v1_1;
    }

Method android.support.v4.provider.RawDocumentFile.createFile() calling method java.io.File.<init>()


    public android.support.v4.provider.DocumentFile createFile(String p7, String p8)
    {
        String v1 = android.webkit.MimeTypeMap.getSingleton().getExtensionFromMimeType(p7);
        if (v1 != null) {
            p8 = new StringBuilder().append(p8).append(".").append(v1).toString();
        }
        java.io.File v2_1 = new java.io.File(this.mFile, p8);
        try {
            v2_1.createNewFile();
            int v3_5 = new android.support.v4.provider.RawDocumentFile(this, v2_1);
        } catch (java.io.IOException v0) {
            android.util.Log.w("DocumentFile", new StringBuilder().append("Failed to createFile: ").append(v0).toString());
            v3_5 = 0;
        }
        return v3_5;
    }

Method android.support.v4.provider.RawDocumentFile.createDirectory() calling method java.io.File.<init>()


    public android.support.v4.provider.DocumentFile createDirectory(String p3)
    {
        int v1_2;
        java.io.File v0_1 = new java.io.File(this.mFile, p3);
        if ((!v0_1.isDirectory()) && (!v0_1.mkdir())) {
            v1_2 = 0;
        } else {
            v1_2 = new android.support.v4.provider.RawDocumentFile(this, v0_1);
        }
        return v1_2;
    }

Method android.support.v4.content.FileProvider$SimplePathStrategy.getFileForUri() calling method java.io.File.<init>()


    public java.io.File getFileForUri(android.net.Uri p10)
    {
        String v2_1 = p10.getEncodedPath();
        int v4 = v2_1.indexOf(47, 1);
        String v5 = android.net.Uri.decode(v2_1.substring(1, v4));
        String vtmp6 = android.net.Uri.decode(v2_1.substring((v4 + 1)));
        java.io.File v3_1 = ((java.io.File) this.mRoots.get(v5));
        if (v3_1 != null) {
            try {
                java.io.File v1_2 = new java.io.File(v3_1, vtmp6).getCanonicalFile();
            } catch (java.io.IOException v0) {
                throw new IllegalArgumentException(new StringBuilder().append("Failed to resolve canonical path for ").append(v1_2).toString());
            }
            if (v1_2.getPath().startsWith(v3_1.getPath())) {
                return v1_2;
            } else {
                throw new SecurityException("Resolved path jumped beyond configured root");
            }
        } else {
            throw new IllegalArgumentException(new StringBuilder().append("Unable to find configured root for ").append(p10).toString());
        }
    }

Method plugin.google.maps.PluginUtil.unpackZipFromBytes() calling method java.io.File.<init>()


    public static java.util.ArrayList unpackZipFromBytes(java.io.InputStream p12, String p13)
    {
        java.util.ArrayList v6_1 = new java.util.ArrayList();
        try {
            java.util.zip.ZipInputStream v8_1 = new java.util.zip.ZipInputStream(new java.io.BufferedInputStream(p12));
            byte[] v0 = new byte[1024];
        } catch (java.io.IOException v3) {
            v3.printStackTrace();
            return v6_1;
        }
        while(true) {
            java.util.zip.ZipEntry v7 = v8_1.getNextEntry();
            if (v7 == null) {
                v8_1.close();
                p12.close();
                return v6_1;
            } else {
                String v5 = v7.getName();
                if (!v7.isDirectory()) {
                    v6_1.add(new java.io.File(new StringBuilder().append(p13).append("/").append(v5).toString()));
                    java.io.FileOutputStream v4_1 = new java.io.FileOutputStream(new StringBuilder().append(p13).append("/").append(v5).toString());
                    while(true) {
                        int v1 = v8_1.read(v0);
                        if (v1 == -1) {
                            break;
                        }
                    }
                    v4_1.close();
                    v8_1.closeEntry();
                } else {
                    java.io.File v2_1 = new java.io.File(new StringBuilder().append(p13).append("/").append(v5).toString());
                    v6_1.add(v2_1);
                    v2_1.mkdirs();
                }
            }
        }
        v4_1.write(v0, 0, v1);
    }

Method plugin.google.maps.AsyncLoadImage.doInBackground() calling method java.io.File.<init>()


    protected varargs plugin.google.maps.AsyncLoadImage$AsyncLoadImageResult doInBackground(Void[] p49)
    {
        plugin.google.maps.AsyncLoadImage$AsyncLoadImageResult v37_0;
        int v22_1 = this.mOptions.width;
        int v21_0 = this.mOptions.height;
        String v15_0 = this.mOptions.url;
        String v30 = v15_0;
        if (v15_0 != null) {
            String v7_2 = plugin.google.maps.AsyncLoadImage.getCacheKey(v30, v22_1, v21_0);
            android.graphics.Bitmap v16_1 = plugin.google.maps.AsyncLoadImage.getBitmapFromMemCache(v7_2);
            if (v16_1 == null) {
                if (!v15_0.startsWith("data:image")) {
                    if ((this.currentPageUrl.startsWith("http://localhost")) || (this.currentPageUrl.startsWith("http://127.0.0.1"))) {
                        if (!v15_0.contains("://")) {
                            v15_0 = "file:///android_asset/www/".concat(v15_0);
                        } else {
                            v15_0 = v15_0.replaceAll("http://.+?/", "file:///android_asset/www/");
                        }
                    }
                    if ((!v15_0.contains("://")) && ((!v15_0.startsWith("/")) && ((!v15_0.startsWith("www/")) && ((!v15_0.startsWith("data:image")) && ((!v15_0.startsWith("./")) && (!v15_0.startsWith("../"))))))) {
                        v15_0 = new StringBuilder().append("./").append(v15_0).toString();
                    }
                    if ((v15_0.startsWith("./")) || (v15_0.startsWith("../"))) {
                        String v15_1 = v15_0.replace("(\\.\\/)+", "./");
                        String v10_3 = this.currentPageUrl.replaceAll("[^\\/]*$", "").replaceAll("#.*$", "").replaceAll("\\/[^\\/]+\\.[^\\/]+$", "");
                        if (!v10_3.endsWith("/")) {
                            v10_3 = new StringBuilder().append(v10_3).append("/").toString();
                        }
                        v15_0 = new StringBuilder().append(v10_3).append(v15_1).toString().replaceAll("(\\/\\.\\/+)+", "/");
                    }
                    if ((v15_0.indexOf("file://") != 0) || (v15_0.contains("file:///android_asset/"))) {
                        if (v15_0.contains("./")) {
                            try {
                                boolean v20 = v15_0.startsWith("/");
                                java.io.File v36 = new java.io.File;
                                v36(v15_0);
                                v15_0 = v36.getCanonicalPath();
                            } catch (Exception v12_0) {
                                v12_0.printStackTrace();
                            }
                            if (!v20) {
                                v15_0 = v15_0.substring(1);
                            }
                        }
                    } else {
                        v15_0 = v15_0.replace("file://", "");
                    }
                }
                String v7_0 = plugin.google.maps.AsyncLoadImage.getCacheKey(v15_0, v22_1, v21_0);
                android.graphics.Bitmap v16_0 = plugin.google.maps.AsyncLoadImage.getBitmapFromMemCache(v7_0);
                if (v16_0 == null) {
                    String v7_1 = plugin.google.maps.AsyncLoadImage.getCacheKey(v30, v22_1, v21_0);
                    if (v15_0.indexOf("http") != 0) {
                        if ((v15_0.indexOf("data:image/") != 0) || (!v15_0.contains(";base64,"))) {
                            java.io.FileInputStream v18_0 = 0;
                            try {
                                if (!v15_0.startsWith("file:/android_asset/")) {
                                    if (!v15_0.startsWith("file:///android_asset/")) {
                                        if (v15_0.startsWith("/")) {
                                            java.io.FileInputStream v19 = new java.io.FileInputStream;
                                            v19(new java.io.File(v15_0));
                                            v18_0 = v19;
                                        }
                                    } else {
                                        android.content.res.AssetManager v5_0 = this.cordova.getActivity().getAssets();
                                        v15_0 = v15_0.replace("file:///android_asset/", "");
                                        v18_0 = v5_0.open(v15_0);
                                    }
                                } else {
                                    android.content.res.AssetManager v5_1 = this.cordova.getActivity().getAssets();
                                    v15_0 = v15_0.replace("file:/android_asset/", "");
                                    v18_0 = v5_1.open(v15_0);
                                }
                            } catch (Exception v12_1) {
                                v12_1.printStackTrace();
                                v37_0 = 0;
                                return v37_0;
                            }
                            if (v18_0 == null) {
                                android.util.Log.e("AsyncLoadImage", new StringBuilder().append("Can not load the file from \'").append(v15_0).append("\'").toString());
                                v37_0 = 0;
                                return v37_0;
                            } else {
                                android.graphics.Bitmap v16_2 = android.graphics.BitmapFactory.decodeStream(v18_0);
                                v18_0.close();
                            }
                        } else {
                            v16_2 = plugin.google.maps.PluginUtil.getBitmapFromBase64encodedImage(v15_0.split(",")[1]);
                        }
                        if ((v22_1 <= 0) || (v21_0 <= 0)) {
                            android.graphics.Bitmap v16_3 = plugin.google.maps.PluginUtil.scaleBitmapForDevice(v16_2);
                        } else {
                            v16_3 = plugin.google.maps.PluginUtil.resizeBitmap(v16_2, Math.round((((float) v22_1) * this.density)), Math.round((((float) v21_0) * this.density)));
                        }
                        v37_0 = new plugin.google.maps.AsyncLoadImage$AsyncLoadImageResult();
                        v37_0.image = v16_3;
                        v37_0.cacheHit = 0;
                        if (!this.mOptions.noCaching) {
                            v37_0.cacheKey = v7_1;
                            plugin.google.maps.AsyncLoadImage.addBitmapToMemoryCache(v7_1, v16_3);
                        }
                    } else {
                        try {
                            java.net.URL v42_0 = new java.net.URL;
                            v42_0(v15_0);
                            int v34 = 1;
                            java.net.HttpURLConnection v14_0 = 0;
                            String v9 = 0;
                            int v35 = 0;
                            java.net.URL v43 = v42_0;
                        } catch (Exception v12_3) {
                            v12_3.printStackTrace();
                            v37_0 = 0;
                        }
                        while ((v34 != 0) && (v35 < 10)) {
                            v34 = 0;
                            v14_0 = ((java.net.HttpURLConnection) v43.openConnection());
                            v14_0.setRequestMethod("GET");
                            if (v9 != null) {
                                v14_0.setRequestProperty("Cookie", v9);
                            }
                            v14_0.addRequestProperty("Accept-Language", "en-US,en;q=0.8");
                            v14_0.addRequestProperty("User-Agent", this.userAgent);
                            v14_0.setInstanceFollowRedirects(1);
                            java.net.HttpURLConnection.setFollowRedirects(1);
                            try {
                                int v40 = v14_0.getResponseCode();
                            } catch (Exception v12_2) {
                                java.net.URL v42_1 = v43;
                                android.util.Log.e("AsyncLoadImage", new StringBuilder().append("can not connect to ").append(v15_0).toString(), v12_2);
                                v43 = v42_1;
                            }
                            if ((v40 != 200) && ((v40 == 302) || ((v40 == 301) || (v40 == 303)))) {
                                v34 = 1;
                            }
                            if (v34 == 0) {
                                if (v40 == 200) {
                                    break;
                                }
                                v37_0 = 0;
                                return v37_0;
                            } else {
                                v42_1 = new java.net.URL;
                                v42_1(v14_0.getHeaderField("Location"));
                                try {
                                    v9 = v14_0.getHeaderField("Set-Cookie");
                                    v14_0.disconnect();
                                    v35++;
                                    v43 = v42_1;
                                } catch (Exception v12_2) {
                                }
                            }
                        }
                        java.io.FileInputStream v18_1 = v14_0.getInputStream();
                        java.io.ByteArrayOutputStream v6_1 = new java.io.ByteArrayOutputStream();
                        byte[] v11 = new byte[16384];
                        while(true) {
                            int v26 = v18_1.read(v11, 0, v11.length);
                            if (v26 == -1) {
                                break;
                            }
                            v6_1.write(v11, 0, v26);
                        }
                        v6_1.flush();
                        v18_1.close();
                        int v17 = v6_1.toByteArray();
                        android.graphics.BitmapFactory$Options v29_1 = new android.graphics.BitmapFactory$Options();
                        v29_1.inJustDecodeBounds = 1;
                        v29_1.inPreferredConfig = android.graphics.Bitmap$Config.ARGB_8888;
                        android.graphics.BitmapFactory.decodeByteArray(v17, 0, v17.length, v29_1);
                        if ((v22_1 < 1) && (v21_0 < 1)) {
                            v22_1 = v29_1.outWidth;
                            v21_0 = v29_1.outHeight;
                        }
                        int v28 = ((int) (((float) v22_1) * this.density));
                        int v27 = ((int) (((float) v21_0) * this.density));
                        if ((v28 > 2000) || (v27 > 2000)) {
                            float v33;
                            if (v28 < v27) {
                                v33 = (1157234688 / ((float) v27));
                            } else {
                                v33 = (1157234688 / ((float) v28));
                            }
                            v28 = ((int) (((float) v28) * v33));
                            v27 = ((int) (((float) v27) * v33));
                            android.util.Log.w("AsyncLoadImage", "Since the image size is too large, the image size resizes down mandatory");
                        }
                        android.graphics.Bitmap v39 = android.graphics.Bitmap.createBitmap(v28, v27, android.graphics.Bitmap$Config.ARGB_8888);
                        float v31 = (((float) v28) / ((float) v29_1.outWidth));
                        float v32 = (((float) v27) / ((float) v29_1.outHeight));
                        float v23 = (((float) v28) / 1073741824);
                        float v24 = (((float) v27) / 1073741824);
                        v29_1.inJustDecodeBounds = 0;
                        v29_1.outWidth = v28;
                        v29_1.outHeight = v27;
                        android.graphics.Matrix v38_1 = new android.graphics.Matrix();
                        v38_1.setScale(v31, v32, v23, v24);
                        int v8_1 = new android.graphics.Canvas(v39);
                        v8_1.setMatrix(v38_1);
                        int v25 = android.graphics.BitmapFactory.decodeByteArray(v17, 0, v17.length, v29_1);
                        v8_1.drawBitmap(v25, (v23 - ((float) (v29_1.outWidth / 2))), (v24 - ((float) (v29_1.outHeight / 2))), new android.graphics.Paint(2));
                        v25.recycle();
                        int v8 = 0;
                        v37_0 = new plugin.google.maps.AsyncLoadImage$AsyncLoadImageResult();
                        v37_0.image = v39;
                        v37_0.cacheHit = 0;
                        if (!this.mOptions.noCaching) {
                            v37_0.cacheKey = v7_1;
                            plugin.google.maps.AsyncLoadImage.addBitmapToMemoryCache(v7_1, v39);
                        }
                    }
                } else {
                    v37_0 = new plugin.google.maps.AsyncLoadImage$AsyncLoadImageResult();
                    v37_0.image = v16_0;
                    v37_0.cacheHit = 1;
                    v37_0.cacheKey = v7_0;
                }
            } else {
                v37_0 = new plugin.google.maps.AsyncLoadImage$AsyncLoadImageResult();
                v37_0.image = v16_1;
                v37_0.cacheHit = 1;
                v37_0.cacheKey = v7_2;
            }
        } else {
            v37_0 = 0;
        }
        return v37_0;
    }

Method org.apache.cordova.CordovaResourceApi.remapPath() calling method java.io.File.<init>()


    public String remapPath(String p2)
    {
        return this.remapUri(android.net.Uri.fromFile(new java.io.File(p2))).getPath();
    }

Method org.apache.cordova.CordovaResourceApi.openOutputStream() calling method java.io.File.<init>()


    public java.io.OutputStream openOutputStream(android.net.Uri p7, boolean p8)
    {
        java.io.FileOutputStream v3_0;
        this.assertBackgroundThread();
        switch (org.apache.cordova.CordovaResourceApi.getUriType(p7)) {
            case 0:
                java.io.File v1_1 = new java.io.File(p7.getPath());
                java.io.File v2 = v1_1.getParentFile();
                if (v2 != null) {
                    v2.mkdirs();
                }
                v3_0 = new java.io.FileOutputStream(v1_1, p8);
                break;
            case 1:
            default:
                throw new java.io.FileNotFoundException(new StringBuilder().append("URI not supported by CordovaResourceApi: ").append(p7).toString());
                break;
            case 2:
            case 3:
                java.io.FileOutputStream v3_6;
                if (!p8) {
                    v3_6 = "w";
                } else {
                    v3_6 = "wa";
                }
                v3_0 = this.contentResolver.openAssetFileDescriptor(p7, v3_6).createOutputStream();
                break;
        }
        return v3_0;
    }

Method org.apache.cordova.CordovaResourceApi.mapUriToFile() calling method java.io.File.<init>()


    public java.io.File mapUriToFile(android.net.Uri p10)
    {
        java.io.File v3_0 = 0;
        this.assertBackgroundThread();
        switch (org.apache.cordova.CordovaResourceApi.getUriType(p10)) {
            case 0:
                v3_0 = new java.io.File(p10.getPath());
            case 1:
            default:
                break;
            case 2:
                android.database.Cursor v7 = this.contentResolver.query(p10, org.apache.cordova.CordovaResourceApi.LOCAL_FILE_PROJECTION, 0, 0, 0);
                if (v7 == null) {
                } else {
                    try {
                        int v6 = v7.getColumnIndex(org.apache.cordova.CordovaResourceApi.LOCAL_FILE_PROJECTION[0]);
                    } catch (int v0_4) {
                        v7.close();
                        throw v0_4;
                    }
                    if ((v6 != -1) && (v7.getCount() > 0)) {
                        v7.moveToFirst();
                        String v8 = v7.getString(v6);
                        if (v8 != null) {
                            v3_0 = new java.io.File(v8);
                            v7.close();
                        }
                    }
                    v7.close();
                }
                break;
        }
        return v3_0;
    }

Method com.ionicframework.cordova.webview.AndroidProtocolHandler.openFile() calling method java.io.File.<init>()


    public java.io.InputStream openFile(String p3)
    {
        return new java.io.FileInputStream(new java.io.File(p3));
    }

Method com.ionicframework.cordova.webview.AndroidProtocolHandler.openAsset() calling method java.io.File.<init>()


    public java.io.InputStream openAsset(String p5, String p6)
    {
        java.io.FileInputStream v2_5;
        if (!p5.startsWith(new StringBuilder().append(p6).append("/_file_").toString())) {
            v2_5 = this.context.getAssets().open(p5, 2);
        } else {
            if (!p5.contains("content://")) {
                v2_5 = new java.io.FileInputStream(new java.io.File(p5.replace(new StringBuilder().append(p6).append("/_file_/").toString(), "")));
            } else {
                v2_5 = this.context.getContentResolver().openInputStream(android.net.Uri.parse(p5.replace(new StringBuilder().append(p6).append("/_file_/").toString(), "content://")));
            }
        }
        return v2_5;
    }

Method com.google.android.gms.common.util.SharedPreferencesUtils.publishWorldReadableSharedPreferences() calling method java.io.File.<init>()


    public static void publishWorldReadableSharedPreferences(android.content.Context p6, android.content.SharedPreferences$Editor p7, String p8)
    {
        java.io.File v0_1 = new java.io.File(p6.getApplicationInfo().dataDir, "shared_prefs");
        java.io.File v1_4 = v0_1.getParentFile();
        if (v1_4 != null) {
            v1_4.setExecutable(1, 0);
        }
        v0_1.setExecutable(1, 0);
        p7.commit();
        new java.io.File(v0_1, String.valueOf(p8).concat(".xml")).setReadable(1, 0);
        return;
    }

Method android.support.v4.util.AtomicFile.<init>() calling method java.io.File.<init>()


    public AtomicFile(java.io.File p4)
    {
        this.mBaseName = p4;
        this.mBackupName = new java.io.File(new StringBuilder().append(p4.getPath()).append(".bak").toString());
        return;
    }

Method android.support.v4.graphics.TypefaceCompatUtil.getTempFile() calling method java.io.File.<init>()


    public static java.io.File getTempFile(android.content.Context p5)
    {
        String v2 = new StringBuilder().append(".font").append(android.os.Process.myPid()).append("-").append(android.os.Process.myTid()).append("-").toString();
        int v1 = 0;
        while (v1 < 100) {
            int v0_0 = new java.io.File(p5.getCacheDir(), new StringBuilder().append(v2).append(v1).toString());
            try {
                if (v0_0.createNewFile()) {
                    return v0_0;
                }
                v1++;
            } catch (java.io.IOException v3) {
            }
        }
        v0_0 = 0;
        return v0_0;
    }

Method android.support.v4.content.FileProvider.buildPath() calling method java.io.File.<init>()


    private static varargs java.io.File buildPath(java.io.File p5, String[] p6)
    {
        int v4 = p6.length;
        int v3 = 0;
        java.io.File v1 = p5;
        while (v3 < v4) {
            java.io.File v0_1;
            String v2 = p6[v3];
            if (v2 == null) {
                v0_1 = v1;
            } else {
                v0_1 = new java.io.File(v1, v2);
            }
            v3++;
            v1 = v0_1;
        }
        return v1;
    }

Method android.support.v4.content.FileProvider.<clinit>() calling method java.io.File.<init>()


    static FileProvider()
    {
        java.util.HashMap v0_1 = new String[2];
        v0_1[0] = "_display_name";
        v0_1[1] = "_size";
        android.support.v4.content.FileProvider.COLUMNS = v0_1;
        android.support.v4.content.FileProvider.DEVICE_ROOT = new java.io.File("/");
        android.support.v4.content.FileProvider.sCache = new java.util.HashMap();
        return;
    }

Method android.support.v4.content.ContextCompat.getNoBackupFilesDir() calling method java.io.File.<init>()


    public static java.io.File getNoBackupFilesDir(android.content.Context p4)
    {
        java.io.File v1_1;
        if (android.os.Build$VERSION.SDK_INT < 21) {
            v1_1 = android.support.v4.content.ContextCompat.createFilesDir(new java.io.File(p4.getApplicationInfo().dataDir, "no_backup"));
        } else {
            v1_1 = p4.getNoBackupFilesDir();
        }
        return v1_1;
    }

Method android.support.v4.content.ContextCompat.getDataDir() calling method java.io.File.<init>()


    public static java.io.File getDataDir(android.content.Context p3)
    {
        int v1_1;
        if (android.os.Build$VERSION.SDK_INT < 24) {
            String v0 = p3.getApplicationInfo().dataDir;
            if (v0 == null) {
                v1_1 = 0;
            } else {
                v1_1 = new java.io.File(v0);
            }
        } else {
            v1_1 = p3.getDataDir();
        }
        return v1_1;
    }

Method android.support.v4.content.ContextCompat.getCodeCacheDir() calling method java.io.File.<init>()


    public static java.io.File getCodeCacheDir(android.content.Context p4)
    {
        java.io.File v1_1;
        if (android.os.Build$VERSION.SDK_INT < 21) {
            v1_1 = android.support.v4.content.ContextCompat.createFilesDir(new java.io.File(p4.getApplicationInfo().dataDir, "code_cache"));
        } else {
            v1_1 = p4.getCodeCacheDir();
        }
        return v1_1;
    }

Method android.support.v4.content.ContextCompat.buildPath() calling method java.io.File.<init>()


    private static varargs java.io.File buildPath(java.io.File p5, String[] p6)
    {
        int v4 = p6.length;
        int v3 = 0;
        java.io.File v1 = p5;
        while (v3 < v4) {
            java.io.File v0_2;
            String v2 = p6[v3];
            if (v1 != null) {
                if (v2 == null) {
                    v0_2 = v1;
                } else {
                    v0_2 = new java.io.File(v1, v2);
                }
            } else {
                v0_2 = new java.io.File(v2);
            }
            v3++;
            v1 = v0_2;
        }
        return v1;
    }

Method com.google.android.gms.common.util.IOUtils.lockAndTruncateFile() calling method java.io.RandomAccessFile.<init>()


    public static void lockAndTruncateFile(java.io.File p6)
    {
        java.io.IOException v1 = 0;
        if (p6.exists()) {
            try {
                int v2_1 = new java.io.RandomAccessFile(p6, "rw");
                try {
                    java.io.IOException v0_0 = v2_1.getChannel();
                    v1 = v0_0.lock();
                    v0_0.truncate(0);
                } catch (java.io.IOException v0_1) {
                    if (v1 != null) {
                        if (v1.isValid()) {
                            try {
                                v1.release();
                            } catch (java.io.IOException v1) {
                            }
                        }
                    }
                    if (v2_1 != 0) {
                        com.google.android.gms.common.util.IOUtils.closeQuietly(v2_1);
                    }
                    throw v0_1;
                }
                if ((v1 != null) && (v1.isValid())) {
                    try {
                        v1.release();
                    } catch (java.io.IOException v0) {
                    }
                }
                com.google.android.gms.common.util.IOUtils.closeQuietly(v2_1);
                return;
            } catch (java.io.IOException v0_1) {
                v2_1 = 0;
            }
        } else {
            throw new java.io.FileNotFoundException();
        }
    }