#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
+#include "chrome/browser/android/resource_mapper.h"
#include "chrome/browser/ui/android/window_android_helper.h"
#include "chrome/browser/ui/autofill/autofill_popup_controller.h"
#include "content/public/browser/android/content_view_core.h"
#include "jni/AutofillPopupBridge_jni.h"
#include "ui/base/android/view_android.h"
#include "ui/base/android/window_android.h"
+#include "ui/base/resource/resource_bundle.h"
+#include "ui/gfx/android/java_bitmap.h"
#include "ui/gfx/rect.h"
namespace autofill {
ScopedJavaLocalRef<jstring> subtext =
base::android::ConvertUTF16ToJavaString(env,
controller_->subtexts()[i]);
+ int android_icon_id = 0;
+ if (!controller_->icons()[i].empty()) {
+ android_icon_id = ResourceMapper::MapFromChromiumId(
+ controller_->GetIconResourceID(controller_->icons()[i]));
+ }
+
Java_AutofillPopupBridge_addToAutofillSuggestionArray(
env,
data_array.obj(),
i,
name.obj(),
subtext.obj(),
+ android_icon_id,
controller_->identifiers()[i]);
}
void AutofillPopupViewAndroid::SuggestionSelected(JNIEnv* env,
jobject obj,
jint list_index) {
- controller_->AcceptSuggestion(list_index);
+ // Race: Hide() may have already run.
+ if (controller_)
+ controller_->AcceptSuggestion(list_index);
}
void AutofillPopupViewAndroid::PopupDismissed(JNIEnv* env, jobject obj) {