package org.osmdroid.intro; import android.content.Context; import android.database.Cursor; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import org.osmdroid.R; import org.osmdroid.debug.model.MapTileExt; import org.osmdroid.debug.util.FileDateUtil; import org.osmdroid.debug.util.HumanTime; import org.osmdroid.tileprovider.modules.DatabaseFileArchive; import org.osmdroid.tileprovider.modules.SqlTileWriter; import org.osmdroid.tileprovider.util.StorageUtils; import java.text.DecimalFormat; import java.util.Date; import java.util.List; /** * created on 1/18/2017. * * @author Alex O'Ree */ public class StorageAdapter extends ArrayAdapter { List<StorageUtils.StorageInfo> data; public StorageAdapter(Context context, List<StorageUtils.StorageInfo> data) { super(context, R.layout.layout_storage_device); this.data=data; } @Override public int getCount() { return data.size(); } @Override public Object getItem(int id) { return data.get(id); } public static String readableFileSize(long size) { if(size <= 0) return "0"; final String[] units = new String[] { "B", "kB", "MB", "GB", "TB" }; int digitGroups = (int) (Math.log10(size)/Math.log10(1024)); return new DecimalFormat("#,##0.#").format(size/Math.pow(1024, digitGroups)) + " " + units[digitGroups]; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(getContext()).inflate(R.layout.layout_storage_device, parent, false); } StorageUtils.StorageInfo info = (StorageUtils.StorageInfo) getItem(position); if (info != null) { // Find fields to populate in inflated template TextView drive = (TextView) convertView.findViewById(R.id.storageName); TextView frespace= (TextView) convertView.findViewById(R.id.storageFreespace); TextView path= (TextView) convertView.findViewById(R.id.storagePath); drive.setText(info.getDisplayName()); frespace.setText("Free space: " + readableFileSize(info.freeSpace)); path.setText(info.path); } return convertView; } }