Android Open Source - Visu Storage Helper






From Project

Back to project page Visu.

License

The source code is released under:

Apache License

If you think the Android project Visu 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

/*****************************************************************************************
 * StorageHelper.java                                   *
 * Clase que administra el almacenamiento de datos en el disco local y en Google Drive   *
 ****************************************************************************************/
/*  w ww  . j a v  a  2  s  . c o m*/
package com.ufavaloro.android.visu.storage;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.util.ArrayList;

import android.app.Activity;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;

import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.drive.Drive;
import com.google.android.gms.drive.DriveFolder;
import com.google.android.gms.drive.DriveId;
import com.ufavaloro.android.visu.UI.MainActivity;
import com.ufavaloro.android.visu.bluetooth.BluetoothProtocolMessage;
import com.ufavaloro.android.visu.storage.datatypes.AcquisitionData;
import com.ufavaloro.android.visu.storage.datatypes.AdcData;
import com.ufavaloro.android.visu.storage.datatypes.PatientData;
import com.ufavaloro.android.visu.storage.datatypes.StudyData;
import com.ufavaloro.android.visu.storage.googledrive.GoogleDriveManager;
import com.ufavaloro.android.visu.storage.googledrive.GoogleDriveManagerMessage;
import com.ufavaloro.android.visu.storage.local.LocalStorageManager;
import com.ufavaloro.android.visu.study.Study;

public class StorageHelper {
  
/*****************************************************************************************
* Inicio de atributos de clase                                   *
*****************************************************************************************/
  int mGoogleDriveFolderIterator = 0;
  
  // Flag de buffers creados correctamente
  public boolean buffersOk = false;
  
  public boolean recording = false;
  
  // Flag de informaci?n del paciente almacenada
  public boolean patientDataOk = false;

  public LocalStorageManager local;
  public GoogleDriveManager googleDrive;
  //public StudyData[] studyData;
  
  public Study study;
  
  private Handler mHandler;

/*****************************************************************************************
* Inicio de m?todos de clase                                     *
*****************************************************************************************/
/*****************************************************************************************
* M?todos principales                                         *
*****************************************************************************************/
  // Constructor
  public StorageHelper(Activity contextActivity, Handler handler) {
    
    mHandler = handler;
    
    // Creo managers
    local = new LocalStorageManager();
    googleDrive = new GoogleDriveManager(contextActivity, mGoogleDriveManagerHandler);
    
    // Creo carpetas ra?z locales
    local.createRootFolders();
  }
  
  // M?todo que crea los archivos correspondientes a los estudios
  public void createLocalStudyFiles(StudyData[] studyData) {    
    local.createStudyFiles(studyData);
  }

  public void createGoogleDriveStudyFiles(StudyData[] studyData) {
    googleDrive.createStudyFiles(studyData);
  }

  public void createStudyFolders(StudyData[] studyData) {
    local.createStudyFolders(studyData);    
    googleDrive.createStudyFolders(studyData);
  }
  
/*****************************************************************************************
* M?todos de lectura/escritura sobre estudios existente                       *
*****************************************************************************************/

  // M?todo que lee muestras de un archivo
  public void loadFileFromLocalStorage(String filePath) {
        
    byte[] fileInputBuffer = local.loadFile(filePath);
    
    StudyData studyData = StudyDataParser.getStudyData(fileInputBuffer);
    
    // Informo
    mHandler.obtainMessage(StorageHelperMessage.LOCAL_STORAGE_FILE_OPENED.getValue() 
                 ,-1, -1, studyData).sendToTarget();
    
  }

  public void loadFileFromGoogleDrive(DriveId driveId) {
    googleDrive.loadFile(driveId);
  }
  
  private void onGoogleDriveFileOpen(Object obj) {
    
    StudyData studyData = StudyDataParser.getStudyData((byte[]) obj);

    // Informo
    mHandler.obtainMessage(StorageHelperMessage.GOOGLE_DRIVE_FILE_OPENED.getValue() 
                 ,-1, -1, studyData).sendToTarget();
    
  }
  
  private void onGoogleDriveConnected() {
    
  }
  
  private void onGoogleDriveSuspended() {
    
  }
  
  private void onGoogleDriveDisconnected() {
    
  }
  
  private void onGoogleDriveConnectionFailed(Message msg) {
    mHandler.obtainMessage(StorageHelperMessage.GOOGLE_DRIVE_CONNECTION_FAILED.getValue()
                 , -1, -1, msg).sendToTarget();
  }
  
