package com.gettingmobile.goodnews.settings.storagestatistics; import java.io.Serializable; import java.text.DecimalFormat; import java.text.NumberFormat; final class StorageStatistics implements Serializable { private static final NumberFormat COUNT_FORMAT = new DecimalFormat("#,###"); private static final NumberFormat SIZE_FORMAT = new DecimalFormat("#,##0.00"); public final int activeArticleCount; public final int inactiveArticleCount; public final int articleWithContentFileCount; public final int articleWithImageFileCount; public final int contentFileCount; public final int imageFileCount; public final long databaseSize; public final long contentFilesSize; public final long imageFilesSize; StorageStatistics( int activeArticleCount, int inactiveArticleCount, int articleWithContentFileCount, int articleWithImageFileCount, int contentFileCount, int imageFileCount, long databaseSize, long contentFilesSize, long imageFilesSize) { this.activeArticleCount = activeArticleCount; this.inactiveArticleCount = inactiveArticleCount; this.articleWithContentFileCount = articleWithContentFileCount; this.articleWithImageFileCount = articleWithImageFileCount; this.contentFileCount = contentFileCount; this.imageFileCount = imageFileCount; this.databaseSize = databaseSize; this.contentFilesSize = contentFilesSize; this.imageFilesSize = imageFilesSize; } private static String formatCount(int count) { return COUNT_FORMAT.format(count); } public String formatActiveArticleCount() { return formatCount(activeArticleCount); } public String formatInactiveArticleCount() { return formatCount(inactiveArticleCount); } public String formatTotalArticleCount() { return formatCount(activeArticleCount + inactiveArticleCount); } public String formatArticleWithContentFileCount() { return formatCount(articleWithContentFileCount); } public String formatArticleWithImageFileCount() { return formatCount(articleWithImageFileCount); } public String formatContentFileCount() { return formatCount(contentFileCount); } public String formatImageFileCount() { return formatCount(imageFileCount); } public String formatTotalFileCount() { return formatCount(contentFileCount + imageFileCount); } private static String formatSize(long size) { return SIZE_FORMAT.format((double) size / (1024.0 * 1024.0)) + " MB"; } public String formatDatabaseSize() { return formatSize(databaseSize); } public String formatContentFilesSize() { return formatSize(contentFilesSize); } public String formatImageFilesSize() { return formatSize(imageFilesSize); } public String formatTotalFilesSize() { return formatSize(databaseSize + contentFilesSize + imageFilesSize); } }