Index: chrome/browser/android/shortcut_helper.cc |
diff --git a/chrome/browser/android/shortcut_helper.cc b/chrome/browser/android/shortcut_helper.cc |
index f0d8fb1c071f01590fd5297969850c490df99f2c..4c7a38362706a7fd0fec07b057b764b8327d084a 100644 |
--- a/chrome/browser/android/shortcut_helper.cc |
+++ b/chrome/browser/android/shortcut_helper.cc |
@@ -23,121 +23,6 @@ |
using content::Manifest; |
-jlong Initialize(JNIEnv* env, jobject obj, jobject java_web_contents) { |
- content::WebContents* web_contents = |
- content::WebContents::FromJavaWebContents(java_web_contents); |
- ShortcutHelper* shortcut_helper = new ShortcutHelper(env, obj, web_contents); |
- return reinterpret_cast<intptr_t>(shortcut_helper); |
-} |
- |
-ShortcutHelper::ShortcutHelper(JNIEnv* env, |
- jobject obj, |
- content::WebContents* web_contents) |
- : add_shortcut_pending_(false), |
- data_fetcher_(new ShortcutDataFetcher(web_contents, this)) { |
- java_ref_.Reset(env, obj); |
-} |
- |
-ShortcutHelper::~ShortcutHelper() { |
- data_fetcher_->set_weak_observer(nullptr); |
- data_fetcher_ = nullptr; |
-} |
- |
-void ShortcutHelper::OnUserTitleAvailable(const base::string16& user_title) { |
- JNIEnv* env = base::android::AttachCurrentThread(); |
- ScopedJavaLocalRef<jstring> j_user_title = |
- base::android::ConvertUTF16ToJavaString(env, user_title); |
- Java_ShortcutHelper_onUserTitleAvailable(env, |
- java_ref_.obj(), |
- j_user_title.obj()); |
-} |
- |
-void ShortcutHelper::OnDataAvailable(const ShortcutInfo& info, |
- const SkBitmap& icon) { |
- JNIEnv* env = base::android::AttachCurrentThread(); |
- ScopedJavaLocalRef<jobject> java_bitmap; |
- if (icon.getSize()) |
- java_bitmap = gfx::ConvertToJavaBitmap(&icon); |
- |
- Java_ShortcutHelper_onIconAvailable(env, |
- java_ref_.obj(), |
- java_bitmap.obj()); |
- |
- if (add_shortcut_pending_) |
- AddShortcut(info, icon); |
-} |
- |
-void ShortcutHelper::Destroy(JNIEnv* env, jobject obj) { |
- delete this; |
-} |
- |
-SkBitmap ShortcutHelper::FinalizeLauncherIcon(const SkBitmap& bitmap, |
- const GURL& url) { |
- DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
- |
- // Determine a single color to use for the favicon if the favicon that is |
- // returned it is too low quality. |
- SkColor color = color_utils::CalculateKMeanColorOfBitmap(bitmap); |
- int dominant_red = SkColorGetR(color); |
- int dominant_green = SkColorGetG(color); |
- int dominant_blue = SkColorGetB(color); |
- |
- // Make the icon acceptable for the Android launcher. |
- JNIEnv* env = base::android::AttachCurrentThread(); |
- ScopedJavaLocalRef<jstring> java_url = |
- base::android::ConvertUTF8ToJavaString(env, url.spec()); |
- ScopedJavaLocalRef<jobject> java_bitmap; |
- if (bitmap.getSize()) |
- java_bitmap = gfx::ConvertToJavaBitmap(&bitmap); |
- |
- base::android::ScopedJavaLocalRef<jobject> ref = |
- Java_ShortcutHelper_finalizeLauncherIcon(env, |
- java_url.obj(), |
- java_bitmap.obj(), |
- dominant_red, |
- dominant_green, |
- dominant_blue); |
- return gfx::CreateSkBitmapFromJavaBitmap(gfx::JavaBitmap(ref.obj())); |
-} |
- |
-void ShortcutHelper::AddShortcut(JNIEnv* env, |
- jobject obj, |
- jstring j_user_title) { |
- add_shortcut_pending_ = true; |
- |
- base::string16 user_title = |
- base::android::ConvertJavaStringToUTF16(env, j_user_title); |
- if (!user_title.empty()) |
- data_fetcher_->shortcut_info().user_title = user_title; |
- |
- if (data_fetcher_->is_ready()) { |
- // If the fetcher isn't ready yet, the shortcut will be added when it is |
- // via OnDataAvailable(); |
- AddShortcut(data_fetcher_->shortcut_info(), data_fetcher_->shortcut_icon()); |
- } |
-} |
- |
-void ShortcutHelper::AddShortcut(const ShortcutInfo& info, |
- const SkBitmap& icon) { |
- DCHECK(add_shortcut_pending_); |
- if (!add_shortcut_pending_) |
- return; |
- add_shortcut_pending_ = false; |
- |
- RecordAddToHomescreen(); |
- |
- content::BrowserThread::PostTask( |
- content::BrowserThread::IO, |
- FROM_HERE, |
- base::Bind(&ShortcutHelper::AddShortcutInBackgroundWithSkBitmap, |
- info, |
- icon)); |
-} |
- |
-bool ShortcutHelper::RegisterShortcutHelper(JNIEnv* env) { |
- return RegisterNativesImpl(env); |
-} |
- |
// static |
void ShortcutHelper::AddShortcutInBackgroundWithSkBitmap( |
const ShortcutInfo& info, |
@@ -173,16 +58,6 @@ void ShortcutHelper::AddShortcutInBackgroundWithSkBitmap( |
info.background_color); |
} |
-void ShortcutHelper::RecordAddToHomescreen() { |
- // Record that the shortcut has been added, so no banners will be shown |
- // for this app. |
- content::WebContents* web_contents = data_fetcher_->web_contents(); |
- if (!web_contents) |
- return; |
- |
- AppBannerSettingsHelper::RecordBannerEvent( |
- web_contents, web_contents->GetURL(), |
- data_fetcher_->shortcut_info().url.spec(), |
- AppBannerSettingsHelper::APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN, |
- base::Time::Now()); |
+bool ShortcutHelper::RegisterShortcutHelper(JNIEnv* env) { |
+ return RegisterNativesImpl(env); |
} |