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

Side by Side Diff: ui/android/resources/resource_manager.cc

Issue 755643004: Replace SystemUIResourceManager with ResourceManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix clang build failure Created 6 years 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "ui/android/resources/resource_manager.h" 5 #include "ui/android/resources/resource_manager.h"
6 6
7 #include "content/public/browser/android/ui_resource_provider.h" 7 #include "base/android/jni_string.h"
8 #include "jni/ResourceManager_jni.h" 8 #include "jni/ResourceManager_jni.h"
9 #include "ui/android/resources/ui_resource_android.h" 9 #include "ui/android/resources/ui_resource_android.h"
10 #include "ui/android/resources/ui_resource_provider.h"
10 #include "ui/gfx/android/java_bitmap.h" 11 #include "ui/gfx/android/java_bitmap.h"
11 #include "ui/gfx/geometry/insets_f.h" 12 #include "ui/gfx/geometry/insets_f.h"
12 13
13 namespace ui { 14 namespace ui {
14 15
15 ResourceManager::Resource::Resource() { 16 ResourceManager::Resource::Resource() {
16 } 17 }
17 18
18 ResourceManager::Resource::~Resource() { 19 ResourceManager::Resource::~Resource() {
19 } 20 }
(...skipping 18 matching lines...) Expand all
38 (size.width() - aperture.width()) * right_scale, 39 (size.width() - aperture.width()) * right_scale,
39 (size.height() - aperture.height()) * bottom_scale); 40 (size.height() - aperture.height()) * bottom_scale);
40 } 41 }
41 42
42 // static 43 // static
43 ResourceManager* ResourceManager::FromJavaObject(jobject jobj) { 44 ResourceManager* ResourceManager::FromJavaObject(jobject jobj) {
44 return reinterpret_cast<ResourceManager*>(Java_ResourceManager_getNativePtr( 45 return reinterpret_cast<ResourceManager*>(Java_ResourceManager_getNativePtr(
45 base::android::AttachCurrentThread(), jobj)); 46 base::android::AttachCurrentThread(), jobj));
46 } 47 }
47 48
48 ResourceManager::ResourceManager( 49 ResourceManager::ResourceManager(ui::UIResourceProvider* ui_resource_provider)
49 content::UIResourceProvider* ui_resource_provider)
50 : ui_resource_provider_(ui_resource_provider) { 50 : ui_resource_provider_(ui_resource_provider) {
51 JNIEnv* env = base::android::AttachCurrentThread(); 51 JNIEnv* env = base::android::AttachCurrentThread();
52 java_obj_.Reset(env, Java_ResourceManager_create( 52 java_obj_.Reset(env, Java_ResourceManager_create(
53 env, base::android::GetApplicationContext(), 53 env, base::android::GetApplicationContext(),
54 reinterpret_cast<intptr_t>(this)).obj()); 54 reinterpret_cast<intptr_t>(this)).obj());
55 DCHECK(!java_obj_.is_null()); 55 DCHECK(!java_obj_.is_null());
56 } 56 }
57 57
58 ResourceManager::~ResourceManager() { 58 ResourceManager::~ResourceManager() {
59 Java_ResourceManager_destroy(base::android::AttachCurrentThread(), 59 Java_ResourceManager_destroy(base::android::AttachCurrentThread(),
60 java_obj_.obj()); 60 java_obj_.obj());
61 } 61 }
62 62
63 base::android::ScopedJavaLocalRef<jobject> ResourceManager::GetJavaObject( 63 base::android::ScopedJavaLocalRef<jobject> ResourceManager::GetJavaObject(
64 JNIEnv* env) { 64 JNIEnv* env) {
65 return base::android::ScopedJavaLocalRef<jobject>(java_obj_); 65 return base::android::ScopedJavaLocalRef<jobject>(java_obj_);
66 } 66 }
67 67
68 cc::UIResourceId ResourceManager::GetUIResourceId(AndroidResourceType res_type,
69 int res_id) {
70 ui::ResourceManager::Resource* resource = GetResource(res_type, res_id);
71 if (!resource->ui_resource)
72 return 0;
73 return resource->ui_resource->id();
74 }
75
68 ResourceManager::Resource* ResourceManager::GetResource( 76 ResourceManager::Resource* ResourceManager::GetResource(
69 AndroidResourceType res_type, 77 AndroidResourceType res_type,
70 int res_id) { 78 int res_id) {
71 DCHECK_GE(res_type, ANDROID_RESOURCE_TYPE_FIRST); 79 DCHECK_GE(res_type, ANDROID_RESOURCE_TYPE_FIRST);
72 DCHECK_LE(res_type, ANDROID_RESOURCE_TYPE_LAST); 80 DCHECK_LE(res_type, ANDROID_RESOURCE_TYPE_LAST);
73 81
74 Resource* resource = resources_[res_type].Lookup(res_id); 82 Resource* resource = resources_[res_type].Lookup(res_id);
75 83
76 if (!resource || res_type == ANDROID_RESOURCE_TYPE_DYNAMIC || 84 if (!resource || res_type == ANDROID_RESOURCE_TYPE_DYNAMIC ||
77 res_type == ANDROID_RESOURCE_TYPE_DYNAMIC_BITMAP) { 85 res_type == ANDROID_RESOURCE_TYPE_DYNAMIC_BITMAP) {
78 Java_ResourceManager_resourceRequested(base::android::AttachCurrentThread(), 86 RequestResourceFromJava(res_type, res_id);
79 java_obj_.obj(), res_type, res_id);
80 resource = resources_[res_type].Lookup(res_id); 87 resource = resources_[res_type].Lookup(res_id);
81 } 88 }
82 89
83 return resource; 90 return resource;
84 } 91 }
85 92
86 void ResourceManager::PreloadResource(AndroidResourceType res_type, 93 void ResourceManager::PreloadResource(AndroidResourceType res_type,
87 int res_id) { 94 int res_id) {
88 DCHECK_GE(res_type, ANDROID_RESOURCE_TYPE_FIRST); 95 DCHECK_GE(res_type, ANDROID_RESOURCE_TYPE_FIRST);
89 DCHECK_LE(res_type, ANDROID_RESOURCE_TYPE_LAST); 96 DCHECK_LE(res_type, ANDROID_RESOURCE_TYPE_LAST);
90 97
91 // Don't send out a query if the resource is already loaded. 98 // Don't send out a query if the resource is already loaded.
92 if (resources_[res_type].Lookup(res_id)) 99 if (resources_[res_type].Lookup(res_id))
93 return; 100 return;
94 101
95 Java_ResourceManager_preloadResource(base::android::AttachCurrentThread(), 102 PreloadResourceFromJava(res_type, res_id);
96 java_obj_.obj(), res_type, res_id);
97 } 103 }
98 104
99 void ResourceManager::OnResourceReady(JNIEnv* env, 105 void ResourceManager::OnResourceReady(JNIEnv* env,
100 jobject jobj, 106 jobject jobj,
101 jint res_type, 107 jint res_type,
102 jint res_id, 108 jint res_id,
103 jobject bitmap, 109 jobject bitmap,
104 jint padding_left, 110 jint padding_left,
105 jint padding_top, 111 jint padding_top,
106 jint padding_right, 112 jint padding_right,
(...skipping 21 matching lines...) Expand all
128 aperture_bottom - aperture_top); 134 aperture_bottom - aperture_top);
129 resource->ui_resource = 135 resource->ui_resource =
130 UIResourceAndroid::CreateFromJavaBitmap(ui_resource_provider_, jbitmap); 136 UIResourceAndroid::CreateFromJavaBitmap(ui_resource_provider_, jbitmap);
131 } 137 }
132 138
133 // static 139 // static
134 bool ResourceManager::RegisterResourceManager(JNIEnv* env) { 140 bool ResourceManager::RegisterResourceManager(JNIEnv* env) {
135 return RegisterNativesImpl(env); 141 return RegisterNativesImpl(env);
136 } 142 }
137 143
144 void ResourceManager::PreloadResourceFromJava(AndroidResourceType res_type,
145 int res_id) {
146 Java_ResourceManager_preloadResource(base::android::AttachCurrentThread(),
147 java_obj_.obj(), res_type, res_id);
148 }
149
150 void ResourceManager::RequestResourceFromJava(AndroidResourceType res_type,
151 int res_id) {
152 Java_ResourceManager_resourceRequested(base::android::AttachCurrentThread(),
153 java_obj_.obj(), res_type, res_id);
154 }
155
138 } // namespace ui 156 } // namespace ui
OLDNEW
« no previous file with comments | « ui/android/resources/resource_manager.h ('k') | ui/android/resources/resource_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698