Remove code from BitsyApplication that is not going to be used.

- Add checks to ImportBrainkeyActivity to make sure the PIN and Brainkey have the correct length/structure.
master
Severiano Jaramillo 2018-11-22 15:40:33 -06:00
parent fcbd82e570
commit 22a0735379
5 changed files with 65 additions and 34 deletions

View File

@ -2,10 +2,62 @@ package cy.agorise.bitsybitshareswallet.activities
import android.os.Bundle
import cy.agorise.bitsybitshareswallet.R
import cy.agorise.bitsybitshareswallet.utils.Constants
import cy.agorise.graphenej.BrainKey
import cy.agorise.graphenej.UserAccount
import kotlinx.android.synthetic.main.activity_import_brainkey.*
class ImportBrainkeyActivity : ConnectedActivity() {
/**
* Private variable that will hold an instance of the [BrainKey] class
*/
private var mBrainKey: BrainKey? = null
/**
* User account associated with the key derived from the brainkey that the user just typed in
*/
private var mUserAccount: UserAccount? = null
/**
* List of user account candidates, this is required in order to allow the user to select a single
* user account in case one key (derived from the brainkey) controls more than one account.
*/
private var mUserAccountCandidates: List<UserAccount>? = null
private var mKeyReferencesAttempts = 0
private var keyReferencesRequestId: Long = 0
private var getAccountsRequestId: Long = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_import_brainkey)
btnImport.setOnClickListener { importAccount() }
}
private fun importAccount() {
val trimmedBrainKey = tietBrainKey.text!!.toString().trim { it <= ' ' }
tietBrainKey.setText(trimmedBrainKey)
tilPin.isErrorEnabled = false
tilPinConfirmation.isErrorEnabled = false
tilBrainKey.isErrorEnabled = false
if (tietPin.text!!.length < Constants.MIN_PIN_LENGTH)
tilPin.error = getString(R.string.error__pin_too_short)
else if (tietPin.text.toString() != tietPinConfirmation.text.toString())
tilPinConfirmation.error = getString(R.string.error__pin_mismatch)
else if (tietBrainKey.text!!.isEmpty() || !tietBrainKey.text.toString().contains(" "))
tilBrainKey.error = getString(R.string.error__enter_correct_brainkey)
else {
val brainKey = tietBrainKey.text.toString().split(" ")
if (brainKey.size in 12..16) {
// TODO verify brainkey
} else
tilBrainKey.error = getString(R.string.error__enter_correct_brainkey)
}
}
}

View File

@ -1,14 +1,12 @@
package cy.agorise.bitsybitshareswallet.utils
import android.app.Activity
import android.app.Application
import android.os.Bundle
import cy.agorise.graphenej.api.ApiAccess
import cy.agorise.graphenej.api.android.NetworkServiceManager
class BitsyApplication : Application(), Application.ActivityLifecycleCallbacks {
class BitsyApplication : Application() {
val BITSHARES_NODE_URLS = arrayOf(
private val BITSHARES_NODE_URLS = arrayOf(
// PP private nodes
"wss://nl.palmpay.io/ws",
"wss://mx.palmpay.io/ws",
@ -53,13 +51,6 @@ class BitsyApplication : Application(), Application.ActivityLifecycleCallbacks {
* better estimate when the user has left the app and it is safe to disconnect the websocket connection
*/
registerActivityLifecycleCallbacks(networkManager)
/*
* Registering this class as a listener to all activity's callback cycle events, in order to
* better estimate when the user has left the app and it is safe to disconnect the WebSocket connection
* TODO is it necessary??
*/
registerActivityLifecycleCallbacks(this)
}
private fun setupNodes(): String {
@ -70,26 +61,4 @@ class BitsyApplication : Application(), Application.ActivityLifecycleCallbacks {
stringBuilder.replace(stringBuilder.length - 1, stringBuilder.length, "")
return stringBuilder.toString()
}
override fun onActivityCreated(activity: Activity?, savedInstanceState: Bundle?) {
//TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onActivityStarted(activity: Activity?) {
//TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onActivityResumed(activity: Activity?) {
//TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onActivityPaused(activity: Activity?) {
//TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onActivityStopped(activity: Activity?) { }
override fun onActivitySaveInstanceState(activity: Activity?, outState: Bundle?) { }
override fun onActivityDestroyed(activity: Activity?) { }
}

View File

@ -9,6 +9,9 @@ object Constants {
/** Version of the currently used license */
const val CURRENT_LICENSE_VERSION = 1
/** The minimum required length for a PIN number */
const val MIN_PIN_LENGTH = 6
/** Key used to store if the initial setup is already done or not */
const val KEY_INITIAL_SETUP_DONE = "key_initial_setup_done"

View File

@ -10,6 +10,7 @@
tools:context=".activities.ImportBrainkeyActivity">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilPin"
style="@style/Widget.Bitsy.TextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -29,6 +30,7 @@
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilPinConfirmation"
style="@style/Widget.Bitsy.TextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -48,6 +50,7 @@
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilBrainKey"
style="@style/Widget.Bitsy.TextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -63,7 +66,8 @@
android:inputType="textMultiLine"
android:gravity="top"
android:lines="4"
android:maxLines="4"/>
android:scrollHorizontally="false"
android:imeOptions="actionDone"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton

View File

@ -9,8 +9,11 @@
<!-- Import Brainkey Activity -->
<string name="text_field__6_digit_pin">6+ digits PIN</string>
<string name="error__pin_too_short">PIN too short</string>
<string name="text_field__confirm_pin">Confirm PIN</string>
<string name="error__pin_mismatch">PIN mismatch</string>
<string name="text__brain_key">BrainKey</string>
<string name="error__enter_correct_brainkey">Please enter correct brainkey, it should have between 12 and 16 words.</string>
<string name="button__import">Import</string>
<string name="button__create">Create</string>