diff --git a/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java index ac900454fea81f31ce815b43e4ed5c59c431168b..5235cf0a499ea4f72121eb9deb7a3bbc4681eb93 100644 --- a/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java +++ b/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java @@ -32,6 +32,7 @@ import android.graphics.drawable.Drawable; import android.media.MediaPlayer; import android.net.Uri; import android.text.format.DateUtils; +import android.text.format.Formatter; import android.util.Log; import android.util.TypedValue; import android.view.ContextMenu; @@ -384,10 +385,10 @@ public class ConversationAdapter extends RecyclerView.Adapter<ConversationViewHo viewHolder.compositeDisposable.add(timestampUpdateTimer.subscribe(t -> { if (file.getStatus() == InteractionStatus.TRANSFER_FINISHED) { viewHolder.mMsgDetailTxt.setText(String.format("%s - %s", - timeString, FileUtils.readableFileSize(file.getTotalSize()))); + timeString, Formatter.formatFileSize(viewHolder.itemView.getContext(), file.getTotalSize()))); } else { viewHolder.mMsgDetailTxt.setText(String.format("%s - %s - %s", - timeString, FileUtils.readableFileSize(file.getTotalSize()), + timeString, Formatter.formatFileSize(viewHolder.itemView.getContext(), file.getTotalSize()), ResourceMapper.getReadableFileTransferStatus(conversationFragment.getActivity(), file.getStatus()))); } })); diff --git a/ring-android/app/src/main/java/cx/ring/services/NotificationServiceImpl.java b/ring-android/app/src/main/java/cx/ring/services/NotificationServiceImpl.java index f6bff844fd3a9b8f69a964cd2725f7383d05089c..10452b66f157278dc5b21e78a0ca47244fca8d2c 100644 --- a/ring-android/app/src/main/java/cx/ring/services/NotificationServiceImpl.java +++ b/ring-android/app/src/main/java/cx/ring/services/NotificationServiceImpl.java @@ -35,6 +35,7 @@ import android.media.RingtoneManager; import android.os.Build; import android.os.Bundle; import android.text.TextUtils; +import android.text.format.Formatter; import android.util.Log; import android.util.SparseArray; @@ -731,7 +732,7 @@ public class NotificationServiceImpl implements NotificationService { .setCategory(NotificationCompat.CATEGORY_PROGRESS) .setOnlyAlertOnce(true) .setContentText(event == Interaction.InteractionStatus.TRANSFER_ONGOING ? - FileUtils.readableFileProgress(info.getBytesProgress(), info.getTotalSize()) : + Formatter.formatFileSize(mContext, info.getBytesProgress()) + " / " + Formatter.formatFileSize(mContext, info.getTotalSize()) : info.getDisplayName() + ": " + ResourceMapper.getReadableFileTransferStatus(mContext, event)) .setContentIntent(PendingIntent.getService(mContext, random.nextInt(), intentConversation, 0)) .setColor(ResourcesCompat.getColor(mContext.getResources(), R.color.color_primary_dark, null)); diff --git a/ring-android/libringclient/src/main/java/cx/ring/utils/FileUtils.java b/ring-android/libringclient/src/main/java/cx/ring/utils/FileUtils.java index 3bca4261ddc184ac117644c3fa72d89bc79ccc1d..c3e36322ca0f23e999fc20d9c69462e1deb3ab03 100644 --- a/ring-android/libringclient/src/main/java/cx/ring/utils/FileUtils.java +++ b/ring-android/libringclient/src/main/java/cx/ring/utils/FileUtils.java @@ -29,9 +29,6 @@ import java.text.DecimalFormat; public class FileUtils { private static final String TAG = FileUtils.class.getSimpleName(); - private static final String[] SIZE_UNITS = new String[]{"B", "kB", "MB", "GB", "TB"}; - private static final DecimalFormat SIZE_FORMAT = new DecimalFormat("#,##0.##"); - public static void copyFile(InputStream in, OutputStream out) throws IOException { // Buffer size based on https://stackoverflow.com/questions/10143731/android-optimal-buffer-size byte[] buffer = new byte[64 * 1024]; @@ -75,25 +72,4 @@ public class FileUtils { Log.d(TAG, "moveFile: moved " + file + " to " + dest); return true; } - - private static int getSizeDigitGroup(long size) { - return (int) (Math.log10(size) / Math.log10(1024)); - } - - public static String readableFileSize(long size) { - if (size <= 0) { - return "0"; - } - int digitGroups = getSizeDigitGroup(size); - return SIZE_FORMAT.format(size / Math.pow(1024, digitGroups)) + " " + SIZE_UNITS[digitGroups]; - } - - public static CharSequence readableFileProgress(long progress, long total) { - if (progress < 0 || total < 0) - return ""; - int digitGroups = getSizeDigitGroup(Math.max(progress, total)); - double den = Math.pow(1024, digitGroups); - String unit = SIZE_UNITS[digitGroups]; - return SIZE_FORMAT.format(progress / den) + " / " + SIZE_FORMAT.format(total / den) + " " + unit; - } }