Commit 30ba3c17 authored by aniket's avatar aniket

improves coding style

parent b2cc4390
...@@ -9,6 +9,7 @@ import android.graphics.PorterDuff ...@@ -9,6 +9,7 @@ import android.graphics.PorterDuff
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.support.v4.app.Fragment import android.support.v4.app.Fragment
import android.support.v4.app.FragmentActivity
import android.text.style.ClickableSpan import android.text.style.ClickableSpan
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
...@@ -117,65 +118,60 @@ class LoginFragment : Fragment(), LoginView, GoogleApiClient.ConnectionCallbacks ...@@ -117,65 +118,60 @@ class LoginFragment : Fragment(), LoginView, GoogleApiClient.ConnectionCallbacks
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
when (requestCode) { if (data != null) {
REQUEST_CODE_FOR_CAS -> data?.apply { when (requestCode) {
presenter.authenticateWithCas(getStringExtra(INTENT_CAS_TOKEN)) REQUEST_CODE_FOR_CAS -> data.apply {
} presenter.authenticateWithCas(getStringExtra(INTENT_CAS_TOKEN))
REQUEST_CODE_FOR_OAUTH -> {
isOauthSuccessful = true
data?.apply {
presenter.authenticateWithOauth(
getStringExtra(INTENT_OAUTH_CREDENTIAL_TOKEN),
getStringExtra(INTENT_OAUTH_CREDENTIAL_SECRET)
)
} }
REQUEST_CODE_FOR_OAUTH -> {
isOauthSuccessful = true
data.apply {
presenter.authenticateWithOauth(
getStringExtra(INTENT_OAUTH_CREDENTIAL_TOKEN),
getStringExtra(INTENT_OAUTH_CREDENTIAL_SECRET)
)
}
}
MULTIPLE_CREDENTIALS_READ -> {
val loginCredentials: Credential =
data.getParcelableExtra(Credential.EXTRA_KEY)
handleCredential(loginCredentials)
}
NO_CREDENTIALS_EXIST -> {
//use the hints to autofill sign in forms to reduce the info to be filled
val loginCredentials: Credential =
data.getParcelableExtra(Credential.EXTRA_KEY)
val email = loginCredentials.id
val password = loginCredentials.password
text_username_or_email.setText(email)
text_password.setText(password)
}
SAVE_CREDENTIALS -> Toast.makeText(
context,
getString(R.string.message_credentials_saved_successfully),
Toast.LENGTH_SHORT
).show()
} }
MULTIPLE_CREDENTIALS_READ -> {
val loginCredentials: Credential =
data!!.getParcelableExtra(Credential.EXTRA_KEY)
handleCredential(loginCredentials)
}
NO_CREDENTIALS_EXIST -> {
//use the hints to autofill sign in forms to reduce the info to be filled
val loginCredentials: Credential =
data!!.getParcelableExtra(Credential.EXTRA_KEY)
val email = loginCredentials.id
val password = loginCredentials.password
text_username_or_email.setText(email)
text_password.setText(password)
}
SAVE_CREDENTIALS -> Toast.makeText(
context,
getString(R.string.message_credentials_saved_successfully),
Toast.LENGTH_SHORT
).show()
} }
} else if (requestCode == SAVE_CREDENTIALS) {
Timber.e("ERROR: Cancelled by user")
} else if (requestCode == MULTIPLE_CREDENTIALS_READ) {
Timber.e("ERROR: Failed reading credentials")
} }
//cancel button pressed by the user in case of reading from smart lock //cancel button pressed by the user in case of reading from smart lock
else if (resultCode == Activity.RESULT_CANCELED && requestCode == REQUEST_CODE_FOR_OAUTH) { else if (resultCode == Activity.RESULT_CANCELED && requestCode == REQUEST_CODE_FOR_OAUTH) {
Timber.d("Returned from oauth") Timber.d("Returned from oauth")
} }
//no hints for user id's exist
else if (resultCode == CredentialsApi.ACTIVITY_RESULT_NO_HINTS_AVAILABLE) {
}
} }
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
googleApiClient.let { googleApiClient.let {
it.stopAutoManage(activity!!) activity?.let { it1 -> it.stopAutoManage(it1) }
it.disconnect() it.disconnect()
} }
} }
private fun buildGoogleApiClient() { private fun buildGoogleApiClient() {
googleApiClient = GoogleApiClient.Builder(context!!) googleApiClient = GoogleApiClient.Builder(context!!)
.enableAutoManage(activity!!, { .enableAutoManage(activity as FragmentActivity, {
Timber.e("ERROR: Connection to client failed") Timber.e("ERROR: Connection to client failed")
}) })
.addConnectionCallbacks(this) .addConnectionCallbacks(this)
...@@ -198,40 +194,39 @@ class LoginFragment : Fragment(), LoginView, GoogleApiClient.ConnectionCallbacks ...@@ -198,40 +194,39 @@ class LoginFragment : Fragment(), LoginView, GoogleApiClient.ConnectionCallbacks
Auth.CredentialsApi.request(googleApiClient, request) Auth.CredentialsApi.request(googleApiClient, request)
.setResultCallback { credentialRequestResult -> .setResultCallback { credentialRequestResult ->
val status = credentialRequestResult.status val status = credentialRequestResult.status
if (status.isSuccess) { when {
// Auto sign-in success status.isSuccess -> handleCredential(credentialRequestResult.credential)
handleCredential(credentialRequestResult.credential) (status.statusCode == CommonStatusCodes.RESOLUTION_REQUIRED) -> resolveResult(
} else if (status.statusCode == CommonStatusCodes.RESOLUTION_REQUIRED) { status,
resolveResult(status, MULTIPLE_CREDENTIALS_READ) MULTIPLE_CREDENTIALS_READ
} else if (status.statusCode == CommonStatusCodes.SIGN_IN_REQUIRED) { )
(status.statusCode == CommonStatusCodes.SIGN_IN_REQUIRED) -> {
//build a dialog for possible account hints val hintRequest: HintRequest = HintRequest.Builder()
val hintRequest: HintRequest = HintRequest.Builder() .setHintPickerConfig(
.setHintPickerConfig( CredentialPickerConfig.Builder()
CredentialPickerConfig.Builder() .setShowCancelButton(true)
.setShowCancelButton(true) .build()
.build() )
) .setEmailAddressIdentifierSupported(true)
.setEmailAddressIdentifierSupported(true) .setAccountTypes(IdentityProviders.GOOGLE)
.setAccountTypes(IdentityProviders.GOOGLE) .build()
.build() val intent: PendingIntent =
val intent: PendingIntent = Auth.CredentialsApi.getHintPickerIntent(googleApiClient, hintRequest)
Auth.CredentialsApi.getHintPickerIntent(googleApiClient, hintRequest) try {
try { startIntentSenderForResult(
startIntentSenderForResult( intent.intentSender,
intent.intentSender, NO_CREDENTIALS_EXIST,
NO_CREDENTIALS_EXIST, null,
null, 0,
0, 0,
0, 0,
0, null
null )
) } catch (e: IntentSender.SendIntentException) {
} catch (e: IntentSender.SendIntentException) { Timber.e("ERROR: Could not start hint picker Intent")
Timber.e("ERROR: Could not start hint picker Intent") }
} }
} else { else -> Timber.d("ERROR: nothing happening")
Timber.d("ERROR: nothing happening")
} }
} }
} }
...@@ -240,7 +235,7 @@ class LoginFragment : Fragment(), LoginView, GoogleApiClient.ConnectionCallbacks ...@@ -240,7 +235,7 @@ class LoginFragment : Fragment(), LoginView, GoogleApiClient.ConnectionCallbacks
if (loginCredentials.accountType == null) { if (loginCredentials.accountType == null) {
presenter.authenticateWithUserAndPassword( presenter.authenticateWithUserAndPassword(
loginCredentials.id, loginCredentials.id,
loginCredentials.password!! loginCredentials.password.toString()
) )
} }
} }
...@@ -259,18 +254,20 @@ class LoginFragment : Fragment(), LoginView, GoogleApiClient.ConnectionCallbacks ...@@ -259,18 +254,20 @@ class LoginFragment : Fragment(), LoginView, GoogleApiClient.ConnectionCallbacks
return return
} }
Auth.CredentialsApi.save(googleApiClient, credentialsToBeSaved).setResultCallback( activity?.let {
object : ResolvingResultCallbacks<Status>(activity!!, SAVE_CREDENTIALS) { Auth.CredentialsApi.save(googleApiClient, credentialsToBeSaved).setResultCallback(
override fun onSuccess(status: Status) { object : ResolvingResultCallbacks<Status>(it, SAVE_CREDENTIALS) {
Timber.d("credentials save:SUCCESS:$status") override fun onSuccess(status: Status) {
credentialsToBeSaved = null Timber.d("credentials save:SUCCESS:$status")
} credentialsToBeSaved = null
}
override fun onUnresolvableFailure(status: Status) { override fun onUnresolvableFailure(status: Status) {
Timber.e("credentials save:FAILURE:$status") Timber.e("credentials save:FAILURE:$status")
credentialsToBeSaved = null credentialsToBeSaved = null
} }
}) })
}
} }
private fun tintEditTextDrawableStart() { private fun tintEditTextDrawableStart() {
......
...@@ -144,16 +144,18 @@ class SignupFragment : Fragment(), SignupView { ...@@ -144,16 +144,18 @@ class SignupFragment : Fragment(), SignupView {
} }
private fun saveCredentials() { private fun saveCredentials() {
Auth.CredentialsApi.save(googleApiClient, credentialsToBeSaved).setResultCallback( activity?.let {
object : ResolvingResultCallbacks<Status>(activity!!, SAVE_CREDENTIALS) { Auth.CredentialsApi.save(googleApiClient, credentialsToBeSaved).setResultCallback(
override fun onSuccess(status: Status) { object : ResolvingResultCallbacks<Status>(it, SAVE_CREDENTIALS) {
Timber.d("save:SUCCESS:$status") override fun onSuccess(status: Status) {
} Timber.d("save:SUCCESS:$status")
}
override fun onUnresolvableFailure(status: Status) {
Timber.e("save:FAILURE:$status") override fun onUnresolvableFailure(status: Status) {
} Timber.e("save:FAILURE:$status")
}) }
})
}
} }
override fun showLoading() { override fun showLoading() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment