| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/ui/android/infobars/translate_infobar.h" | 5 #include "chrome/browser/ui/android/infobars/translate_infobar.h" |
| 6 | 6 |
| 7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
| 8 #include "base/android/jni_array.h" | 8 #include "base/android/jni_array.h" |
| 9 #include "base/android/jni_helper.h" | 9 #include "base/android/jni_helper.h" |
| 10 #include "chrome/browser/translate/translate_infobar_delegate.h" | 10 #include "chrome/browser/translate/translate_infobar_delegate.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 java_translate_delegate_.Reset(Java_TranslateInfoBarDelegate_create(env)); | 37 java_translate_delegate_.Reset(Java_TranslateInfoBarDelegate_create(env)); |
| 38 std::vector<string16> languages(delegate_->num_languages()); | 38 std::vector<string16> languages(delegate_->num_languages()); |
| 39 for (size_t i = 0; i < delegate_->num_languages(); ++i) | 39 for (size_t i = 0; i < delegate_->num_languages(); ++i) |
| 40 languages[i] = delegate_->language_name_at(i); | 40 languages[i] = delegate_->language_name_at(i); |
| 41 | 41 |
| 42 base::android::ScopedJavaLocalRef<jobjectArray> java_languages = | 42 base::android::ScopedJavaLocalRef<jobjectArray> java_languages = |
| 43 base::android::ToJavaArrayOfStrings(env, languages); | 43 base::android::ToJavaArrayOfStrings(env, languages); |
| 44 return Java_TranslateInfoBarDelegate_showTranslateInfoBar( | 44 return Java_TranslateInfoBarDelegate_showTranslateInfoBar( |
| 45 env, | 45 env, |
| 46 java_translate_delegate_.obj(), | 46 java_translate_delegate_.obj(), |
| 47 reinterpret_cast<jint>(this), | 47 reinterpret_cast<intptr_t>(this), |
| 48 delegate_->infobar_type(), | 48 delegate_->infobar_type(), |
| 49 delegate_->original_language_index(), | 49 delegate_->original_language_index(), |
| 50 delegate_->target_language_index(), | 50 delegate_->target_language_index(), |
| 51 delegate_->ShouldAlwaysTranslate(), | 51 delegate_->ShouldAlwaysTranslate(), |
| 52 ShouldDisplayNeverTranslateInfoBarOnCancel(), | 52 ShouldDisplayNeverTranslateInfoBarOnCancel(), |
| 53 java_languages.obj()); | 53 java_languages.obj()); |
| 54 } | 54 } |
| 55 | 55 |
| 56 void TranslateInfoBar::ProcessButton( | 56 void TranslateInfoBar::ProcessButton( |
| 57 int action, const std::string& action_value) { | 57 int action, const std::string& action_value) { |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 if (never_translate_site && !delegate_->IsSiteBlacklisted()) | 102 if (never_translate_site && !delegate_->IsSiteBlacklisted()) |
| 103 delegate_->ToggleSiteBlacklist(); | 103 delegate_->ToggleSiteBlacklist(); |
| 104 } | 104 } |
| 105 | 105 |
| 106 void TranslateInfoBar::TransferOwnership( | 106 void TranslateInfoBar::TransferOwnership( |
| 107 TranslateInfoBar* destination, | 107 TranslateInfoBar* destination, |
| 108 TranslateInfoBarDelegate::Type new_type) { | 108 TranslateInfoBarDelegate::Type new_type) { |
| 109 JNIEnv* env = base::android::AttachCurrentThread(); | 109 JNIEnv* env = base::android::AttachCurrentThread(); |
| 110 if (Java_TranslateInfoBarDelegate_changeTranslateInfoBarTypeAndPointer( | 110 if (Java_TranslateInfoBarDelegate_changeTranslateInfoBarTypeAndPointer( |
| 111 env, java_translate_delegate_.obj(), | 111 env, java_translate_delegate_.obj(), |
| 112 reinterpret_cast<jint>(destination), new_type)) { | 112 reinterpret_cast<intptr_t>(destination), new_type)) { |
| 113 ReassignJavaInfoBar(destination); | 113 ReassignJavaInfoBar(destination); |
| 114 destination->SetJavaDelegate(java_translate_delegate_.Release()); | 114 destination->SetJavaDelegate(java_translate_delegate_.Release()); |
| 115 } | 115 } |
| 116 } | 116 } |
| 117 | 117 |
| 118 void TranslateInfoBar::SetJavaDelegate(jobject delegate) { | 118 void TranslateInfoBar::SetJavaDelegate(jobject delegate) { |
| 119 JNIEnv* env = base::android::AttachCurrentThread(); | 119 JNIEnv* env = base::android::AttachCurrentThread(); |
| 120 java_translate_delegate_.Reset(env, delegate); | 120 java_translate_delegate_.Reset(env, delegate); |
| 121 } | 121 } |
| 122 | 122 |
| 123 bool TranslateInfoBar::ShouldDisplayNeverTranslateInfoBarOnCancel() { | 123 bool TranslateInfoBar::ShouldDisplayNeverTranslateInfoBarOnCancel() { |
| 124 return | 124 return |
| 125 (delegate_->infobar_type() == | 125 (delegate_->infobar_type() == |
| 126 TranslateInfoBarDelegate::BEFORE_TRANSLATE) && | 126 TranslateInfoBarDelegate::BEFORE_TRANSLATE) && |
| 127 (delegate_->ShouldShowNeverTranslateShortcut()); | 127 (delegate_->ShouldShowNeverTranslateShortcut()); |
| 128 } | 128 } |
| 129 | 129 |
| 130 | 130 |
| 131 // Native JNI methods --------------------------------------------------------- | 131 // Native JNI methods --------------------------------------------------------- |
| 132 | 132 |
| 133 bool RegisterTranslateInfoBarDelegate(JNIEnv* env) { | 133 bool RegisterTranslateInfoBarDelegate(JNIEnv* env) { |
| 134 return RegisterNativesImpl(env); | 134 return RegisterNativesImpl(env); |
| 135 } | 135 } |
| OLD | NEW |