Skip to content
Snippets Groups Projects
AndroidFileUtils.java 972 B
Newer Older
package org.briarproject.system;

import java.io.File;
import java.io.IOException;
import org.briarproject.api.system.FileUtils;
import android.annotation.SuppressLint;
import android.os.Build;
import android.os.StatFs;

class AndroidFileUtils implements FileUtils {

	@SuppressLint("NewApi")
	@SuppressWarnings("deprecation")
	public long getTotalSpace(File f) throws IOException {
		if(Build.VERSION.SDK_INT >= 9) return f.getTotalSpace();
		StatFs s = new StatFs(f.getAbsolutePath());
		// These deprecated methods are the best thing available for SDK < 9
		return (long) s.getBlockCount() * s.getBlockSize();
	}

	@SuppressLint("NewApi")
akwizgran's avatar
akwizgran committed
	@SuppressWarnings("deprecation")
	public long getFreeSpace(File f) throws IOException {
		if(Build.VERSION.SDK_INT >= 9) return f.getUsableSpace();
		StatFs s = new StatFs(f.getAbsolutePath());
		// These deprecated methods are the best thing available for SDK < 9
		return (long) s.getAvailableBlocks() * s.getBlockSize();
	}
}