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

Side by Side Diff: chrome/browser/android/banners/app_banner_manager_android.h

Issue 1310223002: webapps: initial addition of splash screen icon downloading (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@webapps-database-exp
Patch Set: Fix compile Created 5 years, 3 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #ifndef CHROME_BROWSER_ANDROID_BANNERS_APP_BANNER_MANAGER_ANDROID_H_ 5 #ifndef CHROME_BROWSER_ANDROID_BANNERS_APP_BANNER_MANAGER_ANDROID_H_
6 #define CHROME_BROWSER_ANDROID_BANNERS_APP_BANNER_MANAGER_ANDROID_H_ 6 #define CHROME_BROWSER_ANDROID_BANNERS_APP_BANNER_MANAGER_ANDROID_H_
7 7
8 #include "base/android/jni_android.h" 8 #include "base/android/jni_android.h"
9 #include "base/android/jni_weak_ref.h" 9 #include "base/android/jni_weak_ref.h"
10 #include "base/memory/weak_ptr.h" 10 #include "base/memory/weak_ptr.h"
11 #include "chrome/browser/android/banners/app_banner_data_fetcher_android.h" 11 #include "chrome/browser/android/banners/app_banner_data_fetcher_android.h"
12 #include "chrome/browser/banners/app_banner_debug_log.h" 12 #include "chrome/browser/banners/app_banner_debug_log.h"
13 #include "chrome/browser/banners/app_banner_manager.h" 13 #include "chrome/browser/banners/app_banner_manager.h"
14 14
15 namespace banners { 15 namespace banners {
16 class AppBannerDataFetcherAndroid; 16 class AppBannerDataFetcherAndroid;
17 17
18 // Extends the AppBannerManager to support native Android apps. 18 // Extends the AppBannerManager to support native Android apps.
19 // TODO(dfalcantara): Flip it so the C++ AppBannerManagerAndroid owns the 19 // TODO(dfalcantara): Flip it so the C++ AppBannerManagerAndroid owns the
20 // Java AppBannerManager, move ownership of the AppBannerManagerAndroid to 20 // Java AppBannerManager, move ownership of the AppBannerManagerAndroid to
21 // the TabAndroid class, then move functions for retriving info from Java to 21 // the TabAndroid class, then move functions for retriving info from Java to
22 // the AppBannerDataFetcherAndroid. 22 // the AppBannerDataFetcherAndroid.
23 class AppBannerManagerAndroid : public AppBannerManager { 23 class AppBannerManagerAndroid : public AppBannerManager {
24 public: 24 public:
25 // Registers native methods. 25 // Registers native methods.
26 static bool Register(JNIEnv* env); 26 static bool Register(JNIEnv* env);
27 27
28 AppBannerManagerAndroid(JNIEnv* env, jobject obj, int icon_size); 28 AppBannerManagerAndroid(JNIEnv* env,
29 jobject obj,
30 int ideal_splash_image_size_in_dp,
31 int ideal_icon_size_in_dp);
29 ~AppBannerManagerAndroid() override; 32 ~AppBannerManagerAndroid() override;
30 33
31 // Destroys the AppBannerManagerAndroid. 34 // Destroys the AppBannerManagerAndroid.
32 void Destroy(JNIEnv* env, jobject obj); 35 void Destroy(JNIEnv* env, jobject obj);
33 36
34 // Observes a new WebContents, if necessary. 37 // Observes a new WebContents, if necessary.
35 void ReplaceWebContents(JNIEnv* env, 38 void ReplaceWebContents(JNIEnv* env,
36 jobject obj, 39 jobject obj,
37 jobject jweb_contents); 40 jobject jweb_contents);
38 41
39 // Return whether a BitmapFetcher is active. 42 // Return whether a BitmapFetcher is active.
40 bool IsFetcherActive(JNIEnv* env, jobject jobj); 43 bool IsFetcherActive(JNIEnv* env, jobject jobj);
41 44
42 // Called when the Java-side has retrieved information for the app. 45 // Called when the Java-side has retrieved information for the app.
43 // Returns |false| if an icon fetch couldn't be kicked off. 46 // Returns |false| if an icon fetch couldn't be kicked off.
44 bool OnAppDetailsRetrieved(JNIEnv* env, 47 bool OnAppDetailsRetrieved(JNIEnv* env,
45 jobject obj, 48 jobject obj,
46 jobject japp_data, 49 jobject japp_data,
47 jstring japp_title, 50 jstring japp_title,
48 jstring japp_package, 51 jstring japp_package,
49 jstring jicon_url); 52 jstring jicon_url);
50 53
51 protected: 54 protected:
52 AppBannerDataFetcher* CreateAppBannerDataFetcher( 55 AppBannerDataFetcher* CreateAppBannerDataFetcher(
53 base::WeakPtr<AppBannerDataFetcher::Delegate> weak_delegate, 56 base::WeakPtr<AppBannerDataFetcher::Delegate> weak_delegate,
54 const int ideal_icon_size) override; 57 const int ideal_icon_size_in_dp) override;
55 58
56 private: 59 private:
57 // AppBannerDataFetcher::Delegate overrides. 60 // AppBannerDataFetcher::Delegate overrides.
58 bool HandleNonWebApp(const std::string& platform, 61 bool HandleNonWebApp(const std::string& platform,
59 const GURL& url, 62 const GURL& url,
60 const std::string& id) override; 63 const std::string& id) override;
61 64
62 bool CheckPlatformAndId(const std::string& platform, const std::string& id); 65 bool CheckPlatformAndId(const std::string& platform, const std::string& id);
63 66
64 bool CheckFetcherMatchesContents(); 67 bool CheckFetcherMatchesContents();
65 68
66 std::string ExtractQueryValueForName(const GURL& url, 69 std::string ExtractQueryValueForName(const GURL& url,
67 const std::string& name); 70 const std::string& name);
68 71
72 // Ideal splash screen image size to use.
73 const int ideal_splash_image_size_in_dp_;
74
69 // AppBannerManager on the Java side. 75 // AppBannerManager on the Java side.
70 JavaObjectWeakGlobalRef weak_java_banner_view_manager_; 76 JavaObjectWeakGlobalRef weak_java_banner_view_manager_;
71 77
72 DISALLOW_COPY_AND_ASSIGN(AppBannerManagerAndroid); 78 DISALLOW_COPY_AND_ASSIGN(AppBannerManagerAndroid);
73 }; // class AppBannerManagerAndroid 79 }; // class AppBannerManagerAndroid
74 80
75 } // namespace banners 81 } // namespace banners
76 82
77 #endif // CHROME_BROWSER_ANDROID_BANNERS_APP_BANNER_MANAGER_ANDROID_H_ 83 #endif // CHROME_BROWSER_ANDROID_BANNERS_APP_BANNER_MANAGER_ANDROID_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698