diff --git a/app/build.gradle b/app/build.gradle index b01f760..555ae82 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.application' +apply plugin: "androidx.navigation.safeargs" apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' @@ -52,7 +53,6 @@ dependencies { implementation "android.arch.navigation:navigation-fragment-ktx:$nav_version" implementation "android.arch.navigation:navigation-ui-ktx:$nav_version" - implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1' implementation 'org.bitcoinj:bitcoinj-core:0.14.3' diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/BalancesFragment.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/BalancesFragment.kt index 955aa12..2d3fed9 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/BalancesFragment.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/BalancesFragment.kt @@ -6,19 +6,17 @@ import android.preference.PreferenceManager import android.view.* import androidx.fragment.app.Fragment import androidx.lifecycle.Observer +import androidx.navigation.Navigation +import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import cy.agorise.bitsybitshareswallet.R import cy.agorise.bitsybitshareswallet.adapters.BalancesAdapter -import cy.agorise.bitsybitshareswallet.adapters.TransfersDetailsAdapter import cy.agorise.bitsybitshareswallet.database.entities.UserAccount import cy.agorise.bitsybitshareswallet.database.joins.BalanceDetail -import cy.agorise.bitsybitshareswallet.database.joins.TransferDetail import cy.agorise.bitsybitshareswallet.utils.Constants import cy.agorise.bitsybitshareswallet.viewmodels.BalanceDetailViewModel -import cy.agorise.bitsybitshareswallet.viewmodels.TransferDetailViewModel import cy.agorise.bitsybitshareswallet.viewmodels.UserAccountViewModel import kotlinx.android.synthetic.main.fragment_balances.* @@ -60,6 +58,23 @@ class BalancesFragment : Fragment() { mBalanceDetailViewModel.getAll().observe(this, Observer> { balancesDetails -> balancesAdapter.replaceAll(balancesDetails) }) + + // Navigate to the Receive Transaction Fragment + fabReceiveTransaction.setOnClickListener ( + Navigation.createNavigateOnClickListener(R.id.receive_action) + ) + + // Navigate to the Send Transaction Fragment without activating the camera + fabSendTransaction.setOnClickListener( + Navigation.createNavigateOnClickListener(R.id.send_action) + ) + + // Navigate to the Send Transaction Fragment using Navigation's SafeArgs to activate the camera + fabSendTransactionCamera.setOnClickListener { + val action = BalancesFragmentDirections.sendActionCamera() + action.setOpenCamera(true) + findNavController().navigate(action) + } } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/SendTransactionFragment.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/SendTransactionFragment.kt index 0bc7c24..93a52f9 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/SendTransactionFragment.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/SendTransactionFragment.kt @@ -122,7 +122,10 @@ class SendTransactionFragment : Fragment(), ZXingScannerView.ResultHandler, Serv if (userId != "") mUserAccount = UserAccount(userId) - verifyCameraPermission() + // Use Navigation SafeArgs to decide if we should activate or not the camera feed + val safeArgs = SendTransactionFragmentArgs.fromBundle(arguments) + if (safeArgs.openCamera) + verifyCameraPermission() fabOpenCamera.setOnClickListener { if (isCameraPreviewVisible) stopCameraPreview() else verifyCameraPermission() } diff --git a/app/src/main/res/layout/fragment_balances.xml b/app/src/main/res/layout/fragment_balances.xml index dcd4724..d19c24a 100644 --- a/app/src/main/res/layout/fragment_balances.xml +++ b/app/src/main/res/layout/fragment_balances.xml @@ -54,7 +54,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" app:fabSize="mini" - app:maxImageSize="18dp" android:src="@drawable/ic_camera" android:backgroundTint="@color/colorSend" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 73c210a..c00a28f 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -11,6 +11,19 @@ android:name="cy.agorise.bitsybitshareswallet.fragments.BalancesFragment" android:label="@string/app_name" tools:layout="@layout/fragment_balances"> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index ff630b8..c22b77e 100644 --- a/build.gradle +++ b/build.gradle @@ -9,6 +9,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.2.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha08" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files