package com.umich.umd.obdpractice; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.charset.Charset; import java.util.logging.Logger; import android.content.Context; import android.util.Log; import com.google.android.gms.internal.au; import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.http.GenericUrl; import com.google.api.client.http.HttpRequest; import com.google.api.client.http.HttpRequestFactory; import com.google.api.client.http.HttpResponse; import com.google.api.client.http.HttpTransport; import com.google.api.client.http.InputStreamContent; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.jackson.JacksonFactory; public class CloudManager { // Debug tag for identifying from which activity debug message // originated private final static String DEBUG_TAG = "CloudManage"; /** E-mail address of the service account. */ private static String SERVICE_ACCOUNT_EMAIL; public final static String ACCOUNT_TAG = "Account_Email"; private final static String DEFAULT_EMAIL = "Derelle.Redmond@gmail.com"; /** Google Cloud Storage URI */ private static final String GCS_URI = "http://storage.googleapis.com/"; /** Bucket to list. */ private static final String BUCKET_NAME = "obd_data"; /** Global configuration of Google Cloud Storage OAuth 2.0 scope. */ private static final String STORAGE_SCOPE = "https://www.googleapis.com/auth/devstorage.read_write"; /** Global instance of the HTTP transport. */ private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport(); /** Global instance of the JSON factory. */ private static final JsonFactory JSON_FACTORY = new JacksonFactory(); protected CloudFileUploadActivity cupActivity; /** * Constructor for sending Cloud authentication account information. * If a null value is passed, uses default email address * @param cloudFileUpload * * @param authentication_account The string name of the account to authenticate with * */ public CloudManager(CloudFileUploadActivity cloudFileUpload, String authentication_account) { cupActivity = cloudFileUpload; if(!(authentication_account == null)) SERVICE_ACCOUNT_EMAIL = authentication_account; else SERVICE_ACCOUNT_EMAIL = DEFAULT_EMAIL; } public void fileInsert(String fileName, Context cloudActContext) throws IOException { Log.d(DEBUG_TAG, fileName); PutHTTPTask upFileTask = new PutHTTPTask(cupActivity, cloudActContext,SERVICE_ACCOUNT_EMAIL); upFileTask.execute(new String[] {fileName,NetworkSetupActivity.PARSED_PREFIX + fileName}); } }