diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9f6fed7..6de4794 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ package="cy.agorise.bitsybitshareswallet"> () +// userAccounts.add(userId) +// recurrentAccountUpdateId = mNetworkService.sendMessage( +// GetFullAccounts(userAccounts, false), +// GetFullAccounts.REQUIRED_API +// ) +// } else { +// Log.w(TAG, "User id is empty") +// } +// } else { +// Log.w(TAG, "NetworkService is null or is not connected. mNetworkService: $mNetworkService") +// } +// mHandler.postDelayed(this, Constants.MISSING_PAYMENT_CHECK_PERIOD) +// } +// } + + override fun onServiceConnected(name: ComponentName?, service: IBinder?) { + // We've bound to LocalService, cast the IBinder and get LocalService instance + val binder = service as NetworkService.LocalBinder + mNetworkService = binder.service + } + + override fun onServiceDisconnected(name: ComponentName?) { + } +} \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/activities/ImportBrainkeyActivity.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/activities/ImportBrainkeyActivity.kt index b2a2b4b..b4e89d2 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/activities/ImportBrainkeyActivity.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/activities/ImportBrainkeyActivity.kt @@ -1,10 +1,9 @@ package cy.agorise.bitsybitshareswallet.activities import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity import cy.agorise.bitsybitshareswallet.R -class ImportBrainkeyActivity : AppCompatActivity() { +class ImportBrainkeyActivity : ConnectedActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_import_brainkey) diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/activities/LicenseActivity.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/activities/LicenseActivity.kt index 6dcfbc4..71807fa 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/activities/LicenseActivity.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/activities/LicenseActivity.kt @@ -8,8 +8,6 @@ import cy.agorise.bitsybitshareswallet.R import cy.agorise.bitsybitshareswallet.utils.Constants import kotlinx.android.synthetic.main.activity_license.* -const val CURRENT_LICENSE_VERSION = 1 - class LicenseActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -21,7 +19,7 @@ class LicenseActivity : AppCompatActivity() { .getInt(Constants.KEY_LAST_AGREED_LICENSE_VERSION, 0) // If the last agreed license version is the actual one then proceed to the following Activities - if (agreedLicenseVersion == CURRENT_LICENSE_VERSION) { + if (agreedLicenseVersion == Constants.CURRENT_LICENSE_VERSION) { agree() } else { wbLA.loadData(getString(R.string.licence_html), "text/html", "UTF-8") @@ -38,7 +36,7 @@ class LicenseActivity : AppCompatActivity() { */ private fun agree() { PreferenceManager.getDefaultSharedPreferences(this).edit() - .putInt(Constants.KEY_LAST_AGREED_LICENSE_VERSION, CURRENT_LICENSE_VERSION).apply() + .putInt(Constants.KEY_LAST_AGREED_LICENSE_VERSION, Constants.CURRENT_LICENSE_VERSION).apply() val intent : Intent? diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/BitsyApplication.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/BitsyApplication.kt new file mode 100644 index 0000000..a4ef654 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/BitsyApplication.kt @@ -0,0 +1,95 @@ +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 { + + val BITSHARES_NODE_URLS = arrayOf( + // PP private nodes + "wss://nl.palmpay.io/ws", + "wss://mx.palmpay.io/ws", + + // Other public nodes + "wss://bitshares.nu/ws", // Stockholm, Sweden + "wss://bitshares.openledger.info/ws", // Openledger node + "wss://dallas.bitshares.apasia.tech/ws", // Dallas, USA + "wss://atlanta.bitshares.apasia.tech/ws", // Atlanta, USA + "wss://miami.bitshares.apasia.tech/ws", // Miami, USA + "wss://valley.bitshares.apasia.tech/ws", // Silicon Valley, USA + "wss://england.bitshares.apasia.tech/ws", // London, UK + "wss://netherlands.bitshares.apasia.tech/ws", // Amsterdam, Netherlands + "wss://australia.bitshares.apasia.tech/ws", // Sidney, Australia + "wss://bit.btsabc.org/ws", // Hong Kong, China + "wss://node.btscharts.com/ws", // Beijing, Chinawss://node.btscharts.com/ws + "wss://ws.gdex.top", // Shanghai, China + "wss://dex.rnglab.org", // Amsterdam, Netherlands + "wss://api.bts.blckchnd.com", // Falkenstein, Germany + "wss://api-ru.bts.blckchnd.com", // Moscow, Russia + "wss://crazybit.online", // Shenzhen, China? + "wss://citadel.li/node" + ) + + override fun onCreate() { + super.onCreate() + + // Specifying some important information regarding the connection, such as the + // credentials and the requested API accesses + val requestedApis = ApiAccess.API_DATABASE or ApiAccess.API_HISTORY or ApiAccess.API_NETWORK_BROADCAST + val networkManager = NetworkServiceManager.Builder() + .setUserName("") + .setPassword("") + .setRequestedApis(requestedApis) + .setCustomNodeUrls(setupNodes()) + .setAutoConnect(true) + .setNodeLatencyVerification(true) + .build(this) + + /* + * 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 + */ + 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 { + val stringBuilder = StringBuilder() + for (url in BITSHARES_NODE_URLS) { + stringBuilder.append(url).append(",") + } + 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?) { } +} \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/Constants.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/Constants.kt index c8ed782..1342b8f 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/Constants.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/Constants.kt @@ -6,6 +6,9 @@ object Constants { /** Key used to store the number of the last agreed License version */ const val KEY_LAST_AGREED_LICENSE_VERSION = "key_last_agreed_license_version" + /** Version of the currently used license */ + const val CURRENT_LICENSE_VERSION = 1 + /** Key used to store if the initial setup is already done or not */ const val KEY_INITIAL_SETUP_DONE = "key_initial_setup_done" diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/SquaredImageView.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/SquaredImageView.kt deleted file mode 100644 index 779744e..0000000 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/SquaredImageView.kt +++ /dev/null @@ -1,30 +0,0 @@ -package cy.agorise.bitsybitshareswallet.utils - -import android.content.Context -import android.util.AttributeSet -import androidx.annotation.Nullable -import androidx.appcompat.widget.AppCompatImageView - -/** - * Created by xd on 1/24/18. - * ImageView which adjusts its size to always create a square - */ - -class SquaredImageView : AppCompatImageView { - - constructor(context: Context) : super(context) - - constructor(context: Context, @Nullable attrs: AttributeSet) : super(context, attrs) - constructor(context: Context, @Nullable attrs: AttributeSet, defStyleAttr: Int) : super( - context, - attrs, - defStyleAttr - ) - - override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec) - - val size = Math.min(measuredWidth, measuredHeight) - setMeasuredDimension(size, size) - } -} diff --git a/app/src/main/res/layout/activity_import_brainkey.xml b/app/src/main/res/layout/activity_import_brainkey.xml index 439764c..6bcd89e 100644 --- a/app/src/main/res/layout/activity_import_brainkey.xml +++ b/app/src/main/res/layout/activity_import_brainkey.xml @@ -93,7 +93,7 @@ android:layout_marginTop="@dimen/spacing_different_topic" android:layout_marginStart="@dimen/activity_horizontal_margin" android:layout_marginEnd="@dimen/activity_horizontal_margin" - android:backgroundTint="@color/colorPrimary" - android:text="@string/button__create"/> + android:text="@string/button__create" + android:enabled="false"/> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 909dd28..f0506dc 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -2,7 +2,8 @@ #0099d6 #006ba4 - #669900 + #0099d6 #000 + #888