Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java |
| index 999689752532cfa22b2d76310893de515559930d..fedcdf997e9e76bc675bfc9a2f51ed0e7c09cd4e 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java |
| @@ -4,6 +4,7 @@ |
| package org.chromium.chrome.browser.omaha; |
| +import android.annotation.TargetApi; |
| import android.content.ActivityNotFoundException; |
| import android.content.Context; |
| import android.content.Intent; |
| @@ -15,6 +16,9 @@ import android.graphics.PorterDuff; |
| import android.graphics.PorterDuffXfermode; |
| import android.net.Uri; |
| import android.os.AsyncTask; |
| +import android.os.Build; |
| +import android.os.Environment; |
| +import android.os.StatFs; |
| import android.text.TextUtils; |
| import org.chromium.base.CommandLine; |
| @@ -29,6 +33,8 @@ import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
| import org.chromium.components.variations.VariationsAssociatedData; |
| import org.chromium.ui.base.LocalizationUtils; |
| +import java.io.File; |
| + |
| /** |
| * Contains logic for whether the update menu item should be shown, whether the update toolbar badge |
| * should be shown, and UMA logging for the update menu item. |
| @@ -112,6 +118,7 @@ public class UpdateMenuItemHelper { |
| if (OmahaClient.isNewerVersionAvailable(activity)) { |
| mUpdateUrl = OmahaClient.getMarketURL(activity); |
| mUpdateAvailable = true; |
| + recordInternalStorageSize(); |
|
Yaron
2016/01/04 14:37:24
nit: you were already in an asynctask so it's not
Theresa
2016/01/04 21:02:29
Great point. I'll fix that in a follow up CL.
|
| } else { |
| mUpdateAvailable = false; |
| } |
| @@ -316,4 +323,36 @@ public class UpdateMenuItemHelper { |
| } |
| return value; |
| } |
| + |
| + private void recordInternalStorageSize() { |
| + new AsyncTask<Void, Void, Void>() { |
| + @Override |
| + protected Void doInBackground(Void... params) { |
| + File path = Environment.getDataDirectory(); |
| + StatFs statFs = new StatFs(path.getAbsolutePath()); |
| + int size; |
| + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) { |
| + size = getSize(statFs); |
| + } else { |
| + size = getSizeUpdatedApi(statFs); |
| + } |
| + RecordHistogram.recordLinearCountHistogram( |
| + "GoogleUpdate.InfoBar.InternalStorageSizeAvailable", size, 1, 200, 100); |
| + return null; |
| + } |
| + }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); |
| + } |
| + |
| + @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) |
| + private static int getSizeUpdatedApi(StatFs statFs) { |
| + return (int) statFs.getAvailableBytes() / (1024 * 1024); |
| + } |
| + |
| + @SuppressWarnings("deprecation") |
| + private static int getSize(StatFs statFs) { |
| + int blockSize = statFs.getBlockSize(); |
| + int availableBlocks = statFs.getAvailableBlocks(); |
| + int size = (blockSize * availableBlocks) / (1024 * 1024); |
| + return size; |
| + } |
| } |