@ -22,16 +22,13 @@ import android.content.Intent
import android.content.SharedPreferences
import android.net.Uri
import android.os.Bundle
import android.preference.PreferenceManager
import android.support.customtabs.CustomTabsIntent
import android.support.v7.app.AppCompatActivity
import androidx.browser.customtabs.CustomTabsIntent
import android.text.method.LinkMovementMethod
import android.util.Log
import android.view.MenuItem
import android.view.View
import android.widget.EditText
import android.widget.TextView
import com.keylesspalace.tusky.db.AccountManager
import com.keylesspalace.tusky.di.Injectable
import com.keylesspalace.tusky.entity.AccessToken
import com.keylesspalace.tusky.entity.AppCredentials
@ -46,12 +43,10 @@ import retrofit2.Response
import javax.inject.Inject
class LoginActivity : AppCompat Activity( ) , Injectable {
class LoginActivity : Base Activity( ) , Injectable {
@Inject
lateinit var mastodonApi : MastodonApi
@Inject
lateinit var accountManager : AccountManager
private lateinit var preferences : SharedPreferences
private var domain : String = " "
@ -68,13 +63,6 @@ class LoginActivity : AppCompatActivity(), Injectable {
override fun onCreate ( savedInstanceState : Bundle ? ) {
super . onCreate ( savedInstanceState )
preferences = PreferenceManager . getDefaultSharedPreferences ( this )
val theme = preferences . getString ( " appTheme " , ThemeUtils . APP _THEME _DEFAULT )
if ( theme == " black " ) {
setTheme ( R . style . TuskyBlackTheme )
}
ThemeUtils . setAppNightMode ( theme , this )
setContentView ( R . layout . activity _login )
if ( savedInstanceState != null ) {
@ -107,6 +95,10 @@ class LoginActivity : AppCompatActivity(), Injectable {
}
override fun requiresLogin ( ) : Boolean {
return false
}
override fun finish ( ) {
super . finish ( )
if ( isAdditionalLogin ( ) ) {
@ -144,7 +136,7 @@ class LoginActivity : AppCompatActivity(), Injectable {
HttpUrl . Builder ( ) . host ( domain ) . scheme ( " https " ) . build ( )
} catch ( e : IllegalArgumentException ) {
setLoading ( false )
domainEdit Text . error = getString ( R . string . error _invalid _domain )
domainTextInputLayou t . error = getString ( R . string . error _invalid _domain )
return
}
@ -153,7 +145,7 @@ class LoginActivity : AppCompatActivity(), Injectable {
response : Response < AppCredentials > ) {
if ( ! response . isSuccessful ) {
loginButton . isEnabled = true
domainEdit Text . error = getString ( R . string . error _failed _app _registration )
domainTextInputLayou t . error = getString ( R . string . error _failed _app _registration )
setLoading ( false )
Log . e ( TAG , " App authentication failed. " + response . message ( ) )
return
@ -167,7 +159,7 @@ class LoginActivity : AppCompatActivity(), Injectable {
override fun onFailure ( call : Call < AppCredentials > , t : Throwable ) {
loginButton . isEnabled = true
domainEdit Text . error = getString ( R . string . error _failed _app _registration )
domainTextInputLayou t . error = getString ( R . string . error _failed _app _registration )
setLoading ( false )
Log . e ( TAG , Log . getStackTraceString ( t ) )
}
@ -243,7 +235,7 @@ class LoginActivity : AppCompatActivity(), Injectable {
onLoginSuccess ( response . body ( ) !! . accessToken )
} else {
setLoading ( false )
domainEdit Text . error = getString ( R . string . error _retrieving _oauth _token )
domainTextInputLayou t . error = getString ( R . string . error _retrieving _oauth _token )
Log . e ( TAG , String . format ( " %s %s " ,
getString ( R . string . error _retrieving _oauth _token ) ,
response . message ( ) ) )
@ -252,7 +244,7 @@ class LoginActivity : AppCompatActivity(), Injectable {
override fun onFailure ( call : Call < AccessToken > , t : Throwable ) {
setLoading ( false )
domainEdit Text . error = getString ( R . string . error _retrieving _oauth _token )
domainTextInputLayou t . error = getString ( R . string . error _retrieving _oauth _token )
Log . e ( TAG , String . format ( " %s %s " ,
getString ( R . string . error _retrieving _oauth _token ) ,
t . message ) )
@ -265,14 +257,14 @@ class LoginActivity : AppCompatActivity(), Injectable {
/ * Authorization failed . Put the error response where the user can read it and they
* can try again . * /
setLoading ( false )
domainEdit Text . error = getString ( R . string . error _authorization _denied )
domainTextInputLayou t . error = getString ( R . string . error _authorization _denied )
Log . e ( TAG , String . format ( " %s %s " ,
getString ( R . string . error _authorization _denied ) ,
error ) )
} else {
// This case means a junk response was received somehow.
setLoading ( false )
domainEdit Text . error = getString ( R . string . error _authorization _unknown )
domainTextInputLayou t . error = getString ( R . string . error _authorization _unknown )
}
} else {
// first show or user cancelled login