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

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

Issue 11360207: Add Java resources to content and chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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; 5 package org.chromium.chrome.browser;
6 6
7 import android.app.ActivityManager; 7 import android.app.ActivityManager;
8 import android.content.Context; 8 import android.content.Context;
9 import android.content.Intent; 9 import android.content.Intent;
10 import android.graphics.Bitmap; 10 import android.graphics.Bitmap;
11 import android.graphics.Canvas; 11 import android.graphics.Canvas;
12 import android.graphics.Color; 12 import android.graphics.Color;
13 import android.graphics.LinearGradient; 13 import android.graphics.LinearGradient;
14 import android.graphics.Paint; 14 import android.graphics.Paint;
15 import android.graphics.Path; 15 import android.graphics.Path;
16 import android.graphics.Rect; 16 import android.graphics.Rect;
17 import android.graphics.RectF; 17 import android.graphics.RectF;
18 import android.graphics.drawable.BitmapDrawable; 18 import android.graphics.drawable.BitmapDrawable;
19 import android.graphics.drawable.Drawable; 19 import android.graphics.drawable.Drawable;
20 import android.net.Uri; 20 import android.net.Uri;
21 import android.os.Build; 21 import android.os.Build;
22 import android.util.Log; 22 import android.util.Log;
23 23
24 import org.chromium.content.app.AppResource; 24 import org.chromium.chrome.R;
25 25
26 /** 26 /**
27 * Util class for bookmarks. 27 * Util class for bookmarks.
28 */ 28 */
29 public class BookmarkUtils { 29 public class BookmarkUtils {
30 30
31 // There is no public string defining this intent so if Home changes the val ue, we 31 // There is no public string defining this intent so if Home changes the val ue, we
32 // have to update this string. 32 // have to update this string.
33 private static final String INSTALL_SHORTCUT = "com.android.launcher.action. INSTALL_SHORTCUT"; 33 private static final String INSTALL_SHORTCUT = "com.android.launcher.action. INSTALL_SHORTCUT";
34 private static final int DEFAULT_RGB_VALUE = 145; 34 private static final int DEFAULT_RGB_VALUE = 145;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 int gValue, int bValue) { 85 int gValue, int bValue) {
86 Bitmap bitmap = null; 86 Bitmap bitmap = null;
87 ActivityManager am = (ActivityManager) context.getSystemService(Context. ACTIVITY_SERVICE); 87 ActivityManager am = (ActivityManager) context.getSystemService(Context. ACTIVITY_SERVICE);
88 int iconDimension = am.getLauncherLargeIconSize(); 88 int iconDimension = am.getLauncherLargeIconSize();
89 int iconDensity = am.getLauncherLargeIconDensity(); 89 int iconDensity = am.getLauncherLargeIconDensity();
90 try { 90 try {
91 bitmap = Bitmap.createBitmap(iconDimension, iconDimension, Bitmap.Co nfig.ARGB_8888); 91 bitmap = Bitmap.createBitmap(iconDimension, iconDimension, Bitmap.Co nfig.ARGB_8888);
92 Canvas canvas = new Canvas(bitmap); 92 Canvas canvas = new Canvas(bitmap);
93 Rect iconBounds = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight ()); 93 Rect iconBounds = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight ());
94 if (favicon == null) { 94 if (favicon == null) {
95 assert AppResource.DRAWABLE_ICON_DEFAULT_FAVICON != 0; 95 favicon = getBitmapFromResourceId(context, R.drawable.globe_favi con, iconDensity);
96 favicon = getBitmapFromResourceId(context,
97 AppResource.DRAWABLE_ICON_DEFAULT_FAVICON, iconDensity);
98 rValue = gValue = bValue = DEFAULT_RGB_VALUE; 96 rValue = gValue = bValue = DEFAULT_RGB_VALUE;
99 } 97 }
100 Bitmap icon = getIconBackground(context, iconDensity); 98 Bitmap icon = getIconBackground(context, iconDensity);
101 if (icon != null) { 99 if (icon != null) {
102 canvas.drawBitmap(icon, null, iconBounds, new Paint(Paint.ANTI_A LIAS_FLAG)); 100 canvas.drawBitmap(icon, null, iconBounds, new Paint(Paint.ANTI_A LIAS_FLAG));
103 } 101 }
104 drawFaviconToCanvas(context, favicon, canvas, iconBounds, rValue, gV alue, bValue); 102 drawFaviconToCanvas(context, favicon, canvas, iconBounds, rValue, gV alue, bValue);
105 canvas.setBitmap(null); 103 canvas.setBitmap(null);
106 } catch (OutOfMemoryError e) { 104 } catch (OutOfMemoryError e) {
107 Log.w(TAG, "OutOfMemoryError while trying to draw bitmap on canvas." ); 105 Log.w(TAG, "OutOfMemoryError while trying to draw bitmap on canvas." );
108 } 106 }
109 return bitmap; 107 return bitmap;
110 } 108 }
111 109
112 /** 110 /**
113 * Get the icon background asset. 111 * Get the icon background asset.
114 * @param context Context used to create the intent. 112 * @param context Context used to create the intent.
115 * @return Bitmap favicon background asset. 113 * @return Bitmap favicon background asset.
116 */ 114 */
117 private static Bitmap getIconBackground(Context context, int density) { 115 private static Bitmap getIconBackground(Context context, int density) {
118 assert AppResource.MIPMAP_BOOKMARK_SHORTCUT_BACKGROUND != 0; 116 return getBitmapFromResourceId(context, R.mipmap.homescreen_bg, density) ;
119 return getBitmapFromResourceId(context, AppResource.MIPMAP_BOOKMARK_SHOR TCUT_BACKGROUND,
120 density);
121 } 117 }
122 118
123 private static Bitmap getBitmapFromResourceId(Context context, int id, int d ensity) { 119 private static Bitmap getBitmapFromResourceId(Context context, int id, int d ensity) {
124 Drawable drawable = null; 120 Drawable drawable = null;
125 if (Build.VERSION.SDK_INT >= SDK_VERSION_FOR_ACCESS_TO_METHODS) { 121 if (Build.VERSION.SDK_INT >= SDK_VERSION_FOR_ACCESS_TO_METHODS) {
126 drawable = context.getResources().getDrawableForDensity(id, density) ; 122 drawable = context.getResources().getDrawableForDensity(id, density) ;
127 } else { 123 } else {
128 drawable = context.getResources().getDrawable(id); 124 drawable = context.getResources().getDrawable(id);
129 } 125 }
130 if (drawable instanceof BitmapDrawable) { 126 if (drawable instanceof BitmapDrawable) {
131 BitmapDrawable bd = (BitmapDrawable) drawable; 127 BitmapDrawable bd = (BitmapDrawable) drawable;
132 return bd.getBitmap(); 128 return bd.getBitmap();
133 } 129 }
134 assert false : "The drawable was not a bitmap drawable as expected"; 130 assert false : "The drawable was not a bitmap drawable as expected";
135 return null; 131 return null;
136 } 132 }
137 133
138 /** 134 /**
139 * Draw the favicon with dominant color. 135 * Draw the favicon with dominant color.
140 * @param context Context used to create the intent. 136 * @param context Context used to create the intent.
141 * @param favicon favicon bitmap. 137 * @param favicon favicon bitmap.
142 * @param canvas Canvas that holds the favicon. 138 * @param canvas Canvas that holds the favicon.
143 * @param iconBounds Rectangle bounds needed to create the homescreen favico n. 139 * @param iconBounds Rectangle bounds needed to create the homescreen favico n.
144 * @param rValue Red component of the dominant favicon color. 140 * @param rValue Red component of the dominant favicon color.
145 * @param gValue Green component of the dominant favicon color. 141 * @param gValue Green component of the dominant favicon color.
146 * @param bValue Blue component of the dominant favicon color. 142 * @param bValue Blue component of the dominant favicon color.
147 */ 143 */
148 private static void drawFaviconToCanvas(Context context, Bitmap favicon, 144 private static void drawFaviconToCanvas(Context context, Bitmap favicon,
149 Canvas canvas, Rect iconBounds, int rValue, int gValue, int bValue) { 145 Canvas canvas, Rect iconBounds, int rValue, int gValue, int bValue) {
150 assert AppResource.DIMENSION_FAVICON_SIZE != 0;
151 assert AppResource.DIMENSION_FAVICON_COLORSTRIP_CORNER_RADII != 0;
152 assert AppResource.DIMENSION_FAVICON_COLORSTRIP_HEIGHT != 0;
153 assert AppResource.DIMENSION_FAVICON_COLORSTRIP_PADDING != 0;
154 assert AppResource.DIMENSION_FAVICON_COLORSTRIP_WIDTH != 0;
155 assert AppResource.DIMENSION_FAVICON_FOLD_BORDER != 0;
156 assert AppResource.DIMENSION_FAVICON_FOLD_CORNER_RADII != 0;
157 assert AppResource.DIMENSION_FAVICON_FOLD_SHADOW != 0;
158 assert AppResource.DIMENSION_FAVICON_FOLD_SIZE != 0;
159
160 int colorStripWidth = context.getResources().getDimensionPixelSize( 146 int colorStripWidth = context.getResources().getDimensionPixelSize(
161 AppResource.DIMENSION_FAVICON_COLORSTRIP_WIDTH); 147 R.dimen.favicon_colorstrip_width);
162 int colorStripHeight = context.getResources().getDimensionPixelSize( 148 int colorStripHeight = context.getResources().getDimensionPixelSize(
163 AppResource.DIMENSION_FAVICON_COLORSTRIP_HEIGHT); 149 R.dimen.favicon_colorstrip_height);
164 int colorStripPadding = context.getResources().getDimensionPixelSize( 150 int colorStripPadding = context.getResources().getDimensionPixelSize(
165 AppResource.DIMENSION_FAVICON_COLORSTRIP_PADDING); 151 R.dimen.favicon_colorstrip_padding);
166 int colorStripCornerRadii = context.getResources().getDimensionPixelSize ( 152 int colorStripCornerRadii = context.getResources().getDimensionPixelSize (
167 AppResource.DIMENSION_FAVICON_COLORSTRIP_CORNER_RADII); 153 R.dimen.favicon_colorstrip_corner_radii);
168 int foldSize = context.getResources().getDimensionPixelSize( 154 int foldSize = context.getResources().getDimensionPixelSize(R.dimen.favi con_fold_size);
169 AppResource.DIMENSION_FAVICON_FOLD_SIZE);
170 int foldCornerRadii = context.getResources().getDimensionPixelSize( 155 int foldCornerRadii = context.getResources().getDimensionPixelSize(
171 AppResource.DIMENSION_FAVICON_FOLD_CORNER_RADII); 156 R.dimen.favicon_fold_corner_radii);
172 int foldBorder = context.getResources().getDimensionPixelSize( 157 int foldBorder = context.getResources().getDimensionPixelSize(R.dimen.fa vicon_fold_border);
173 AppResource.DIMENSION_FAVICON_FOLD_BORDER); 158 int foldShadow = context.getResources().getDimensionPixelSize(R.dimen.fa vicon_fold_shadow);
174 int foldShadow = context.getResources().getDimensionPixelSize( 159 int faviconSize = context.getResources().getDimensionPixelSize(R.dimen.f avicon_size);
175 AppResource.DIMENSION_FAVICON_FOLD_SHADOW);
176 int faviconSize = context.getResources().getDimensionPixelSize(
177 AppResource.DIMENSION_FAVICON_SIZE);
178 160
179 float x1 = iconBounds.exactCenterX() - (colorStripWidth / 2.0f); 161 float x1 = iconBounds.exactCenterX() - (colorStripWidth / 2.0f);
180 float x2 = x1 + colorStripWidth; 162 float x2 = x1 + colorStripWidth;
181 float y1 = iconBounds.height() - colorStripPadding; 163 float y1 = iconBounds.height() - colorStripPadding;
182 float y2 = y1 - colorStripHeight; 164 float y2 = y1 - colorStripHeight;
183 int faviconColorAlpha100 = Color.argb(255, rValue, gValue, bValue); 165 int faviconColorAlpha100 = Color.argb(255, rValue, gValue, bValue);
184 Paint stripPaint = new Paint(Paint.ANTI_ALIAS_FLAG); 166 Paint stripPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
185 stripPaint.setColor(faviconColorAlpha100); 167 stripPaint.setColor(faviconColorAlpha100);
186 stripPaint.setStyle(Paint.Style.FILL); 168 stripPaint.setStyle(Paint.Style.FILL);
187 Path stripPath = new Path(); 169 Path stripPath = new Path();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 Bitmap scaledFavicon = Bitmap.createScaledBitmap(favicon, faviconSiz e, faviconSize, 212 Bitmap scaledFavicon = Bitmap.createScaledBitmap(favicon, faviconSiz e, faviconSize,
231 true); 213 true);
232 canvas.drawBitmap(scaledFavicon, 214 canvas.drawBitmap(scaledFavicon,
233 iconBounds.exactCenterX() - scaledFavicon.getWidth() / 2.0f, 215 iconBounds.exactCenterX() - scaledFavicon.getWidth() / 2.0f,
234 iconBounds.exactCenterY() - scaledFavicon.getHeight() / 2.0f , null); 216 iconBounds.exactCenterY() - scaledFavicon.getHeight() / 2.0f , null);
235 } catch (OutOfMemoryError e) { 217 } catch (OutOfMemoryError e) {
236 Log.w(TAG, "OutOfMemoryError while trying to draw bitmap on canvas." ); 218 Log.w(TAG, "OutOfMemoryError while trying to draw bitmap on canvas." );
237 } 219 }
238 } 220 }
239 } 221 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698