Android Open Source - android-ribbit-design File Helper






From Project

Back to project page android-ribbit-design.

License

The source code is released under:

MIT License

If you think the Android project android-ribbit-design listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.teamtreehouse.ribbit.utils;
/*ww w .  ja  v  a 2 s.c  o  m*/
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.io.IOUtils;

import android.content.Context;
import android.graphics.Bitmap;
import android.net.Uri;
import android.util.Log;

public class FileHelper {
  
  public static final String TAG = FileHelper.class.getSimpleName();
  
  public static final int SHORT_SIDE_TARGET = 1280;
  
  public static byte[] getByteArrayFromFile(Context context, Uri uri) {
    byte[] fileBytes = null;
        InputStream inStream = null;
        ByteArrayOutputStream outStream = null;
        
        if (uri.getScheme().equals("content")) {
          try {
            inStream = context.getContentResolver().openInputStream(uri);
            outStream = new ByteArrayOutputStream();
            
            byte[] bytesFromFile = new byte[1024*1024]; // buffer size (1 MB)
            int bytesRead = inStream.read(bytesFromFile);
            while (bytesRead != -1) {
              outStream.write(bytesFromFile, 0, bytesRead);
              bytesRead = inStream.read(bytesFromFile);
            }
            
            fileBytes = outStream.toByteArray();
          }
          catch (IOException e) {
            Log.e(TAG, e.getMessage());
          }
          finally {
            try {
              inStream.close();
              outStream.close();
            }
            catch (IOException e) { /*( Intentionally blank */ }
          }
        }
        else {
          try {
            File file = new File(uri.getPath());
            FileInputStream fileInput = new FileInputStream(file);
            fileBytes = IOUtils.toByteArray(fileInput);
          }
          catch (IOException e) {
            Log.e(TAG, e.getMessage());
          }
         }
        
        return fileBytes;
  }
  
  public static byte[] reduceImageForUpload(byte[] imageData) {
    Bitmap bitmap = ImageResizer.resizeImageMaintainAspectRatio(imageData, SHORT_SIDE_TARGET);
    
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
    byte[] reducedData = outputStream.toByteArray();
    try {
      outputStream.close();
    }
    catch (IOException e) {
      // Intentionally blank
    }
    
    return reducedData;
  }

  public static String getFileName(Context context, Uri uri, String fileType) {
    String fileName = "uploaded_file.";
    
    if (fileType.equals(ParseConstants.TYPE_IMAGE)) {
      fileName += "png";
    }
    else {
      // For video, we want to get the actual file extension
      if (uri.getScheme().equals("content")) {
        // do it using the mime type
        String mimeType = context.getContentResolver().getType(uri);
        int slashIndex = mimeType.indexOf("/");
        String fileExtension = mimeType.substring(slashIndex + 1);
        fileName += fileExtension;
      }
      else {
        fileName = uri.getLastPathSegment();
      }
    }
    
    return fileName;
  }
}




Java Source Code List

com.teamtreehouse.ribbit.RibbitApplication.java
com.teamtreehouse.ribbit.adapters.MessageAdapter.java
com.teamtreehouse.ribbit.adapters.SectionsPagerAdapter.java
com.teamtreehouse.ribbit.adapters.UserAdapter.java
com.teamtreehouse.ribbit.ui.EditFriendsActivity.java
com.teamtreehouse.ribbit.ui.FriendsFragment.java
com.teamtreehouse.ribbit.ui.InboxFragment.java
com.teamtreehouse.ribbit.ui.LoginActivity.java
com.teamtreehouse.ribbit.ui.MainActivity.java
com.teamtreehouse.ribbit.ui.RecipientsActivity.java
com.teamtreehouse.ribbit.ui.SignUpActivity.java
com.teamtreehouse.ribbit.ui.ViewImageActivity.java
com.teamtreehouse.ribbit.utils.FileHelper.java
com.teamtreehouse.ribbit.utils.ImageResizer.java
com.teamtreehouse.ribbit.utils.MD5Util.java
com.teamtreehouse.ribbit.utils.ParseConstants.java