  // M?todo que recibe el paquete de muestras, lo procesa y lo manda a almacenar con writeSamples
  public boolean saveSamplesBatch(StudyData studyData, short[] toStore) {
    
    if(local.studyFilesOk == false || recording == false || studyData.isMarkedForStoring() == false) return false;
    
    SamplesBuffer samplesBuffer = studyData.getSamplesBuffer();
    samplesBuffer.storeSamples(toStore);
    boolean success = false;
    
    // Llen? el buffer?
    int indexOverflow = samplesBuffer.getStoringIndex();

    if(indexOverflow == 0) {
      
      File studyFile = studyData.getStorageData().getStudyFile();
      local.saveFile(studyFile, samplesBuffer);
      
    }
    
    return success;
  }

/*****************************************************************************************
* M?todos auxiliares                                     *
*****************************************************************************************/
  private final Handler mGoogleDriveManagerHandler = new Handler() {
    
      // M?todo para manejar el mensaje
    @Override
    public void handleMessage(Message msg) {
      
      // Tipo de mensaje recibido
      GoogleDriveManagerMessage googleDriveManagerMessage = GoogleDriveManagerMessage.values(msg.what);
      
      switch (googleDriveManagerMessage) {
        
        // Succesfully connected to Google Play Services
        case GOOGLE_DRIVE_FILE_OPEN:
          onGoogleDriveFileOpen(msg.obj);
          break;
        
        case GOOGLE_DRIVE_CONNECTED:
          onGoogleDriveConnected();
          break;
          
        case GOOGLE_DRIVE_SUSPENDED:
          onGoogleDriveSuspended();
          break;
          
        case GOOGLE_DRIVE_DISCONNECTED:
          onGoogleDriveDisconnected();
          break;
          
        case GOOGLE_DRIVE_CONNECTION_FAILED:
          onGoogleDriveConnectionFailed(msg);

        default:
          break;
      }
    }
  };

}//StorageHelper





Java Source Code List

com.samsung.sprc.fileselector.FileData.java
com.samsung.sprc.fileselector.FileListAdapter.java
com.samsung.sprc.fileselector.FileOperation.java
com.samsung.sprc.fileselector.FileSelector.java
com.samsung.sprc.fileselector.FileUtils.java
com.samsung.sprc.fileselector.OnHandleFileListener.java
com.samsung.sprc.fileselector.SaveLoadClickListener.java
com.samsung.sprc.fileselector.TextViewWithImage.java
com.ufavaloro.android.visu.UI.ChannelOptionsDialog.java
com.ufavaloro.android.visu.UI.LoadFileFromGoogleDriveDialog.java
com.ufavaloro.android.visu.UI.LoadFileFromLocalStorageDialog.java
com.ufavaloro.android.visu.UI.MainActivity.java
com.ufavaloro.android.visu.UI.MainMenuDialog.java
com.ufavaloro.android.visu.UI.NewStudyDialog.java
com.ufavaloro.android.visu.UI.OfflineChannelPropertiesDialog.java
com.ufavaloro.android.visu.UI.OnlineChannelPropertiesDialog.java
com.ufavaloro.android.visu.UI.StopStudyDialog.java
com.ufavaloro.android.visu.bluetooth.BluetoothProtocolMessage.java
com.ufavaloro.android.visu.bluetooth.BluetoothProtocol.java
com.ufavaloro.android.visu.bluetooth.BluetoothServiceMessage.java
com.ufavaloro.android.visu.bluetooth.BluetoothService.java
com.ufavaloro.android.visu.draw.BitmapManager.java
com.ufavaloro.android.visu.draw.DrawHelper.java
com.ufavaloro.android.visu.draw.RGB.java
com.ufavaloro.android.visu.draw.ReferenceMatrix.java
com.ufavaloro.android.visu.draw.TouchPointer.java
com.ufavaloro.android.visu.draw.channel.ChannelList.java
com.ufavaloro.android.visu.draw.channel.Channel.java
com.ufavaloro.android.visu.draw.channel.DrawBuffer.java
com.ufavaloro.android.visu.draw.channel.InfoBox.java
com.ufavaloro.android.visu.draw.channel.Label.java
com.ufavaloro.android.visu.draw.channel.ScreenElement.java
com.ufavaloro.android.visu.draw.channel.SignalBox.java
com.ufavaloro.android.visu.storage.DataConversion.java
com.ufavaloro.android.visu.storage.SamplesBuffer.java
com.ufavaloro.android.visu.storage.StorageHelperMessage.java
com.ufavaloro.android.visu.storage.StorageHelper.java
com.ufavaloro.android.visu.storage.StudyDataParser.java
com.ufavaloro.android.visu.storage.datatypes.AcquisitionData.java
com.ufavaloro.android.visu.storage.datatypes.AdcData.java
com.ufavaloro.android.visu.storage.datatypes.PatientData.java
com.ufavaloro.android.visu.storage.datatypes.StorageData.java
com.ufavaloro.android.visu.storage.datatypes.StudyData.java
com.ufavaloro.android.visu.storage.googledrive.GoogleDriveClientMessage.java
com.ufavaloro.android.visu.storage.googledrive.GoogleDriveClient.java
com.ufavaloro.android.visu.storage.googledrive.GoogleDriveManagerMessage.java
com.ufavaloro.android.visu.storage.googledrive.GoogleDriveManager.java
com.ufavaloro.android.visu.storage.local.LocalStorageManager.java
com.ufavaloro.android.visu.study.StudyMessage.java
com.ufavaloro.android.visu.study.StudyType.java
com.ufavaloro.android.visu.study.Study.java