// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package org.chromium.chrome.browser.preferences.autofill; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.Button; import android.widget.TextView; import org.chromium.chrome.R; import org.chromium.chrome.browser.EmbedContentViewActivity; import org.chromium.chrome.browser.autofill.PersonalDataManager; import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile; /** * Server credit card settings. */ public class AutofillServerCardEditor extends AutofillCreditCardEditor { private View mLocalCopyLabel; private View mClearLocalCopy; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View v = super.onCreateView(inflater, container, savedInstanceState); if (mCard == null) { getActivity().finish(); return v; } ((TextView) v.findViewById(R.id.title)).setText(mCard.getObfuscatedNumber()); ((TextView) v.findViewById(R.id.summary)).setText(mCard.getFormattedExpirationDate( getActivity())); v.findViewById(R.id.edit_server_card).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EmbedContentViewActivity.show(getActivity(), R.string.autofill_edit_credit_card, R.string.autofill_manage_wallet_cards_url); } }); mLocalCopyLabel = v.findViewById(R.id.local_copy_label); mClearLocalCopy = v.findViewById(R.id.clear_local_copy); if (mCard.getIsCached()) { mClearLocalCopy.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PersonalDataManager.getInstance().clearUnmaskedCache(mGUID); removeLocalCopyViews(); } }); } else { removeLocalCopyViews(); } initializeButtons(v); return v; } private void removeLocalCopyViews() { ViewGroup parent = (ViewGroup) mClearLocalCopy.getParent(); if (parent == null) return; parent.removeView(mLocalCopyLabel); parent.removeView(mClearLocalCopy); } @Override protected int getLayoutId() { return R.layout.autofill_server_card_editor; } @Override protected int getTitleResourceId(boolean isNewEntry) { return R.string.autofill_edit_credit_card; } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (parent == mBillingAddress && position != mInitialBillingAddressPos) { ((Button) getView().findViewById(R.id.button_primary)).setEnabled(true); } } @Override protected void saveEntry() { PersonalDataManager.getInstance().updateServerCardBillingAddress(mCard.getServerId(), ((AutofillProfile) mBillingAddress.getSelectedItem()).getGUID()); } @Override protected boolean getIsDeletable() { return false; } @Override protected void initializeButtons(View v) { super.initializeButtons(v); mBillingAddress.setOnItemSelectedListener(this); } }