/* * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.example.android.autofillframework.app import android.content.Context import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.widget.ArrayAdapter import com.example.android.autofillframework.R import kotlinx.android.synthetic.main.credit_card_activity.clear import kotlinx.android.synthetic.main.credit_card_activity.creditCardNumberField import kotlinx.android.synthetic.main.credit_card_activity.expirationDay import kotlinx.android.synthetic.main.credit_card_activity.expirationMonth import kotlinx.android.synthetic.main.credit_card_activity.expirationYear import kotlinx.android.synthetic.main.credit_card_activity.submit import java.util.Calendar class CreditCardActivity : AppCompatActivity() { private val CC_EXP_YEARS_COUNT = 5 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.credit_card_activity) // Create an ArrayAdapter using the string array and a default spinner layout expirationDay.adapter = ArrayAdapter.createFromResource(this, R.array.day_array, android.R.layout.simple_spinner_item).apply { // Specify the layout to use when the list of choices appears setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) } expirationMonth.adapter = ArrayAdapter.createFromResource(this, R.array.month_array, android.R.layout.simple_spinner_item).apply { setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) } val year = Calendar.getInstance().get(Calendar.YEAR) val years = (0 until CC_EXP_YEARS_COUNT) .map { Integer.toString(year + it) } .toTypedArray() expirationYear.adapter = object : ArrayAdapter(this, android.R.layout.simple_spinner_item, years) { override fun getAutofillOptions() = years } submit.setOnClickListener { submitCcInfo() } clear.setOnClickListener { resetFields() } } private fun resetFields() { creditCardNumberField.setText("") expirationDay.setSelection(0) expirationMonth.setSelection(0) expirationYear.setSelection(0) } /** * Launches new Activity and finishes, triggering an autofill save request if the user entered * any new data. */ private fun submitCcInfo() { startActivity(WelcomeActivity.getStartActivityIntent(this)) finish() } companion object { fun getStartActivityIntent(context: Context) = Intent(context, CreditCardActivity::class.java) } }