aboutsummaryrefslogtreecommitdiff
path: root/input/autofill/AutofillFramework/kotlinApp/Application
diff options
context:
space:
mode:
authorDouglas Sigelbaum <sigelbaum@google.com>2017-05-25 21:52:04 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-05-25 21:52:05 +0000
commit4d26317b63c514417086a5ad8d2310dc484bc401 (patch)
treea29377b882da960e7c182314a4042d33a0c8a9f6 /input/autofill/AutofillFramework/kotlinApp/Application
parent4e6e5cbe46390d048c8cd4355bb680cb0b26ec63 (diff)
parent76876967bafa44916bd972d9ed2b145ee4879134 (diff)
downloadandroid-4d26317b63c514417086a5ad8d2310dc484bc401.tar.gz
Merge "Various kotlin anti-pattern fixes in Autofill sample." into oc-dev
Diffstat (limited to 'input/autofill/AutofillFramework/kotlinApp/Application')
-rw-r--r--input/autofill/AutofillFramework/kotlinApp/Application/build.gradle1
-rw-r--r--input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/CreditCardActivity.kt28
-rw-r--r--input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/CustomVirtualView.kt58
-rw-r--r--input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/LoginActivity.kt34
-rw-r--r--input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/MainActivity.kt4
-rw-r--r--input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/VirtualLoginActivity.kt13
-rw-r--r--input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/WelcomeActivity.kt5
-rw-r--r--input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/service/model/AutofillField.java1
8 files changed, 41 insertions, 103 deletions
diff --git a/input/autofill/AutofillFramework/kotlinApp/Application/build.gradle b/input/autofill/AutofillFramework/kotlinApp/Application/build.gradle
index 43771dd8..fa91e606 100644
--- a/input/autofill/AutofillFramework/kotlinApp/Application/build.gradle
+++ b/input/autofill/AutofillFramework/kotlinApp/Application/build.gradle
@@ -12,6 +12,7 @@ buildscript {
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
+apply plugin: 'kotlin-android-extensions'
repositories {
jcenter()
diff --git a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/CreditCardActivity.kt b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/CreditCardActivity.kt
index f2d9a8b4..46fdb72a 100644
--- a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/CreditCardActivity.kt
+++ b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/CreditCardActivity.kt
@@ -19,49 +19,33 @@ import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
-import android.view.View
import android.widget.ArrayAdapter
-import android.widget.Button
-import android.widget.Spinner
-
import com.example.android.autofillframework.R
+import kotlinx.android.synthetic.main.credit_card_activity.*
class CreditCardActivity : AppCompatActivity() {
- private var mCcExpirationDaySpinner: Spinner? = null
- private var mCcExpirationMonthSpinner: Spinner? = null
- private var mCcExpirationYearSpinner: Spinner? = null
- private var mSubmitButton: Button? = null
- private var mClearButton: Button? = null
-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- setContentView(R.layout.credit_card_activity)
-
- mSubmitButton = findViewById(R.id.submit) as Button
- mClearButton = findViewById(R.id.clear) as Button
- mCcExpirationDaySpinner = findViewById(R.id.expirationDay) as Spinner
- mCcExpirationMonthSpinner = findViewById(R.id.expirationMonth) as Spinner
- mCcExpirationYearSpinner = findViewById(R.id.expirationYear) as Spinner
// Create an ArrayAdapter using the string array and a default spinner layout
val dayAdapter = ArrayAdapter.createFromResource(this, R.array.day_array, android.R.layout.simple_spinner_item)
// Specify the layout to use when the list of choices appears
dayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
// Apply the adapter to the spinner
- mCcExpirationDaySpinner!!.adapter = dayAdapter
+ expirationDay.adapter = dayAdapter
val monthAdapter = ArrayAdapter.createFromResource(this, R.array.month_array, android.R.layout.simple_spinner_item)
monthAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
- mCcExpirationMonthSpinner!!.adapter = monthAdapter
+ expirationMonth.adapter = monthAdapter
val yearAdapter = ArrayAdapter.createFromResource(this, R.array.year_array, android.R.layout.simple_spinner_item)
yearAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
- mCcExpirationYearSpinner!!.adapter = yearAdapter
+ expirationYear.adapter = yearAdapter
- mSubmitButton!!.setOnClickListener { submit() }
- mClearButton!!.setOnClickListener { resetFields() }
+ submit.setOnClickListener { submit() }
+ clear.setOnClickListener { resetFields() }
}
private fun resetFields() {
diff --git a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/CustomVirtualView.kt b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/CustomVirtualView.kt
index c5a7989e..5f66364c 100644
--- a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/CustomVirtualView.kt
+++ b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/CustomVirtualView.kt
@@ -31,13 +31,9 @@ import android.view.autofill.AutofillManager
import android.view.autofill.AutofillValue
import android.widget.EditText
import android.widget.TextView
-
-import com.example.android.autofillframework.R
-
-import java.util.ArrayList
-import java.util.Arrays
-
import com.example.android.autofillframework.CommonUtil.bundleToString
+import com.example.android.autofillframework.R
+import java.util.*
/**
@@ -47,36 +43,23 @@ class CustomVirtualView(context: Context, attrs: AttributeSet) : View(context, a
private val mLines = ArrayList<Line>()
private val mItems = SparseArray<Item>()
- private val mAfm: AutofillManager
+ private val mAfm: AutofillManager = context.getSystemService(AutofillManager::class.java)
private var mFocusedLine: Line? = null
- private val mTextPaint: Paint
- private val mTextHeight: Int
- private val mTopMargin: Int
- private val mLeftMargin: Int
- private val mVerticalGap: Int
- private val mLineLength: Int
- private val mFocusedColor: Int
- private val mUnfocusedColor: Int
+ private val mTextPaint: Paint = Paint()
+ private val mTextHeight: Int = 90
+ private val mTopMargin: Int = 100
+ private val mLeftMargin: Int = 100
+ private val mVerticalGap: Int = 10
+ private val mLineLength: Int = mTextHeight + mVerticalGap
+ private val mFocusedColor: Int = Color.RED
+ private val mUnfocusedColor: Int = Color.BLACK
private val mUsernameLine: Line
private val mPasswordLine: Line
init {
-
- mAfm = context.getSystemService(AutofillManager::class.java)
-
- mTextPaint = Paint()
-
- mUnfocusedColor = Color.BLACK
- mFocusedColor = Color.RED
mTextPaint.style = Style.FILL
- mTopMargin = 100
- mLeftMargin = 100
- mTextHeight = 90
- mVerticalGap = 10
-
- mLineLength = mTextHeight + mVerticalGap
mTextPaint.textSize = mTextHeight.toFloat()
mUsernameLine = addLine("usernameField", context.getString(R.string.username_label),
arrayOf(View.AUTOFILL_HINT_USERNAME), " ", true)
@@ -168,13 +151,11 @@ class CustomVirtualView(context: Context, attrs: AttributeSet) : View(context, a
val line = mLines[i]
Log.d(TAG, "Line $i ranges from $lowerY to $upperY")
if (lowerY <= y && y <= upperY) {
- if (mFocusedLine != null) {
- Log.d(TAG, "Removing focus from " + mFocusedLine!!)
- mFocusedLine!!.changeFocus(false)
- }
+ Log.d(TAG, "Removing focus from " + mFocusedLine)
+ mFocusedLine?.changeFocus(false)
Log.d(TAG, "Changing focus to " + line)
mFocusedLine = line
- mFocusedLine!!.changeFocus(true)
+ mFocusedLine?.changeFocus(true)
invalidate()
break
}
@@ -221,13 +202,8 @@ class CustomVirtualView(context: Context, attrs: AttributeSet) : View(context, a
// Boundaries of the text field, relative to the CustomView
internal val bounds = Rect()
- var labelItem: Item
- var fieldTextItem: Item
-
- init {
- this.labelItem = Item(this, ++nextId, null, View.AUTOFILL_TYPE_NONE, label, false, true)
- this.fieldTextItem = Item(this, ++nextId, hints, View.AUTOFILL_TYPE_TEXT, text, true, sanitized)
- }
+ var labelItem: Item = Item(this, ++nextId, null, View.AUTOFILL_TYPE_NONE, label, false, true)
+ var fieldTextItem: Item = Item(this, ++nextId, hints, View.AUTOFILL_TYPE_TEXT, text, true, sanitized)
internal fun changeFocus(focused: Boolean) {
fieldTextItem.focused = focused
@@ -249,7 +225,7 @@ class CustomVirtualView(context: Context, attrs: AttributeSet) : View(context, a
val absBounds = Rect(bounds.left + offset[0],
bounds.top + offset[1],
bounds.right + offset[0], bounds.bottom + offset[1])
- Log.v(TAG, "getAbsCoordinates() for " + fieldTextItem.id + ": bounds=" + bounds
+ Log.v(TAG, "absCoordinates for " + fieldTextItem.id + ": bounds=" + bounds
+ " offset: " + Arrays.toString(offset) + " absBounds: " + absBounds)
return absBounds
}
diff --git a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/LoginActivity.kt b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/LoginActivity.kt
index 8a739606..ca146019 100644
--- a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/LoginActivity.kt
+++ b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/LoginActivity.kt
@@ -15,48 +15,36 @@
*/
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.view.View
-import android.widget.Button
-import android.widget.EditText
import android.widget.Toast
-
import com.example.android.autofillframework.R
+import kotlinx.android.synthetic.main.login_activity.*
class LoginActivity : AppCompatActivity() {
-
- private var mUsernameEditText: EditText? = null
- private var mPasswordEditText: EditText? = null
- private var mLoginButton: Button? = null
- private var mClearButton: Button? = null
+ val TAG = "LoginActivity"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
-
setContentView(R.layout.login_activity)
-
- mLoginButton = findViewById(R.id.login) as Button
- mClearButton = findViewById(R.id.clear) as Button
- mUsernameEditText = findViewById(R.id.usernameField) as EditText
- mPasswordEditText = findViewById(R.id.passwordField) as EditText
- mLoginButton!!.setOnClickListener { login() }
- mClearButton!!.setOnClickListener { resetFields() }
+ login.setOnClickListener { login() }
+ clear.setOnClickListener { resetFields() }
}
private fun resetFields() {
- mUsernameEditText!!.setText("")
- mPasswordEditText!!.setText("")
+ usernameField.setText("")
+ passwordField.setText("")
}
/**
* Emulates a login action.
*/
private fun login() {
- val username = mUsernameEditText!!.text.toString()
- val password = mPasswordEditText!!.text.toString()
+ val username = usernameField.text.toString()
+ val password = passwordField.text.toString()
val valid = isValidCredentials(username, password)
if (valid) {
val intent = WelcomeActivity.getStartActivityIntent(this@LoginActivity)
@@ -71,8 +59,8 @@ class LoginActivity : AppCompatActivity() {
* Dummy implementation for demo purposes. A real service should use secure mechanisms to
* authenticate users.
*/
- fun isValidCredentials(username: String?, password: String?): Boolean {
- return username != null && password != null && username == password
+ fun isValidCredentials(username: String, password: String): Boolean {
+ return username == password
}
companion object {
diff --git a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/MainActivity.kt b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/MainActivity.kt
index b47daa18..1f7704ea 100644
--- a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/MainActivity.kt
+++ b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/MainActivity.kt
@@ -15,12 +15,8 @@
*/
package com.example.android.autofillframework.app
-import android.app.Activity
-import android.content.Intent
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
-import android.view.View
-
import com.example.android.autofillframework.R
/**
diff --git a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/VirtualLoginActivity.kt b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/VirtualLoginActivity.kt
index 198ff9d5..078e8e21 100644
--- a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/VirtualLoginActivity.kt
+++ b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/VirtualLoginActivity.kt
@@ -15,41 +15,36 @@
*/
package com.example.android.autofillframework.app
-import android.app.Activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
-import android.view.View
import android.widget.Toast
-
import com.example.android.autofillframework.R
+import kotlinx.android.synthetic.main.virtual_login_activity.*
class VirtualLoginActivity : AppCompatActivity() {
- private var mCustomVirtualView: CustomVirtualView? = null
-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.virtual_login_activity)
- mCustomVirtualView = findViewById(R.id.custom_view) as CustomVirtualView
findViewById(R.id.login).setOnClickListener { login() }
findViewById(R.id.clear).setOnClickListener { resetFields() }
}
private fun resetFields() {
- mCustomVirtualView!!.resetFields()
+ custom_view.resetFields()
}
/**
* Emulates a login action.
*/
private fun login() {
- val username = mCustomVirtualView!!.usernameText.toString()
- val password = mCustomVirtualView!!.passwordText.toString()
+ val username = custom_view.usernameText.toString()
+ val password = custom_view.passwordText.toString()
val valid = isValidCredentials(username, password)
if (valid) {
val intent = WelcomeActivity.getStartActivityIntent(this@VirtualLoginActivity)
diff --git a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/WelcomeActivity.kt b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/WelcomeActivity.kt
index 01475180..bdcfef2e 100644
--- a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/WelcomeActivity.kt
+++ b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/app/WelcomeActivity.kt
@@ -15,14 +15,13 @@
*/
package com.example.android.autofillframework.app
-import android.app.Activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
-
+import android.support.v7.app.AppCompatActivity
import com.example.android.autofillframework.R
-class WelcomeActivity : Activity() {
+class WelcomeActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
diff --git a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/service/model/AutofillField.java b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/service/model/AutofillField.java
index 4d4de2bc..77f0a182 100644
--- a/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/service/model/AutofillField.java
+++ b/input/autofill/AutofillFramework/kotlinApp/Application/src/main/java/com/example/android/autofillframework/service/model/AutofillField.java
@@ -19,7 +19,6 @@ import android.app.assist.AssistStructure;
import android.service.autofill.SaveInfo;
import android.view.View;
import android.view.autofill.AutofillId;
-import android.view.autofill.AutofillValue;
/**
* Class that represents a field that can be autofilled. It will contain a description