Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(390)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java

Issue 2915863002: Photo Picker dialog: Add UMA statistics. (Closed)
Patch Set: Address feedback from Mark Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/photo_picker/BitmapScalerTask.java » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.download; 5 package org.chromium.chrome.browser.download;
6 6
7 import android.app.Activity; 7 import android.app.Activity;
8 import android.app.PendingIntent; 8 import android.app.PendingIntent;
9 import android.content.ActivityNotFoundException; 9 import android.content.ActivityNotFoundException;
10 import android.content.Context; 10 import android.content.Context;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 import org.chromium.chrome.browser.download.ui.DownloadHistoryItemWrapper; 43 import org.chromium.chrome.browser.download.ui.DownloadHistoryItemWrapper;
44 import org.chromium.chrome.browser.feature_engagement_tracker.FeatureEngagementT rackerFactory; 44 import org.chromium.chrome.browser.feature_engagement_tracker.FeatureEngagementT rackerFactory;
45 import org.chromium.chrome.browser.offlinepages.DownloadUiActionFlags; 45 import org.chromium.chrome.browser.offlinepages.DownloadUiActionFlags;
46 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; 46 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
47 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; 47 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
48 import org.chromium.chrome.browser.offlinepages.downloads.OfflinePageDownloadBri dge; 48 import org.chromium.chrome.browser.offlinepages.downloads.OfflinePageDownloadBri dge;
49 import org.chromium.chrome.browser.profiles.Profile; 49 import org.chromium.chrome.browser.profiles.Profile;
50 import org.chromium.chrome.browser.tab.Tab; 50 import org.chromium.chrome.browser.tab.Tab;
51 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; 51 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
52 import org.chromium.chrome.browser.tabmodel.document.TabDelegate; 52 import org.chromium.chrome.browser.tabmodel.document.TabDelegate;
53 import org.chromium.chrome.browser.util.ConversionUtils;
53 import org.chromium.chrome.browser.util.IntentUtils; 54 import org.chromium.chrome.browser.util.IntentUtils;
54 import org.chromium.components.feature_engagement_tracker.EventConstants; 55 import org.chromium.components.feature_engagement_tracker.EventConstants;
55 import org.chromium.components.feature_engagement_tracker.FeatureEngagementTrack er; 56 import org.chromium.components.feature_engagement_tracker.FeatureEngagementTrack er;
56 import org.chromium.components.offline_items_collection.OfflineItem.Progress; 57 import org.chromium.components.offline_items_collection.OfflineItem.Progress;
57 import org.chromium.components.offline_items_collection.OfflineItemProgressUnit; 58 import org.chromium.components.offline_items_collection.OfflineItemProgressUnit;
58 import org.chromium.content.browser.BrowserStartupController; 59 import org.chromium.content.browser.BrowserStartupController;
59 import org.chromium.content_public.browser.DownloadState; 60 import org.chromium.content_public.browser.DownloadState;
60 import org.chromium.content_public.browser.LoadUrlParams; 61 import org.chromium.content_public.browser.LoadUrlParams;
61 import org.chromium.ui.base.DeviceFormFactor; 62 import org.chromium.ui.base.DeviceFormFactor;
62 import org.chromium.ui.widget.Toast; 63 import org.chromium.ui.widget.Toast;
(...skipping 24 matching lines...) Expand all
87 88
88 private static final String TAG = "download"; 89 private static final String TAG = "download";
89 90
90 private static final String DEFAULT_MIME_TYPE = "*/*"; 91 private static final String DEFAULT_MIME_TYPE = "*/*";
91 private static final String MIME_TYPE_DELIMITER = "/"; 92 private static final String MIME_TYPE_DELIMITER = "/";
92 private static final String MIME_TYPE_VIDEO = "video"; 93 private static final String MIME_TYPE_VIDEO = "video";
93 94
94 private static final String EXTRA_IS_OFF_THE_RECORD = 95 private static final String EXTRA_IS_OFF_THE_RECORD =
95 "org.chromium.chrome.browser.download.IS_OFF_THE_RECORD"; 96 "org.chromium.chrome.browser.download.IS_OFF_THE_RECORD";
96 97
97 private static final long BYTES_PER_KILOBYTE = 1024;
98 private static final long BYTES_PER_MEGABYTE = 1024 * 1024;
99 private static final long BYTES_PER_GIGABYTE = 1024 * 1024 * 1024;
100
101 @VisibleForTesting 98 @VisibleForTesting
102 static final long SECONDS_PER_MINUTE = TimeUnit.MINUTES.toSeconds(1); 99 static final long SECONDS_PER_MINUTE = TimeUnit.MINUTES.toSeconds(1);
103 @VisibleForTesting 100 @VisibleForTesting
104 static final long SECONDS_PER_HOUR = TimeUnit.HOURS.toSeconds(1); 101 static final long SECONDS_PER_HOUR = TimeUnit.HOURS.toSeconds(1);
105 @VisibleForTesting 102 @VisibleForTesting
106 static final long SECONDS_PER_DAY = TimeUnit.DAYS.toSeconds(1); 103 static final long SECONDS_PER_DAY = TimeUnit.DAYS.toSeconds(1);
107 104
108 @VisibleForTesting 105 @VisibleForTesting
109 static final String ELLIPSIS = "\u2026"; 106 static final String ELLIPSIS = "\u2026";
110 107
(...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 * resource. 759 * resource.
763 * @param context Context to use. 760 * @param context Context to use.
764 * @param stringSet The string resources for displaying bytes in KB, MB and GB. 761 * @param stringSet The string resources for displaying bytes in KB, MB and GB.
765 * @param bytes Number of bytes. 762 * @param bytes Number of bytes.
766 * @return A formatted string to be displayed. 763 * @return A formatted string to be displayed.
767 */ 764 */
768 public static String getStringForBytes(Context context, int[] stringSet, lon g bytes) { 765 public static String getStringForBytes(Context context, int[] stringSet, lon g bytes) {
769 int resourceId; 766 int resourceId;
770 float bytesInCorrectUnits; 767 float bytesInCorrectUnits;
771 768
772 if (bytes < BYTES_PER_MEGABYTE) { 769 if (ConversionUtils.bytesToMegabytes(bytes) < 1) {
773 resourceId = stringSet[0]; 770 resourceId = stringSet[0];
774 bytesInCorrectUnits = bytes / (float) BYTES_PER_KILOBYTE; 771 bytesInCorrectUnits = bytes / (float) ConversionUtils.BYTES_PER_KILO BYTE;
775 } else if (bytes < BYTES_PER_GIGABYTE) { 772 } else if (ConversionUtils.bytesToGigabytes(bytes) < 1) {
776 resourceId = stringSet[1]; 773 resourceId = stringSet[1];
777 bytesInCorrectUnits = bytes / (float) BYTES_PER_MEGABYTE; 774 bytesInCorrectUnits = bytes / (float) ConversionUtils.BYTES_PER_MEGA BYTE;
778 } else { 775 } else {
779 resourceId = stringSet[2]; 776 resourceId = stringSet[2];
780 bytesInCorrectUnits = bytes / (float) BYTES_PER_GIGABYTE; 777 bytesInCorrectUnits = bytes / (float) ConversionUtils.BYTES_PER_GIGA BYTE;
781 } 778 }
782 779
783 return context.getResources().getString(resourceId, bytesInCorrectUnits) ; 780 return context.getResources().getString(resourceId, bytesInCorrectUnits) ;
784 } 781 }
785 782
786 /** 783 /**
787 * Abbreviate a file name into a given number of characters with ellipses. 784 * Abbreviate a file name into a given number of characters with ellipses.
788 * e.g. "thisisaverylongfilename.txt" => "thisisave....txt". 785 * e.g. "thisisaverylongfilename.txt" => "thisisave....txt".
789 * @param fileName File name to abbreviate. 786 * @param fileName File name to abbreviate.
790 * @param limit Character limit. 787 * @param limit Character limit.
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
880 public static Date getDateAtMidnight(long timestamp) { 877 public static Date getDateAtMidnight(long timestamp) {
881 Calendar cal = Calendar.getInstance(); 878 Calendar cal = Calendar.getInstance();
882 cal.setTimeInMillis(timestamp); 879 cal.setTimeInMillis(timestamp);
883 cal.set(Calendar.HOUR_OF_DAY, 0); 880 cal.set(Calendar.HOUR_OF_DAY, 0);
884 cal.set(Calendar.MINUTE, 0); 881 cal.set(Calendar.MINUTE, 0);
885 cal.set(Calendar.SECOND, 0); 882 cal.set(Calendar.SECOND, 0);
886 cal.set(Calendar.MILLISECOND, 0); 883 cal.set(Calendar.MILLISECOND, 0);
887 return cal.getTime(); 884 return cal.getTime();
888 } 885 }
889 } 886 }
OLDNEW
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/photo_picker/BitmapScalerTask.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698