a.java 5.39 KB
package com.instabug.library.internal.d;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.net.Uri;
import android.os.Environment;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.instabug.library.util.InstabugSDKLogger;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class a
{
  private Context a;
  
  public a(Context paramContext)
  {
    this.a = paramContext;
  }
  
  public static Uri a(Context paramContext, Uri paramUri, @Nullable String paramString)
  {
    if (paramUri == null) {
      return null;
    }
    int i = 0;
    Object localObject = paramUri.getLastPathSegment().toLowerCase();
    File localFile2 = a(paramContext);
    if (paramString == null) {
      paramString = (String)localObject;
    }
    for (;;)
    {
      File localFile1 = new File(localFile2, paramString);
      localObject = localFile1;
      if (localFile1.exists()) {
        localObject = new File(localFile2, String.valueOf(System.currentTimeMillis()) + "_" + paramString);
      }
      try
      {
        a(paramContext, paramUri, (File)localObject);
        if (i == 0) {
          break;
        }
        long l = ((File)localObject).length();
        double d = l / 1048576.0D;
        InstabugSDKLogger.d(a.class, "External attachment file size is " + l + " bytes or " + d + " MBs");
        if (d <= 1.0D) {
          break;
        }
        InstabugSDKLogger.i(a.class, "Attachment exceeds 1.0 MBs file size limit, ignoring attachment");
        return null;
      }
      catch (IOException paramContext)
      {
        paramContext.printStackTrace();
        return null;
      }
      i = 1;
    }
    return Uri.fromFile((File)localObject);
  }
  
  public static File a(@NonNull Context paramContext)
  {
    if ((paramContext.getExternalFilesDir(null) != null) && (Environment.getExternalStorageState().equals("mounted"))) {}
    for (;;)
    {
      try
      {
        Object localObject = paramContext.getExternalFilesDir(null).getAbsolutePath();
        paramContext = (Context)localObject;
        paramContext = new File(paramContext + "/instabug/");
        if (!paramContext.exists())
        {
          paramContext.mkdirs();
          localObject = new File(paramContext, ".nomedia");
        }
        InstabugSDKLogger.i(a.class, "External storage not available, saving file to internal storage.");
      }
      catch (NullPointerException localNullPointerException)
      {
        try
        {
          ((File)localObject).createNewFile();
          return paramContext;
        }
        catch (IOException localIOException)
        {
          localIOException.printStackTrace();
        }
        localNullPointerException = localNullPointerException;
      }
      paramContext = paramContext.getFilesDir().getAbsolutePath();
    }
    return paramContext;
  }
  
  public static String a(Activity paramActivity, Uri paramUri)
  {
    paramActivity = paramActivity.managedQuery(paramUri, new String[] { "_data" }, null, null, null);
    int i = paramActivity.getColumnIndexOrThrow("_data");
    paramActivity.moveToFirst();
    return paramActivity.getString(i);
  }
  
  public static void a(Context paramContext, Uri paramUri, File paramFile)
    throws IOException
  {
    paramUri = new BufferedInputStream(paramContext.getContentResolver().openInputStream(paramUri));
    InstabugSDKLogger.d(a.class, "Target file path: " + paramFile.getPath());
    paramContext = new BufferedOutputStream(paramContext.getContentResolver().openOutputStream(Uri.fromFile(paramFile)));
    paramFile = new byte[32768];
    for (;;)
    {
      int i = paramUri.read(paramFile);
      if (i <= 0) {
        break;
      }
      paramContext.write(paramFile, 0, i);
    }
    paramContext.close();
    paramUri.close();
  }
  
  public void a(Bitmap paramBitmap, a parama)
  {
    Object localObject = new File(a(this.a), "bug_" + System.currentTimeMillis() + "_.jpg");
    try
    {
      BufferedOutputStream localBufferedOutputStream = new BufferedOutputStream(new FileOutputStream((File)localObject));
      InstabugSDKLogger.d(this, "Image Path: " + ((File)localObject).toString());
      paramBitmap.compress(Bitmap.CompressFormat.JPEG, 100, localBufferedOutputStream);
      localBufferedOutputStream.close();
      localObject = Uri.fromFile((File)localObject);
      if (localObject != null)
      {
        parama.a(paramBitmap, (Uri)localObject);
        return;
      }
      parama.a("Could not store screenshot to file. Please make sure you requested the proper permissions");
      return;
    }
    catch (FileNotFoundException paramBitmap)
    {
      InstabugSDKLogger.e(this, "File not found", paramBitmap);
      return;
    }
    catch (IOException paramBitmap)
    {
      InstabugSDKLogger.e(this, "Error accessing file", paramBitmap);
    }
  }
  
  public static abstract interface a
  {
    public abstract void a(Bitmap paramBitmap, Uri paramUri);
    
    public abstract void a(String paramString);
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/com/instabug/library/internal/d/a.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */