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.zzajx() calling method java.io.FileOutputStream.<init>()


    private final java.io.FileOutputStream zzajx()
    {
        if (this.zzfvt != null) {
            try {
                IllegalStateException v0_6 = java.io.File.createTempFile("teleporter", ".tmp", this.zzfvt);
                try {
                    String v1_2 = new java.io.FileOutputStream(v0_6);
                    this.zzcpy = 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.zzcpy = 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 org.apache.cordova.file.LocalFilesystem.writeToFileAtURL() calling method java.io.FileOutputStream.<init>()


    public long writeToFileAtURL(org.apache.cordova.file.LocalFilesystemURL p12, String p13, int p14, boolean p15)
    {
        int v1 = 0;
        if (p14 > 0) {
            this.truncateFileAtURL(p12, ((long) p14));
            v1 = 1;
        }
        byte[] v6;
        if (!p15) {
            v6 = p13.getBytes(java.nio.charset.Charset.defaultCharset());
        } else {
            v6 = android.util.Base64.decode(p13, 0);
        }
        java.io.ByteArrayInputStream v4_1 = new java.io.ByteArrayInputStream(v6);
        try {
            byte[] v2 = new byte[v6.length];
            String v0 = this.filesystemPathForURL(p12);
            java.io.FileOutputStream v5_1 = new java.io.FileOutputStream(v0, v1);
            try {
                v4_1.read(v2, 0, v2.length);
                v5_1.write(v2, 0, v6.length);
                v5_1.flush();
            } catch (long v8_3) {
                v5_1.close();
                throw v8_3;
            }
            v5_1.close();
            if (this.isPublicDirectory(v0)) {
                this.broadcastNewFile(android.net.Uri.fromFile(new java.io.File(v0)));
            }
            return ((long) v6.length);
        } catch (NullPointerException v3) {
            org.apache.cordova.file.NoModificationAllowedException v7_1 = new org.apache.cordova.file.NoModificationAllowedException(p12.toString());
            v7_1.initCause(v3);
            throw v7_1;
        }
    }

Method org.apache.cordova.file.LocalFilesystem.copyFile() calling method java.io.FileOutputStream.<init>()


    private void copyFile(org.apache.cordova.file.Filesystem p6, org.apache.cordova.file.LocalFilesystemURL p7, java.io.File p8, boolean p9)
    {
        if (!p9) {
            org.apache.cordova.file.LocalFilesystem.copyResource(this.resourceApi.openForRead(p6.toNativeUri(p7)), new java.io.FileOutputStream(p8));
            if (p9) {
                p6.removeFileAtLocalURL(p7);
            }
        } else {
            String v1 = p6.filesystemPathForURL(p7);
            if ((v1 == null) || (!new java.io.File(v1).renameTo(p8))) {
            }
        }
        return;
    }

Method com.google.android.gms.internal.zzal.zza() calling method java.io.FileOutputStream.<init>()


    public final declared_synchronized void zza(String p13, com.google.android.gms.internal.zzc p14)
    {
        int v1_0 = 0;
        try {
            Object[] v2_4 = p14.data.length;
        } catch (int v0_4) {
            throw v0_4;
        }
        if ((this.zzby + ((long) v2_4)) >= ((long) this.zzca)) {
            if (com.google.android.gms.internal.zzae.DEBUG) {
                Long v3_5 = new Object[0];
                com.google.android.gms.internal.zzae.zza("Pruning old cache entries.", v3_5);
            }
            long v4_1 = this.zzby;
            long v6_0 = android.os.SystemClock.elapsedRealtime();
            Long v3_6 = this.zzbx.entrySet().iterator();
            while (v3_6.hasNext()) {
                int v0_12 = ((com.google.android.gms.internal.zzam) ((java.util.Map$Entry) v3_6.next()).getValue());
                if (!this.zze(v0_12.key).delete()) {
                    int v9_1 = new Object[2];
                    v9_1[0] = v0_12.key;
                    v9_1[1] = com.google.android.gms.internal.zzal.zzd(v0_12.key);
                    com.google.android.gms.internal.zzae.zzb("Could not delete cache entry for key=%s, filename=%s", v9_1);
                } else {
                    this.zzby = (this.zzby - v0_12.zzcb);
                }
                v3_6.remove();
                int v0_8 = (v1_0 + 1);
                if (((float) (this.zzby + ((long) v2_4))) >= (((float) this.zzca) * 1063675494)) {
                    v1_0 = v0_8;
                }
                if (com.google.android.gms.internal.zzae.DEBUG) {
                    Object[] v2_6 = new Object[3];
                    v2_6[0] = Integer.valueOf(v0_8);
                    v2_6[1] = Long.valueOf((this.zzby - v4_1));
                    v2_6[2] = Long.valueOf((android.os.SystemClock.elapsedRealtime() - v6_0));
                    com.google.android.gms.internal.zzae.zza("pruned %d files, %d bytes, %d ms", v2_6);
                }
            }
            v0_8 = v1_0;
        }
        int v0_20 = this.zze(p13);
        try {
            int v1_11 = new java.io.BufferedOutputStream(new java.io.FileOutputStream(v0_20));
            Object[] v2_10 = new com.google.android.gms.internal.zzam(p13, p14);
        } catch (int v1) {
            if (v0_20.delete()) {
                return;
            } else {
                Object[] v2_3 = new Object[1];
                v2_3[0] = v0_20.getAbsolutePath();
                com.google.android.gms.internal.zzae.zzb("Could not clean up file %s", v2_3);
                return;
            }
        }
        if (v2_10.zza(v1_11)) {
            v1_11.write(p14.data);
            v1_11.close();
            this.zza(p13, v2_10);
            return;
        } else {
            v1_11.close();
            Object[] v2_1 = new Object[1];
            v2_1[0] = v0_20.getAbsolutePath();
            com.google.android.gms.internal.zzae.zzb("Failed to write header for %s", v2_1);
            throw new java.io.IOException();
        }
    }

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 okio.Okio.sink() calling method java.io.FileOutputStream.<init>()


    public static okio.Sink sink(java.io.File p2)
    {
        if (p2 != null) {
            return okio.Okio.sink(new java.io.FileOutputStream(p2));
        } else {
            throw new IllegalArgumentException("file == null");
        }
    }

Method okio.Okio.appendingSink() calling method java.io.FileOutputStream.<init>()


    public static okio.Sink appendingSink(java.io.File p2)
    {
        if (p2 != null) {
            return okio.Okio.sink(new java.io.FileOutputStream(p2, 1));
        } else {
            throw new IllegalArgumentException("file == null");
        }
    }

Method com.google.android.gms.internal.zzdhi.zze() calling method java.io.FileOutputStream.<init>()


    final void zze(String p4, byte[] p5)
    {
        String v0_0 = this.zzmw(p4);
        try {
            String v1_4 = new java.io.FileOutputStream(v0_0);
            try {
                v1_4.write(p5);
                try {
                    v1_4.close();
                    com.google.android.gms.internal.zzcze.v(new StringBuilder((String.valueOf(p4).length() + 24)).append("Resource ").append(p4).append(" saved on Disk.").toString());
                } catch (String v0) {
                    com.google.android.gms.internal.zzcze.e("Error closing stream for writing resource to disk");
                }
                return;
            } catch (String v0_10) {
                try {
                    v1_4.close();
                    com.google.android.gms.internal.zzcze.v(new StringBuilder((String.valueOf(p4).length() + 24)).append("Resource ").append(p4).append(" saved on Disk.").toString());
                } catch (String v1) {
                    com.google.android.gms.internal.zzcze.e("Error closing stream for writing resource to disk");
                }
                throw v0_10;
            } catch (String v2) {
                com.google.android.gms.internal.zzcze.e("Error writing resource to disk. Removing resource from disk");
                v0_0.delete();
                try {
                    v1_4.close();
                    com.google.android.gms.internal.zzcze.v(new StringBuilder((String.valueOf(p4).length() + 24)).append("Resource ").append(p4).append(" saved on Disk.").toString());
                } catch (String v0) {
                    com.google.android.gms.internal.zzcze.e("Error closing stream for writing resource to disk");
                }
                return;
            }
        } catch (String v0) {
            com.google.android.gms.internal.zzcze.e("Error opening resource file for writing");
            return;
        }
    }

Method com.github.kevinsawicki.http.HttpRequest.receive() calling method java.io.FileOutputStream.<init>()


    public com.github.kevinsawicki.http.HttpRequest receive(java.io.File p5)
    {
        try {
            return ((com.github.kevinsawicki.http.HttpRequest) new com.github.kevinsawicki.http.HttpRequest$5(this, new java.io.BufferedOutputStream(new java.io.FileOutputStream(p5), this.bufferSize), this.ignoreCloseExceptions, new java.io.BufferedOutputStream(new java.io.FileOutputStream(p5), this.bufferSize)).call());
        } catch (java.io.FileNotFoundException v0) {
            throw new com.github.kevinsawicki.http.HttpRequest$HttpRequestException(v0);
        }
    }

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.PrintHelperKitkat$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.PrintHelperKitkat.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.PrintHelperKitkat.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 com.google.android.gms.internal.zzal.zza() calling method java.io.FileInputStream.<init>()


    private static java.io.InputStream zza(java.io.File p1)
    {
        return new java.io.FileInputStream(p1);
    }

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 okio.Okio.source() calling method java.io.FileInputStream.<init>()


    public static okio.Source source(java.io.File p2)
    {
        if (p2 != null) {
            return okio.Okio.source(new java.io.FileInputStream(p2));
        } else {
            throw new IllegalArgumentException("file == null");
        }
    }

Method com.google.android.gms.internal.zzdhi.zzb() calling method java.io.FileInputStream.<init>()


    final void zzb(String p4, com.google.android.gms.internal.zzdgw p5)
    {
        com.google.android.gms.internal.zzcze.v("Starting to load a saved resource file from Disk.");
        try {
            p5.zzx(com.google.android.gms.internal.zzdhi.zzg(new java.io.FileInputStream(this.zzmw(p4))));
        } catch (int v0) {
            int v0_2 = String.valueOf(com.google.android.gms.internal.zzdhi.zzmx(p4));
            if (v0_2.length() == 0) {
                int v0_4 = new String("Saved resource not found: ");
            } else {
                v0_4 = "Saved resource not found: ".concat(v0_2);
            }
            com.google.android.gms.internal.zzcze.e(v0_4);
            p5.zzo(0, 1);
        }
        return;
    }

Method com.github.kevinsawicki.http.HttpRequest.send() calling method java.io.FileInputStream.<init>()


    public com.github.kevinsawicki.http.HttpRequest send(java.io.File p5)
    {
        try {
            java.io.BufferedInputStream v1_1 = new java.io.BufferedInputStream(new java.io.FileInputStream(p5));
            this.incrementTotalSize(p5.length());
            return this.send(v1_1);
        } catch (java.io.FileNotFoundException v0) {
            throw new com.github.kevinsawicki.http.HttpRequest$HttpRequestException(v0);
        }
    }

Method com.github.kevinsawicki.http.HttpRequest.part() calling method java.io.FileInputStream.<init>()


    public com.github.kevinsawicki.http.HttpRequest part(String p5, String p6, String p7, java.io.File p8)
    {
        try {
            java.io.BufferedInputStream v1_1 = new java.io.BufferedInputStream(new java.io.FileInputStream(p8));
            this.incrementTotalSize(p8.length());
            return this.part(p5, p6, p7, v1_1);
        } catch (java.io.IOException v0) {
            throw new com.github.kevinsawicki.http.HttpRequest$HttpRequestException(v0);
        }
    }

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 com.google.android.gms.common.util.zzs.zzcj() calling method java.io.FileReader.<init>()


    private static String zzcj(int p7)
    {
        Throwable v0_0 = 0;
        if (p7 > 0) {
            try {
                java.io.IOException v2_0 = android.os.StrictMode.allowThreadDiskReads();
                try {
                    Throwable v1_0 = new java.io.BufferedReader(new java.io.FileReader(new StringBuilder(25).append("/proc/").append(p7).append("/cmdline").toString()));
                    try {
                        android.os.StrictMode.setThreadPolicy(v2_0);
                        v0_0 = v1_0.readLine().trim();
                        com.google.android.gms.common.util.zzn.closeQuietly(v1_0);
                    } catch (Throwable v0_1) {
                        com.google.android.gms.common.util.zzn.closeQuietly(v1_0);
                        throw v0_1;
                    } catch (java.io.IOException v2) {
                        com.google.android.gms.common.util.zzn.closeQuietly(v1_0);
                    }
                } catch (Throwable v1_1) {
                    android.os.StrictMode.setThreadPolicy(v2_0);
                    throw v1_1;
                }
            } catch (Throwable v1_2) {
                v1_0 = 0;
                v0_1 = v1_2;
            } catch (Throwable v1) {
                v1_0 = 0;
            }
        }
        return v0_0;
    }

Method com.google.android.gms.internal.zzcgo.zza() calling method java.io.File.<init>()


    static void zza(com.google.android.gms.internal.zzchm p5, android.database.sqlite.SQLiteDatabase p6)
    {
        if (p5 != null) {
            com.google.android.gms.internal.zzcho v0_5 = new java.io.File(p6.getPath());
            if (!v0_5.setReadable(0, 0)) {
                p5.zzazf().log("Failed to turn off database read permission");
            }
            if (!v0_5.setWritable(0, 0)) {
                p5.zzazf().log("Failed to turn off database write permission");
            }
            if (!v0_5.setReadable(1, 1)) {
                p5.zzazf().log("Failed to turn on database read permission for owner");
            }
            if (!v0_5.setWritable(1, 1)) {
                p5.zzazf().log("Failed to turn on database write permission for owner");
            }
            return;
        } else {
            throw new IllegalArgumentException("Monitor must not be null");
        }
    }

Method org.apache.cordova.file.LocalFilesystem.writeToFileAtURL() calling method java.io.File.<init>()


    public long writeToFileAtURL(org.apache.cordova.file.LocalFilesystemURL p12, String p13, int p14, boolean p15)
    {
        int v1 = 0;
        if (p14 > 0) {
            this.truncateFileAtURL(p12, ((long) p14));
            v1 = 1;
        }
        byte[] v6;
        if (!p15) {
            v6 = p13.getBytes(java.nio.charset.Charset.defaultCharset());
        } else {
            v6 = android.util.Base64.decode(p13, 0);
        }
        java.io.ByteArrayInputStream v4_1 = new java.io.ByteArrayInputStream(v6);
        try {
            byte[] v2 = new byte[v6.length];
            String v0 = this.filesystemPathForURL(p12);
            java.io.FileOutputStream v5_1 = new java.io.FileOutputStream(v0, v1);
            try {
                v4_1.read(v2, 0, v2.length);
                v5_1.write(v2, 0, v6.length);
                v5_1.flush();
            } catch (long v8_3) {
                v5_1.close();
                throw v8_3;
            }
            v5_1.close();
            if (this.isPublicDirectory(v0)) {
                this.broadcastNewFile(android.net.Uri.fromFile(new java.io.File(v0)));
            }
            return ((long) v6.length);
        } catch (NullPointerException v3) {
            org.apache.cordova.file.NoModificationAllowedException v7_1 = new org.apache.cordova.file.NoModificationAllowedException(p12.toString());
            v7_1.initCause(v3);
            throw v7_1;
        }
    }

Method org.apache.cordova.file.LocalFilesystem.truncateFileAtURL() calling method java.io.File.<init>()


    public long truncateFileAtURL(org.apache.cordova.file.LocalFilesystemURL p7, long p8)
    {
        if (new java.io.File(this.filesystemPathForURL(p7)).exists()) {
            java.io.RandomAccessFile v2_0 = new java.io.RandomAccessFile(this.filesystemPathForURL(p7), "rw");
            try {
                if (v2_0.length() < p8) {
                    p8 = v2_0.length();
                    v2_0.close();
                } else {
                    v2_0.getChannel().truncate(p8);
                    v2_0.close();
                }
            } catch (Throwable v3_1) {
                v2_0.close();
                throw v3_1;
            }
            return p8;
        } else {
            throw new java.io.FileNotFoundException(new StringBuilder().append("File at ").append(p7.uri).append(" does not exist.").toString());
        }
    }

Method org.apache.cordova.file.LocalFilesystem.toLocalUri() calling method java.io.File.<init>()


    public org.apache.cordova.file.LocalFilesystemURL toLocalUri(android.net.Uri p9)
    {
        org.apache.cordova.file.LocalFilesystemURL v5_0 = 0;
        if ("file".equals(p9.getScheme())) {
            java.io.File v1_0 = new java.io.File(p9.getPath());
            android.net.Uri v2 = android.net.Uri.fromFile(v1_0);
            String v3_0 = this.rootUri.getEncodedPath();
            String v3_1 = v3_0.substring(0, (v3_0.length() - 1));
            if (v2.getEncodedPath().startsWith(v3_1)) {
                String v4 = v2.getEncodedPath().substring(v3_1.length());
                if (!v4.isEmpty()) {
                    v4 = v4.substring(1);
                }
                android.net.Uri$Builder v0 = new android.net.Uri$Builder().scheme("cdvfile").authority("localhost").path(this.name);
                if (!v4.isEmpty()) {
                    v0.appendEncodedPath(v4);
                }
                if (v1_0.isDirectory()) {
                    v0.appendEncodedPath("");
                }
                v5_0 = org.apache.cordova.file.LocalFilesystemURL.parse(v0.build());
            }
        }
        return v5_0;
    }

Method org.apache.cordova.file.LocalFilesystem.removeFileAtLocalURL() calling method java.io.File.<init>()


    public boolean removeFileAtLocalURL(org.apache.cordova.file.LocalFilesystemURL p4)
    {
        java.io.File v0_1 = new java.io.File(this.filesystemPathForURL(p4));
        if ((!v0_1.isDirectory()) || (v0_1.list().length <= 0)) {
            return v0_1.delete();
        } else {
            throw new org.apache.cordova.file.InvalidModificationException("You can\'t delete a directory that is not empty.");
        }
    }

Method org.apache.cordova.file.LocalFilesystem.recursiveRemoveFileAtLocalURL() calling method java.io.File.<init>()


    public boolean recursiveRemoveFileAtLocalURL(org.apache.cordova.file.LocalFilesystemURL p3)
    {
        return this.removeDirRecursively(new java.io.File(this.filesystemPathForURL(p3)));
    }

Method org.apache.cordova.file.LocalFilesystem.listChildren() calling method java.io.File.<init>()


    public org.apache.cordova.file.LocalFilesystemURL[] listChildren(org.apache.cordova.file.LocalFilesystemURL p6)
    {
        java.io.File v2_1 = new java.io.File(this.filesystemPathForURL(p6));
        if (v2_1.exists()) {
            org.apache.cordova.file.LocalFilesystemURL[] v0;
            java.io.File[] v1 = v2_1.listFiles();
            if (v1 != null) {
                v0 = new org.apache.cordova.file.LocalFilesystemURL[v1.length];
                int v3 = 0;
                while (v3 < v1.length) {
                    v0[v3] = this.URLforFilesystemPath(v1[v3].getPath());
                    v3++;
                }
            } else {
                v0 = 0;
            }
            return v0;
        } else {
            throw new java.io.FileNotFoundException();
        }
    }

Method org.apache.cordova.file.LocalFilesystem.getFileMetadataForLocalURL() calling method java.io.File.<init>()


    public org.json.JSONObject getFileMetadataForLocalURL(org.apache.cordova.file.LocalFilesystemURL p7)
    {
        java.io.File v1_1 = new java.io.File(this.filesystemPathForURL(p7));
        if (v1_1.exists()) {
            int v2_0 = new org.json.JSONObject();
            try {
                long v4_1;
                if (!v1_1.isDirectory()) {
                    v4_1 = v1_1.length();
                    v2_0.put("size", v4_1);
                    v2_0.put("type", this.resourceApi.getMimeType(android.net.Uri.fromFile(v1_1)));
                    v2_0.put("name", v1_1.getName());
                    v2_0.put("fullPath", p7.path);
                    v2_0.put("lastModifiedDate", v1_1.lastModified());
                } else {
                    v4_1 = 0;
                }
            } catch (org.json.JSONException v0) {
                v2_0 = 0;
            }
            return v2_0;
        } else {
            throw new java.io.FileNotFoundException(new StringBuilder().append("File at ").append(p7.uri).append(" does not exist.").toString());
        }
    }

Method org.apache.cordova.file.LocalFilesystem.getFileForLocalURL() calling method java.io.File.<init>()


    public org.json.JSONObject getFileForLocalURL(org.apache.cordova.file.LocalFilesystemURL p7, String p8, org.json.JSONObject p9, boolean p10)
    {
        boolean v0 = 0;
        boolean v1 = 0;
        if (p9 != null) {
            v0 = p9.optBoolean("create");
            if (v0) {
                v1 = p9.optBoolean("exclusive");
            }
        }
        if (!p8.contains(":")) {
            if ((p10) && (!p8.endsWith("/"))) {
                p8 = new StringBuilder().append(p8).append("/").toString();
            }
            org.apache.cordova.file.LocalFilesystemURL v3;
            if (!p8.startsWith("/")) {
                v3 = this.localUrlforFullPath(org.apache.cordova.file.LocalFilesystem.normalizePath(new StringBuilder().append(p7.path).append("/").append(p8).toString()));
            } else {
                v3 = this.localUrlforFullPath(org.apache.cordova.file.LocalFilesystem.normalizePath(p8));
            }
            java.io.File v2_1 = new java.io.File(this.filesystemPathForURL(v3));
            if (!v0) {
                if (v2_1.exists()) {
                    if (!p10) {
                        if (v2_1.isDirectory()) {
                            throw new org.apache.cordova.file.TypeMismatchException("path doesn\'t exist or is directory");
                        }
                    } else {
                        if (v2_1.isFile()) {
                            throw new org.apache.cordova.file.TypeMismatchException("path doesn\'t exist or is file");
                        }
                    }
                } else {
                    throw new java.io.FileNotFoundException("path does not exist");
                }
            } else {
                if ((!v1) || (!v2_1.exists())) {
                    if (!p10) {
                        v2_1.createNewFile();
                    } else {
                        v2_1.mkdir();
                    }
                    if (!v2_1.exists()) {
                        throw new org.apache.cordova.file.FileExistsException("create fails");
                    }
                } else {
                    throw new org.apache.cordova.file.FileExistsException("create/exclusive fails");
                }
            }
            return this.makeEntryForURL(v3);
        } else {
            throw new org.apache.cordova.file.EncodingException("This path has an invalid \":\" in it.");
        }
    }

Method org.apache.cordova.file.LocalFilesystem.filesystemPathForFullPath() calling method java.io.File.<init>()


    public String filesystemPathForFullPath(String p3)
    {
        return new java.io.File(this.rootUri.getPath(), p3).toString();
    }

Method org.apache.cordova.file.LocalFilesystem.exists() calling method java.io.File.<init>()


    public boolean exists(org.apache.cordova.file.LocalFilesystemURL p3)
    {
        return new java.io.File(this.filesystemPathForURL(p3)).exists();
    }

Method org.apache.cordova.file.LocalFilesystem.copyFileToURL() calling method java.io.File.<init>()


    public org.json.JSONObject copyFileToURL(org.apache.cordova.file.LocalFilesystemURL p10, String p11, org.apache.cordova.file.Filesystem p12, org.apache.cordova.file.LocalFilesystemURL p13, boolean p14)
    {
        if (new java.io.File(this.filesystemPathForURL(p10)).exists()) {
            org.apache.cordova.file.LocalFilesystemURL v2 = this.makeDestinationURL(p11, p13, p10, p13.isDirectory);
            android.net.Uri v3 = this.toNativeUri(v2);
            android.net.Uri v5 = p12.toNativeUri(p13);
            if (!v3.equals(v5)) {
                if ((!p14) || (p12.canRemoveFileAtLocalURL(p13))) {
                    java.io.File v0_1 = new java.io.File(v3.getPath());
                    if (v0_1.exists()) {
                        if ((p13.isDirectory) || (!v0_1.isDirectory())) {
                            if ((p13.isDirectory) && (v0_1.isFile())) {
                                throw new org.apache.cordova.file.InvalidModificationException("Can\'t copy/move a directory to an existing file");
                            }
                        } else {
                            throw new org.apache.cordova.file.InvalidModificationException("Can\'t copy/move a file to an existing directory");
                        }
                    }
                    if (!p13.isDirectory) {
                        this.copyFile(p12, p13, v0_1, p14);
                    } else {
                        if (!v3.toString().startsWith(new StringBuilder().append(v5.toString()).append(47).toString())) {
                            this.copyDirectory(p12, p13, v0_1, p14);
                        } else {
                            throw new org.apache.cordova.file.InvalidModificationException("Can\'t copy directory into itself");
                        }
                    }
                    return this.makeEntryForURL(v2);
                } else {
                    throw new org.apache.cordova.file.InvalidModificationException("Source URL is read-only (cannot move)");
                }
            } else {
                throw new org.apache.cordova.file.InvalidModificationException("Can\'t copy onto itself");
            }
        } else {
            throw new java.io.FileNotFoundException("The source does not exist");
        }
    }

Method org.apache.cordova.file.LocalFilesystem.canRemoveFileAtLocalURL() calling method java.io.File.<init>()


    public boolean canRemoveFileAtLocalURL(org.apache.cordova.file.LocalFilesystemURL p4)
    {
        return new java.io.File(this.filesystemPathForURL(p4)).exists();
    }

Method org.apache.cordova.file.LocalFilesystem.copyFile() calling method java.io.File.<init>()


    private void copyFile(org.apache.cordova.file.Filesystem p6, org.apache.cordova.file.LocalFilesystemURL p7, java.io.File p8, boolean p9)
    {
        if (!p9) {
            org.apache.cordova.file.LocalFilesystem.copyResource(this.resourceApi.openForRead(p6.toNativeUri(p7)), new java.io.FileOutputStream(p8));
            if (p9) {
                p6.removeFileAtLocalURL(p7);
            }
        } else {
            String v1 = p6.filesystemPathForURL(p7);
            if ((v1 == null) || (!new java.io.File(v1).renameTo(p8))) {
            }
        }
        return;
    }

Method org.apache.cordova.file.LocalFilesystem.copyDirectory() calling method java.io.File.<init>()


    private void copyDirectory(org.apache.cordova.file.Filesystem p11, org.apache.cordova.file.LocalFilesystemURL p12, java.io.File p13, boolean p14)
    {
        if (!p14) {
            if (!p13.exists()) {
                if (!p13.mkdir()) {
                    throw new org.apache.cordova.file.NoModificationAllowedException("Couldn\'t create the destination directory");
                }
            } else {
                if (p13.list().length > 0) {
                    throw new org.apache.cordova.file.InvalidModificationException("directory is not empty");
                }
            }
            org.apache.cordova.file.LocalFilesystemURL[] v1 = p11.listChildren(p12);
            int v7 = v1.length;
            int v5_9 = 0;
            while (v5_9 < v7) {
                org.apache.cordova.file.LocalFilesystemURL v0 = v1[v5_9];
                java.io.File v4_1 = new java.io.File(p13, new java.io.File(v0.path).getName());
                if (!v0.isDirectory) {
                    this.copyFile(p11, v0, v4_1, 0);
                } else {
                    this.copyDirectory(p11, v0, v4_1, 0);
                }
                v5_9++;
            }
            if (p14) {
                p11.recursiveRemoveFileAtLocalURL(p12);
            }
        } else {
            String v2 = p11.filesystemPathForURL(p12);
            if (v2 == null) {
            } else {
                java.io.File v3_1 = new java.io.File(v2);
                if (p13.exists()) {
                    if (p13.list().length <= 0) {
                        p13.delete();
                    } else {
                        throw new org.apache.cordova.file.InvalidModificationException("directory is not empty");
                    }
                }
                if (!v3_1.renameTo(p13)) {
                }
            }
        }
        return;
    }

Method org.apache.cordova.file.FileUtils.registerExtraFileSystems() calling method java.io.File.<init>()


    protected void registerExtraFileSystems(String[] p10, java.util.HashMap p11)
    {
        java.util.HashSet v2_1 = new java.util.HashSet();
        int v5 = p10.length;
        int v4 = 0;
        while (v4 < v5) {
            String v0 = p10[v4];
            if (!v2_1.contains(v0)) {
                String v1_1 = ((String) p11.get(v0));
                if (v1_1 == null) {
                    org.apache.cordova.LOG.d("FileUtils", new StringBuilder().append("Unrecognized extra filesystem identifier: ").append(v0).toString());
                } else {
                    java.io.File v3_1 = new java.io.File(v1_1);
                    if ((!v3_1.mkdirs()) && (!v3_1.isDirectory())) {
                        org.apache.cordova.LOG.d("FileUtils", new StringBuilder().append("Unable to create root dir for filesystem \"").append(v0).append("\", skipping").toString());
                    } else {
                        this.registerFilesystem(new org.apache.cordova.file.LocalFilesystem(v0, this.webView.getContext(), this.webView.getResourceApi(), v3_1));
                        v2_1.add(v0);
                    }
                }
            }
            v4++;
        }
        return;
    }

Method org.apache.cordova.file.FileUtils.initialize() calling method java.io.File.<init>()


    public void initialize(org.apache.cordova.CordovaInterface p12, org.apache.cordova.CordovaWebView p13)
    {
        super.initialize(p12, p13);
        this.filesystems = new java.util.ArrayList();
        this.pendingRequests = new org.apache.cordova.file.PendingRequests();
        String v3 = 0;
        android.app.Activity v0 = p12.getActivity();
        String v2 = v0.getPackageName();
        String v1 = this.preferences.getString("androidpersistentfilelocation", "internal");
        String v5 = v0.getCacheDir().getAbsolutePath();
        if (!"internal".equalsIgnoreCase(v1)) {
            if ("compatibility".equalsIgnoreCase(v1)) {
                if (!android.os.Environment.getExternalStorageState().equals("mounted")) {
                    v3 = new StringBuilder().append("/data/data/").append(v2).toString();
                } else {
                    v3 = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
                    v5 = new StringBuilder().append(android.os.Environment.getExternalStorageDirectory().getAbsolutePath()).append("/Android/data/").append(v2).append("/cache/").toString();
                }
                this.configured = 1;
            }
        } else {
            v3 = new StringBuilder().append(v0.getFilesDir().getAbsolutePath()).append("/files/").toString();
            this.configured = 1;
        }
        if (!this.configured) {
            org.apache.cordova.LOG.e("FileUtils", "File plugin configuration error: Please set AndroidPersistentFileLocation in config.xml to one of \"internal\" (for new applications) or \"compatibility\" (for compatibility with previous versions)");
            v0.finish();
        } else {
            java.io.File v6_1 = new java.io.File(v5);
            java.io.File v4_1 = new java.io.File(v3);
            v6_1.mkdirs();
            v4_1.mkdirs();
            this.registerFilesystem(new org.apache.cordova.file.LocalFilesystem("temporary", p13.getContext(), p13.getResourceApi(), v6_1));
            this.registerFilesystem(new org.apache.cordova.file.LocalFilesystem("persistent", p13.getContext(), p13.getResourceApi(), v4_1));
            this.registerFilesystem(new org.apache.cordova.file.ContentFilesystem(p13.getContext(), p13.getResourceApi()));
            this.registerFilesystem(new org.apache.cordova.file.AssetFilesystem(p13.getContext().getAssets(), p13.getResourceApi()));
            this.registerExtraFileSystems(this.getExtraFileSystemsPreference(v0), this.getAvailableFileSystems(v0));
            if (org.apache.cordova.file.FileUtils.filePlugin == null) {
                org.apache.cordova.file.FileUtils.filePlugin = this;
            }
        }
        return;
    }

Method org.apache.cordova.file.FileUtils.getAvailableFileSystems() calling method java.io.File.<init>()


    protected java.util.HashMap getAvailableFileSystems(android.app.Activity p8)
    {
        android.content.Context v1 = p8.getApplicationContext();
        java.util.HashMap v0_1 = new java.util.HashMap();
        v0_1.put("files", v1.getFilesDir().getAbsolutePath());
        v0_1.put("documents", new java.io.File(v1.getFilesDir(), "Documents").getAbsolutePath());
        v0_1.put("cache", v1.getCacheDir().getAbsolutePath());
        v0_1.put("root", "/");
        if (android.os.Environment.getExternalStorageState().equals("mounted")) {
            try {
                v0_1.put("files-external", v1.getExternalFilesDir(0).getAbsolutePath());
                v0_1.put("sdcard", android.os.Environment.getExternalStorageDirectory().getAbsolutePath());
                v0_1.put("cache-external", v1.getExternalCacheDir().getAbsolutePath());
            } catch (NullPointerException v2) {
                org.apache.cordova.LOG.d("FileUtils", "External storage unavailable, check to see if USB Mass Storage Mode is on");
            }
        }
        return v0_1;
    }

Method org.apache.cordova.file.AssetFilesystem.toLocalUri() calling method java.io.File.<init>()


    public org.apache.cordova.file.LocalFilesystemURL toLocalUri(android.net.Uri p9)
    {
        org.apache.cordova.file.LocalFilesystemURL v5_0 = 0;
        if ("file".equals(p9.getScheme())) {
            android.net.Uri v2 = android.net.Uri.fromFile(new java.io.File(p9.getPath()));
            String v3_0 = this.rootUri.getEncodedPath();
            String v3_1 = v3_0.substring(0, (v3_0.length() - 1));
            if (v2.getEncodedPath().startsWith(v3_1)) {
                String v4 = v2.getEncodedPath().substring(v3_1.length());
                if (!v4.isEmpty()) {
                    v4 = v4.substring(1);
                }
                android.net.Uri$Builder v0 = new android.net.Uri$Builder().scheme("cdvfile").authority("localhost").path(this.name);
                if (!v4.isEmpty()) {
                    v0.appendEncodedPath(v4);
                }
                if ((this.isDirectory(v4)) || (p9.getPath().endsWith("/"))) {
                    v0.appendEncodedPath("");
                }
                v5_0 = org.apache.cordova.file.LocalFilesystemURL.parse(v0.build());
            }
        }
        return v5_0;
    }

Method org.apache.cordova.file.AssetFilesystem.listChildren() calling method java.io.File.<init>()


    public org.apache.cordova.file.LocalFilesystemURL[] listChildren(org.apache.cordova.file.LocalFilesystemURL p10)
    {
        String v5 = p10.path.substring(1);
        if (v5.endsWith("/")) {
            v5 = v5.substring(0, (v5.length() - 1));
        }
        try {
            String[] v2 = this.listAssets(v5);
            org.apache.cordova.file.LocalFilesystemURL[] v1 = new org.apache.cordova.file.LocalFilesystemURL[v2.length];
            int v4 = 0;
        } catch (java.io.IOException v0) {
            java.io.FileNotFoundException v3_1 = new java.io.FileNotFoundException();
            v3_1.initCause(v0);
            throw v3_1;
        }
        while (v4 < v2.length) {
            v1[v4] = this.localUrlforFullPath(new java.io.File(p10.path, v2[v4]).getPath());
            v4++;
        }
        return v1;
    }

Method org.apache.cordova.file.AssetFilesystem.getFileMetadataForLocalURL() calling method java.io.File.<init>()


    public org.json.JSONObject getFileMetadataForLocalURL(org.apache.cordova.file.LocalFilesystemURL p8)
    {
        long v2;
        int v1_1 = new org.json.JSONObject();
        if (!p8.isDirectory) {
            v2 = this.getAssetSize(p8.path);
        } else {
            v2 = 0;
        }
        try {
            String v4_2;
            v1_1.put("size", v2);
        } catch (org.json.JSONException v0) {
            v1_1 = 0;
            return v1_1;
        }
        if (!p8.isDirectory) {
            v4_2 = this.resourceApi.getMimeType(this.toNativeUri(p8));
        } else {
            v4_2 = "text/directory";
        }
        v1_1.put("type", v4_2);
        v1_1.put("name", new java.io.File(p8.path).getName());
        v1_1.put("fullPath", p8.path);
        v1_1.put("lastModifiedDate", 0);
        return v1_1;
    }

Method org.apache.cordova.file.AssetFilesystem.filesystemPathForURL() calling method java.io.File.<init>()


    String filesystemPathForURL(org.apache.cordova.file.LocalFilesystemURL p4)
    {
        return new java.io.File(this.rootUri.getPath(), p4.path).toString();
    }

Method com.synconset.cordovahttp.CordovaHttpUpload.run() calling method java.io.File.<init>()


    public void run()
    {
        try {
            com.github.kevinsawicki.http.HttpRequest v11 = com.github.kevinsawicki.http.HttpRequest.post(this.getUrlString());
            this.prepareRequest(v11);
            java.net.URI v13_1 = new java.net.URI(this.filePath);
            String v5 = this.filePath.substring((this.filePath.lastIndexOf(47) + 1));
            String v9 = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(this.filePath.substring((this.filePath.lastIndexOf(46) + 1)));
            java.util.Iterator v7 = this.getParamsMap().entrySet().iterator();
        } catch (Exception v1) {
            this.respondWithError("There was an error loading the file");
            return;
        } catch (Exception v1) {
            this.respondWithError("There was an error generating the response");
            return;
        } catch (Exception v1_1) {
            this.handleHttpRequestException(v1_1);
            return;
        } catch (Exception v1_0) {
            this.respondWithError(v1_0.getMessage());
            return;
        }
        while (v7.hasNext()) {
            java.util.Map$Entry v2_1 = ((java.util.Map$Entry) v7.next());
            String v8_1 = ((String) v2_1.getKey());
            String v14_0 = v2_1.getValue();
            if (!(v14_0 instanceof Number)) {
                if (!(v14_0 instanceof String)) {
                    this.respondWithError("All parameters must be Numbers or Strings");
                    return;
                } else {
                    v11.part(v8_1, ((String) v14_0));
                }
            } else {
                v11.part(v8_1, ((Number) v14_0));
            }
        }
        String v15_7 = this.name;
        java.io.File v16_4 = new java.io.File;
        v16_4(v13_1);
        v11.part(v15_7, v5, v9, v16_4);
        this.returnResponseObject(v11);
        return;
    }

Method com.synconset.cordovahttp.CordovaHttpDownload.run() calling method java.io.File.<init>()


    public void run()
    {
        try {
            com.github.kevinsawicki.http.HttpRequest v4 = com.github.kevinsawicki.http.HttpRequest.get(this.getUrlString(), this.getParamsMap(), 1);
            this.prepareRequest(v4);
            org.json.JSONObject v5_1 = new org.json.JSONObject();
            int v0 = v4.code();
            v5_1.put("status", v0);
            v5_1.put("url", v4.url().toString());
            this.addResponseHeaders(v4, v5_1);
        } catch (Exception v1) {
            this.respondWithError("There was an error with the given filePath");
            return;
        } catch (Exception v1) {
            this.respondWithError("There was an error generating the response");
            return;
        } catch (Exception v1_1) {
            this.handleHttpRequestException(v1_1);
            return;
        } catch (Exception v1_0) {
            this.respondWithError(v1_0.getMessage());
            return;
        }
        if ((v0 < 200) || (v0 >= 300)) {
            v5_1.put("error", "There was an error downloading the file");
            this.getCallbackContext().error(v5_1);
            return;
        } else {
            java.io.File v2_1 = new java.io.File(new java.net.URI(this.filePath));
            v4.receive(v2_1);
            v5_1.put("file", org.apache.cordova.file.FileUtils.getFilePlugin().getEntryForFile(v2_1));
            this.getCallbackContext().success(v5_1);
            return;
        }
    }

Method com.google.android.gms.internal.zzal.zze() calling method java.io.File.<init>()


    private final java.io.File zze(String p4)
    {
        return new java.io.File(this.zzbz, com.google.android.gms.internal.zzal.zzd(p4));
    }

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 org.apache.cordova.file.Filesystem.nativeUriForFullPath() calling method java.io.File.<init>()


    public android.net.Uri nativeUriForFullPath(String p4)
    {
        android.net.Uri v1 = 0;
        if (p4 != null) {
            String v0 = android.net.Uri.fromFile(new java.io.File(p4)).getEncodedPath();
            if (v0.startsWith("/")) {
                v0 = v0.substring(1);
            }
            v1 = this.rootUri.buildUpon().appendEncodedPath(v0).build();
        }
        return v1;
    }

Method org.apache.cordova.file.Filesystem.getParentForLocalURL() calling method java.io.File.<init>()


    public org.json.JSONObject getParentForLocalURL(org.apache.cordova.file.LocalFilesystemURL p6)
    {
        android.net.Uri v1 = p6.uri;
        String v0 = new java.io.File(p6.uri.getPath()).getParent();
        if (!"/".equals(v0)) {
            v1 = p6.uri.buildUpon().path(new StringBuilder().append(v0).append(47).toString()).build();
        }
        return this.getEntryForLocalURL(org.apache.cordova.file.LocalFilesystemURL.parse(v1));
    }

Method org.apache.cordova.file.DirectoryManager.constructFilePaths() calling method java.io.File.<init>()


    private static java.io.File constructFilePaths(String p3, String p4)
    {
        java.io.File v0_0;
        if (!p4.startsWith(p3)) {
            v0_0 = new java.io.File(new StringBuilder().append(p3).append("/").append(p4).toString());
        } else {
            v0_0 = new java.io.File(p4);
        }
        return v0_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 okhttp3.internal.cache.DiskLruCache.<init>() calling method java.io.File.<init>()


    DiskLruCache(okhttp3.internal.io.FileSystem p8, java.io.File p9, int p10, int p11, long p12, java.util.concurrent.Executor p14)
    {
        this.size = 0;
        this.lruEntries = new java.util.LinkedHashMap(0, 1061158912, 1);
        this.nextSequenceNumber = 0;
        this.cleanupRunnable = new okhttp3.internal.cache.DiskLruCache$1(this);
        this.fileSystem = p8;
        this.directory = p9;
        this.appVersion = p10;
        this.journalFile = new java.io.File(p9, "journal");
        this.journalFileTmp = new java.io.File(p9, "journal.tmp");
        this.journalFileBackup = new java.io.File(p9, "journal.bkp");
        this.valueCount = p11;
        this.maxSize = p12;
        this.executor = p14;
        return;
    }

Method okhttp3.internal.cache.DiskLruCache$Entry.<init>() calling method java.io.File.<init>()


    DiskLruCache$Entry(okhttp3.internal.cache.DiskLruCache p8, String p9)
    {
        this.this$0 = p8;
        this.key = p9;
        java.io.File[] v3_8 = new long[p8.valueCount];
        this.lengths = v3_8;
        java.io.File[] v3_10 = new java.io.File[p8.valueCount];
        this.cleanFiles = v3_10;
        java.io.File[] v3_0 = new java.io.File[p8.valueCount];
        this.dirtyFiles = v3_0;
        StringBuilder v0 = new StringBuilder(p9).append(46);
        int v2 = v0.length();
        int v1 = 0;
        while (v1 < p8.valueCount) {
            v0.append(v1);
            this.cleanFiles[v1] = new java.io.File(p8.directory, v0.toString());
            v0.append(".tmp");
            this.dirtyFiles[v1] = new java.io.File(p8.directory, v0.toString());
            v0.setLength(v2);
            v1++;
        }
        return;
    }

Method com.google.gms.googleservices.GoogleServicesTask.action() calling method java.io.File.<init>()


    public void action()
    {
        if (this.quickstartFile.isFile()) {
            this.getProject().getLogger().warn(new StringBuilder().append("Parsing json file: ").append(this.quickstartFile.getPath()).toString());
            com.google.gms.googleservices.GoogleServicesTask.deleteFolder(this.intermediateDir);
            if (this.intermediateDir.mkdirs()) {
                com.google.gson.JsonElement v3 = new com.google.gson.JsonParser().parse(com.google.common.io.Files.newReader(this.quickstartFile, com.google.common.base.Charsets.UTF_8));
                if (v3.isJsonObject()) {
                    com.google.gson.JsonObject v4 = v3.getAsJsonObject();
                    java.util.TreeMap v2_1 = new java.util.TreeMap();
                    java.util.TreeMap v1_1 = new java.util.TreeMap();
                    this.handleProjectNumberAndProjectId(v4, v2_1);
                    this.handleFirebaseUrl(v4, v2_1);
                    com.google.gson.JsonObject v0 = this.getClientForPackageName(v4);
                    if (v0 == null) {
                        throw new org.gradle.api.GradleException(new StringBuilder().append("No matching client found for package name \'").append(this.packageName).append("\'").toString());
                    } else {
                        this.handleAnalytics(v0, v2_1);
                        this.handleMapsService(v0, v2_1);
                        this.handleGoogleApiKey(v0, v2_1);
                        this.handleGoogleAppId(v0, v2_1);
                        this.handleWebClientId(v0, v2_1);
                        java.io.File v5_1 = new java.io.File(this.intermediateDir, "values");
                        if ((v5_1.exists()) || (v5_1.mkdirs())) {
                            com.google.common.io.Files.write(com.google.gms.googleservices.GoogleServicesTask.getValuesContent(v2_1, v1_1), new java.io.File(v5_1, "values.xml"), com.google.common.base.Charsets.UTF_8);
                            return;
                        } else {
                            throw new org.gradle.api.GradleException(new StringBuilder().append("Failed to create folder: ").append(v5_1).toString());
                        }
                    }
                } else {
                    throw new org.gradle.api.GradleException("Malformed root json");
                }
            } else {
                throw new org.gradle.api.GradleException(new StringBuilder().append("Failed to create folder: ").append(this.intermediateDir).toString());
            }
        } else {
            String v8_4 = new Object[2];
            v8_4[0] = this.quickstartFile.getName();
            v8_4[1] = this.searchedLocation;
            throw new org.gradle.api.GradleException(String.format("File %s is missing. The Google Services Plugin cannot function without it. %n Searched Location: %s", v8_4));
        }
    }

Method com.google.gms.googleservices.GoogleServicesTask.handleAnalytics() calling method java.io.File.<init>()


    private void handleAnalytics(com.google.gson.JsonObject p8, java.util.Map p9)
    {
        com.google.gson.JsonObject v1 = this.getServiceByName(p8, "analytics_service");
        if (v1 != null) {
            com.google.gson.JsonObject v0 = v1.getAsJsonObject("analytics_property");
            if (v0 != null) {
                com.google.gson.JsonPrimitive v2 = v0.getAsJsonPrimitive("tracking_id");
                if (v2 != null) {
                    p9.put("ga_trackingId", v2.getAsString());
                    java.io.File v3_1 = new java.io.File(this.intermediateDir, "xml");
                    if ((v3_1.exists()) || (v3_1.mkdirs())) {
                        com.google.common.io.Files.write(com.google.gms.googleservices.GoogleServicesTask.getGlobalTrackerContent(v2.getAsString()), new java.io.File(v3_1, "global_tracker.xml"), com.google.common.base.Charsets.UTF_8);
                    } else {
                        throw new org.gradle.api.GradleException(new StringBuilder().append("Failed to create folder: ").append(v3_1).toString());
                    }
                }
            }
        }
        return;
    }

Method com.google.firebase.iid.zzy.<init>() calling method java.io.File.<init>()


    private zzy(android.content.Context p5, String p6)
    {
        String v0_2;
        this.zzair = p5;
        this.zzige = p5.getSharedPreferences(p6, 0);
        String v1_6 = String.valueOf(p6);
        String v0_0 = String.valueOf("-no-backup");
        if (v0_0.length() == 0) {
            v0_2 = new String(v1_6);
        } else {
            v0_2 = v1_6.concat(v0_0);
        }
        String v2_2 = new java.io.File(com.google.android.gms.common.util.zzv.getNoBackupFilesDir(this.zzair), v0_2);
        try {
            if ((!v2_2.exists()) && ((v2_2.createNewFile()) && (!this.isEmpty()))) {
                android.util.Log.i("FirebaseInstanceId", "App restored, clearing state");
                this.zzavj();
                com.google.firebase.iid.FirebaseInstanceId.getInstance().zzciy();
            }
        } catch (String v0_9) {
            if (android.util.Log.isLoggable("FirebaseInstanceId", 3)) {
                String v0_12 = String.valueOf(v0_9.getMessage());
                if (v0_12.length() == 0) {
                    String v0_14 = new String("Error creating file in no backup dir: ");
                } else {
                    v0_14 = "Error creating file in no backup dir: ".concat(v0_12);
                }
                android.util.Log.d("FirebaseInstanceId", v0_14);
            }
        }
        return;
    }

Method com.google.android.gms.internal.zzdhi.zzmw() calling method java.io.File.<init>()


    private final java.io.File zzmw(String p4)
    {
        return new java.io.File(this.mContext.getDir("google_tagmanager", 0), com.google.android.gms.internal.zzdhi.zzmx(p4));
    }

Method com.google.android.gms.internal.zzczj.onCreate() calling method java.io.File.<init>()


    public final void onCreate(android.database.sqlite.SQLiteDatabase p6)
    {
        String v0 = p6.getPath();
        if (com.google.android.gms.internal.zzcyp.version() >= 9) {
            java.io.File v1_2 = new java.io.File(v0);
            v1_2.setReadable(0, 0);
            v1_2.setWritable(0, 0);
            v1_2.setReadable(1, 1);
            v1_2.setWritable(1, 1);
        }
        return;
    }

Method com.google.android.gms.internal.zzcim.zzbae() calling method java.io.File.<init>()


    private final boolean zzbae()
    {
        this.zzawx().zzve();
        try {
            int v0_11;
            this.zzjfw = new java.io.RandomAccessFile(new java.io.File(this.mContext.getFilesDir(), "google_app_measurement.db"), "rw").getChannel();
            this.zzjfv = this.zzjfw.tryLock();
        } catch (int v0_13) {
            this.zzawy().zzazd().zzj("Failed to acquire storage lock", v0_13);
            v0_11 = 0;
            return v0_11;
        } catch (int v0_12) {
            this.zzawy().zzazd().zzj("Failed to access storage lock file", v0_12);
        }
        if (this.zzjfv == null) {
            this.zzawy().zzazd().log("Storage concurrent data access panic");
        } else {
            this.zzawy().zzazj().log("Storage concurrent access okay");
            v0_11 = 1;
            return v0_11;
        }
    }

Method com.google.android.gms.internal.zzaqm.onCreate() calling method java.io.File.<init>()


    public final void onCreate(android.database.sqlite.SQLiteDatabase p6)
    {
        String v0 = p6.getPath();
        if (com.google.android.gms.internal.zzark.version() >= 9) {
            java.io.File v1_2 = new java.io.File(v0);
            v1_2.setReadable(0, 0);
            v1_2.setWritable(0, 0);
            v1_2.setReadable(1, 1);
            v1_2.setWritable(1, 1);
        }
        return;
    }

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


    public static java.io.File getNoBackupFilesDir(android.content.Context p3)
    {
        java.io.File v0_1;
        if (!com.google.android.gms.common.util.zzq.zzamn()) {
            v0_1 = com.google.android.gms.common.util.zzv.zzd(new java.io.File(p3.getApplicationInfo().dataDir, "no_backup"));
        } else {
            v0_1 = p3.getNoBackupFilesDir();
        }
        return v0_1;
    }

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.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 final java.io.File getNoBackupFilesDir(android.content.Context p5)
    {
        java.io.File v2_1;
        if (android.os.Build$VERSION.SDK_INT < 21) {
            v2_1 = android.support.v4.content.ContextCompat.createFilesDir(new java.io.File(p5.getApplicationInfo().dataDir, "no_backup"));
        } else {
            v2_1 = android.support.v4.content.ContextCompatApi21.getNoBackupFilesDir(p5);
        }
        return v2_1;
    }

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


    public static java.io.File getDataDir(android.content.Context p2)
    {
        int v1_1;
        if (!android.support.v4.os.BuildCompat.isAtLeastN()) {
            String v0 = p2.getApplicationInfo().dataDir;
            if (v0 == null) {
                v1_1 = 0;
            } else {
                v1_1 = new java.io.File(v0);
            }
        } else {
            v1_1 = android.support.v4.content.ContextCompatApi24.getDataDir(p2);
        }
        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 p5)
    {
        java.io.File v2_1;
        if (android.os.Build$VERSION.SDK_INT < 21) {
            v2_1 = android.support.v4.content.ContextCompat.createFilesDir(new java.io.File(p5.getApplicationInfo().dataDir, "code_cache"));
        } else {
            v2_1 = android.support.v4.content.ContextCompatApi21.getCodeCacheDir(p5);
        }
        return v2_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 org.apache.cordova.file.LocalFilesystem.truncateFileAtURL() calling method java.io.RandomAccessFile.<init>()


    public long truncateFileAtURL(org.apache.cordova.file.LocalFilesystemURL p7, long p8)
    {
        if (new java.io.File(this.filesystemPathForURL(p7)).exists()) {
            java.io.RandomAccessFile v2_0 = new java.io.RandomAccessFile(this.filesystemPathForURL(p7), "rw");
            try {
                if (v2_0.length() < p8) {
                    p8 = v2_0.length();
                    v2_0.close();
                } else {
                    v2_0.getChannel().truncate(p8);
                    v2_0.close();
                }
            } catch (Throwable v3_1) {
                v2_0.close();
                throw v3_1;
            }
            return p8;
        } else {
            throw new java.io.FileNotFoundException(new StringBuilder().append("File at ").append(p7.uri).append(" does not exist.").toString());
        }
    }

Method okhttp3.internal.cache2.Relay.read() calling method java.io.RandomAccessFile.<init>()


    public static okhttp3.internal.cache2.Relay read(java.io.File p21)
    {
        java.io.RandomAccessFile v13_1 = new java.io.RandomAccessFile(p21, "rw");
        okhttp3.internal.cache2.FileOperator v2_1 = new okhttp3.internal.cache2.FileOperator(v13_1.getChannel());
        okio.Buffer v5_1 = new okio.Buffer();
        v2_1.read(0, v5_1, 32);
        if (v5_1.readByteString(((long) okhttp3.internal.cache2.Relay.PREFIX_CLEAN.size())).equals(okhttp3.internal.cache2.Relay.PREFIX_CLEAN)) {
            long v15 = v5_1.readLong();
            long v10 = v5_1.readLong();
            okio.Buffer v9_1 = new okio.Buffer();
            v2_1.read((32 + v15), v9_1, v10);
            return new okhttp3.internal.cache2.Relay(v13_1, 0, v15, v9_1.readByteString(), 0);
        } else {
            throw new java.io.IOException("unreadable cache file");
        }
    }

Method okhttp3.internal.cache2.Relay.edit() calling method java.io.RandomAccessFile.<init>()


    public static okhttp3.internal.cache2.Relay edit(java.io.File p11, okio.Source p12, okio.ByteString p13, long p14)
    {
        java.io.RandomAccessFile v1_1 = new java.io.RandomAccessFile(p11, "rw");
        okhttp3.internal.cache2.Relay v0_1 = new okhttp3.internal.cache2.Relay(v1_1, p12, 0, p13, p14);
        v1_1.setLength(0);
        v0_1.writeHeader(okhttp3.internal.cache2.Relay.PREFIX_DIRTY, -1, -1);
        return v0_1;
    }

Method com.google.android.gms.internal.zzcim.zzbae() calling method java.io.RandomAccessFile.<init>()


    private final boolean zzbae()
    {
        this.zzawx().zzve();
        try {
            int v0_11;
            this.zzjfw = new java.io.RandomAccessFile(new java.io.File(this.mContext.getFilesDir(), "google_app_measurement.db"), "rw").getChannel();
            this.zzjfv = this.zzjfw.tryLock();
        } catch (int v0_13) {
            this.zzawy().zzazd().zzj("Failed to acquire storage lock", v0_13);
            v0_11 = 0;
            return v0_11;
        } catch (int v0_12) {
            this.zzawy().zzazd().zzj("Failed to access storage lock file", v0_12);
        }
        if (this.zzjfv == null) {
            this.zzawy().zzazd().log("Storage concurrent data access panic");
        } else {
            this.zzawy().zzazj().log("Storage concurrent access okay");
            v0_11 = 1;
            return v0_11;
        }
    }

Method com.google.android.gms.internal.zzaqu.zzs() calling method android.content.Context.openFileOutput()


    private final boolean zzs(android.content.Context p5, String p6)
    {
        java.io.IOException v0_0 = 0;
        com.google.android.gms.common.internal.zzbq.zzgm(p6);
        com.google.android.gms.common.internal.zzbq.zzgn("ClientId should be saved from worker thread");
        try {
            this.zza("Storing clientId", p6);
            String v2_0 = p5.openFileOutput("gaClientId", 0);
            v2_0.write(p6.getBytes());
        } catch (java.io.IOException v1_4) {
            this.zze("Error creating clientId file", v1_4);
            if (v2_0 == null) {
                return v0_0;
            } else {
                try {
                    v2_0.close();
                } catch (java.io.IOException v1_5) {
                    this.zze("Failed to close clientId writing stream", v1_5);
                }
                return v0_0;
            }
        } catch (java.io.IOException v1_1) {
            this.zze("Error writing to clientId file", v1_1);
            if (v2_0 == null) {
                return v0_0;
            } else {
                try {
                    v2_0.close();
                } catch (java.io.IOException v1_3) {
                    this.zze("Failed to close clientId writing stream", v1_3);
                }
                return v0_0;
            }
        } catch (java.io.IOException v0_1) {
            if (v2_0 != null) {
                try {
                    v2_0.close();
                } catch (java.io.IOException v1_6) {
                    this.zze("Failed to close clientId writing stream", v1_6);
                }
            }
            throw v0_1;
        }
        if (v2_0 != null) {
            try {
                v2_0.close();
            } catch (java.io.IOException v0_2) {
                this.zze("Failed to close clientId writing stream", v0_2);
            }
        }
        v0_0 = 1;
        return v0_0;
    }

Method com.google.android.gms.internal.zzapq.zzdt() calling method android.content.Context.openFileOutput()


    private final boolean zzdt(String p6)
    {
        try {
            java.io.IOException v1_1 = com.google.android.gms.internal.zzapq.zzds(p6);
            this.zzdu("Storing hashed adid.");
            String v2_0 = this.getContext().openFileOutput("gaClientIdData", 0);
            v2_0.write(v1_1.getBytes());
            v2_0.close();
            this.zzdsp = v1_1;
        } catch (java.io.IOException v1_0) {
            this.zze("Error creating hash file", v1_0);
        }
        return 1;
    }

Method com.google.android.gms.internal.zzexd.run() calling method android.content.Context.openFileOutput()


    public final void run()
    {
        String v2_1 = new com.google.android.gms.internal.zzexm();
        if (this.zzogt != null) {
            v2_1.zzohm = com.google.android.gms.internal.zzexd.zza(this.zzogt);
        }
        if (this.zzogu != null) {
            v2_1.zzohn = com.google.android.gms.internal.zzexd.zza(this.zzogu);
        }
        if (this.zzogv != null) {
            v2_1.zzoho = com.google.android.gms.internal.zzexd.zza(this.zzogv);
        }
        if (this.zzogl != null) {
            int v0_8 = new com.google.android.gms.internal.zzexk();
            v0_8.zzohh = this.zzogl.getLastFetchStatus();
            v0_8.zzohi = this.zzogl.isDeveloperModeEnabled();
            v0_8.zzohj = this.zzogl.zzclj();
            v2_1.zzohp = v0_8;
        }
        if ((this.zzogl != null) && (this.zzogl.zzclh() != null)) {
            int v3_1 = new java.util.ArrayList();
            java.util.Map v4_1 = this.zzogl.zzclh();
            java.util.Iterator v5 = v4_1.keySet().iterator();
            while (v5.hasNext()) {
                int v0_24 = ((String) v5.next());
                if (v4_1.get(v0_24) != null) {
                    com.google.android.gms.internal.zzexn v6_1 = new com.google.android.gms.internal.zzexn();
                    v6_1.zzjrg = v0_24;
                    v6_1.zzohs = ((com.google.android.gms.internal.zzexb) v4_1.get(v0_24)).zzcle();
                    v6_1.resourceId = ((com.google.android.gms.internal.zzexb) v4_1.get(v0_24)).getResourceId();
                    v3_1.add(v6_1);
                }
            }
            int v0_17 = new com.google.android.gms.internal.zzexn[v3_1.size()];
            v2_1.zzohq = ((com.google.android.gms.internal.zzexn[]) v3_1.toArray(v0_17));
        }
        int v0_21 = com.google.android.gms.internal.zzfjs.zzc(v2_1);
        try {
            com.google.android.gms.internal.zzexb v1_6 = this.mContext.openFileOutput("persisted_config", 0);
            v1_6.write(v0_21);
            v1_6.close();
        } catch (int v0_22) {
            android.util.Log.e("AsyncPersisterTask", "Could not persist config.", v0_22);
        }
        return;
    }