package org.droidplanner.android.utils; import android.content.Context; import android.net.Uri; import com.o3dr.android.client.utils.FileUtils; import com.o3dr.services.android.lib.drone.connection.ConnectionType; import java.io.File; /** * Created by fredia on 6/11/16. */ public class TLogUtils { private static final String DIRECTORY_TLOGS = "tlogs"; private static final String TLOG_FILENAME_EXT = ".tlog"; private static final String TLOG_PREFIX = "log"; // Private to prevent instantiation private TLogUtils(){} /** * Return the directory where the generated tlogs logging files are stored. * @return File to the tlogs directory */ private static File getTLogsDirectory(Context context){ File tlogDir = new File(context.getExternalFilesDir(null), DIRECTORY_TLOGS); if(!tlogDir.isDirectory()){ tlogDir.mkdirs(); } return tlogDir; } /** * Generate a tlog filename based on the given parameters * @param connectionTypeLabel Label describing the connection type (i.e: usb, tcp,...) * @param connectionTimestamp Timestamp when the connection was established * @return Filename for a tlog file */ private static String getTLogFilename(String connectionTypeLabel, long connectionTimestamp){ return TLOG_PREFIX + "_" + connectionTypeLabel + "_" + FileUtils.getTimeStamp(connectionTimestamp) + TLOG_FILENAME_EXT; } /** * Returns the uri where the tlog data should be logged. * @param context * @param connectionType * @param connectionTimestamp * @return */ public static Uri getTLogLoggingUri(Context context, @ConnectionType.Type int connectionType, long connectionTimestamp){ File tlogLoggingFile = new File(getTLogsDirectory(context), getTLogFilename(ConnectionType.getConnectionTypeLabel(connectionType), connectionTimestamp)); return Uri.fromFile(tlogLoggingFile); } }