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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/notifications/CustomNotificationBuilder.java

Issue 1967233002: Enable disk writes closer to where strict mode violation occurs in NotificationPlatformBridge (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/notifications/CustomNotificationBuilder.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/CustomNotificationBuilder.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/CustomNotificationBuilder.java
index 3c17745178f4f4808019d2c5eba6ccb738a54370..c5dba9603b17b2255cc51453051c99924a5d2683 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/CustomNotificationBuilder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/CustomNotificationBuilder.java
@@ -12,6 +12,8 @@ import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
+import android.os.StrictMode;
+import android.os.SystemClock;
import android.text.format.DateFormat;
import android.util.DisplayMetrics;
import android.util.TypedValue;
@@ -20,10 +22,12 @@ import android.widget.RemoteViews;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.VisibleForTesting;
+import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.R;
import org.chromium.ui.base.LocalizationUtils;
import java.util.Date;
+import java.util.concurrent.TimeUnit;
/**
* Builds a notification using the given inputs. Uses RemoteViews to provide a custom layout.
@@ -97,9 +101,22 @@ public class CustomNotificationBuilder extends NotificationBuilderBase {
bigView.setInt(R.id.body, "setMaxLines", calculateMaxBodyLines(fontScale));
int scaledPadding =
calculateScaledPadding(fontScale, mContext.getResources().getDisplayMetrics());
- String time = DateFormat.getTimeFormat(mContext).format(new Date());
+ String formattedTime = "";
+
+ // Temporarily allowing disk access. TODO: Fix. See http://crbug.com/577185
+ StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
+ StrictMode.allowThreadDiskWrites();
+ try {
+ long time = SystemClock.elapsedRealtime();
+ formattedTime = DateFormat.getTimeFormat(mContext).format(new Date());
+ RecordHistogram.recordTimesHistogram("Android.StrictMode.NotificationUIBuildTime",
+ SystemClock.elapsedRealtime() - time, TimeUnit.MILLISECONDS);
+ } finally {
+ StrictMode.setThreadPolicy(oldPolicy);
+ }
+
for (RemoteViews view : new RemoteViews[] {compactView, bigView}) {
- view.setTextViewText(R.id.time, time);
+ view.setTextViewText(R.id.time, formattedTime);
view.setTextViewText(R.id.title, mTitle);
view.setTextViewText(R.id.body, mBody);
view.setTextViewText(R.id.origin, mOrigin);
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698