AuthManager is a library which eliminates the boilerplate of Google SignIn and SmartLock integration.
compile 'com.github.charbgr:authmanager:1.0'
AuthManager includes all of the managers below.
AuthManager
.Builder(this)
.withGoogleApiClient(googleApiClient)
.withGoogle(this)
.withHints(this, hintRequest)
.withSmartLock(this, smartlockRequest)
.build()
override fun onDestroy() {
super.onDestroy()
authManager.destroy()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
authManager?.handle(requestCode, resultCode, data)
}
Functionality included: Google Sign-In, Google Sign-Out, Google Revoke Access
GoogleAuthManager
.Builder(this)
.withGoogleApiClient(googleApiClient)
.withGoogleView(this)
.build()
override fun onDestroy() {
super.onDestroy()
googleAuthManager?.clear()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
RC_SIGN_IN -> googleAuthManager?.handle(resultCode, data)
}
}
fun signInWithGoogle()
fun signOutOfGoogle()
fun revokeGoogleAccess()
fun handle(resultCode: Int, data: Intent?)
fun clear()
Functionality included: SmartLock Credentials Request, SmartLock Credentials Save, SmartLock Credentials Delete
SmartLockManager
.Builder(this)
.withGoogleApiClient(googleApiClient)
.withSmartLockView(this)
.build()
override fun onDestroy() {
super.onDestroy()
smartLockManager?.clear()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
RC_CREDENTIAL_SAVE -> smartLockManager?.handleCredentialSave(resultCode)
RC_CREDENTIALS_REQUEST -> smartLockManager?.handleCredentialRequest(resultCode, data)
}
}
fun requestCredentials()
fun saveCredential(credential: Credential)
fun deleteCredential(credential: Credential?)
fun handleCredentialSave(resultCode: Int)
fun handleCredentialRequest(resultCode: Int, data: Intent?)
fun clear()
Functionality included: E-mail Addresses Hints
HintsManager
.Builder(this)
.withGoogleApiClient(googleApiClient)
.withHintsView(this)
.build()
override fun onDestroy() {
super.onDestroy()
hintsManager?.clear()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
RC_HINT_REQUEST -> hintsManager?.handle(resultCode, data)
}
}
fun requestEmailHints()
fun handle(resultCode: Int, data: Intent?)
fun clear()
You need to call in Activity.onDestroy()
to clear view references otherwise you risk having a memory leak.