| Index: chrome/android/java/src/org/chromium/chrome/browser/infobar/AccountChooserInfoBar.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/AccountChooserInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/AccountChooserInfoBar.java
|
| index 66782203ce3710e221755674aae815d27f9a4b01..9455802e6e0a6e199985c30f9e9814dfb6ab0594 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/AccountChooserInfoBar.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/AccountChooserInfoBar.java
|
| @@ -12,7 +12,6 @@ import android.view.ViewGroup;
|
| import android.widget.ArrayAdapter;
|
| import android.widget.FrameLayout;
|
| import android.widget.ImageView;
|
| -import android.widget.LinearLayout;
|
| import android.widget.ListView;
|
| import android.widget.TextView;
|
|
|
| @@ -28,43 +27,32 @@ import org.chromium.chrome.browser.signin.AccountManagementFragment;
|
| * full name in case they are available.
|
| */
|
| public class AccountChooserInfoBar extends InfoBar {
|
| + private long mNativePtr;
|
| private final Credential[] mCredentials;
|
| private final ImageView[] mAvatarViews;
|
|
|
| /**
|
| * Creates and shows the infobar wich allows user to choose credentials for login.
|
| - * @param nativeInfoBar Pointer to the native infobar.
|
| * @param enumeratedIconId Enum ID corresponding to the icon that the infobar will show.
|
| * @param credentials Credentials to display in the infobar.
|
| */
|
| @CalledByNative
|
| - private static InfoBar show(
|
| - long nativeInfoBar, int enumeratedIconId, Credential[] credentials) {
|
| - return new AccountChooserInfoBar(
|
| - nativeInfoBar, ResourceId.mapToDrawableId(enumeratedIconId), credentials);
|
| + private static InfoBar show(int enumeratedIconId, Credential[] credentials) {
|
| + return new AccountChooserInfoBar(ResourceId.mapToDrawableId(enumeratedIconId), credentials);
|
| }
|
|
|
| /**
|
| * Creates and shows the infobar which allows user to choose credentials.
|
| - * @param nativeInfoBar Pointer to the native infobar.
|
| * @param iconDrawableId Drawable ID corresponding to the icon that the infobar will show.
|
| * @param credentials Credentials to display in the infobar.
|
| */
|
| - public AccountChooserInfoBar(long nativeInfoBar, int iconDrawableId, Credential[] credentials) {
|
| + public AccountChooserInfoBar(int iconDrawableId, Credential[] credentials) {
|
| super(null /* Infobar Listener */, iconDrawableId, null /* bitmap*/,
|
| null /* message to show */);
|
| - setNativeInfoBar(nativeInfoBar);
|
| mCredentials = credentials.clone();
|
| mAvatarViews = new ImageView[mCredentials.length];
|
| }
|
|
|
| -
|
| - @Override
|
| - public void onCloseButtonClicked() {
|
| - // Notifies the native infobar, which closes the infobar.
|
| - nativeOnCloseButtonClicked(mNativeInfoBarPtr);
|
| - }
|
| -
|
| @Override
|
| public void onButtonClicked(boolean isPrimaryButton) {
|
| onCloseButtonClicked();
|
| @@ -97,8 +85,9 @@ public class AccountChooserInfoBar extends InfoBar {
|
| @Override
|
| public View getView(int position, View convertView, ViewGroup parent) {
|
| if (convertView == null) {
|
| - convertView = (LinearLayout) LayoutInflater.from(getContext()).inflate(
|
| - R.layout.account_chooser_infobar_item, parent, false);
|
| + convertView =
|
| + LayoutInflater.from(getContext())
|
| + .inflate(R.layout.account_chooser_infobar_item, parent, false);
|
| } else {
|
| int oldPosition = (int) convertView.getTag();
|
| mAvatarViews[oldPosition] = null;
|
| @@ -126,7 +115,7 @@ public class AccountChooserInfoBar extends InfoBar {
|
| @Override
|
| public void onClick(View view) {
|
| nativeOnCredentialClicked(
|
| - mNativeInfoBarPtr, currentCredentialIndex, credentialType);
|
| + mNativePtr, currentCredentialIndex, credentialType);
|
| }
|
| });
|
| return convertView;
|
| @@ -155,6 +144,17 @@ public class AccountChooserInfoBar extends InfoBar {
|
| layout.setCustomViewInButtonRow(OverflowSelector.createOverflowSelector(getContext()));
|
| }
|
|
|
| + @CalledByNative
|
| + private void setNativePtr(long nativePtr) {
|
| + mNativePtr = nativePtr;
|
| + }
|
| +
|
| + @Override
|
| + protected void onNativeDestroyed() {
|
| + mNativePtr = 0;
|
| + super.onNativeDestroyed();
|
| + }
|
| +
|
| private native void nativeOnCredentialClicked(
|
| long nativeAccountChooserInfoBar, int credentialId, int credentialType);
|
| }
|
|
|