diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/BalancesFragment.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/BalancesFragment.kt new file mode 100644 index 0000000..17c4250 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/BalancesFragment.kt @@ -0,0 +1,46 @@ +package cy.agorise.bitsybitshareswallet.fragments + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProviders +import androidx.recyclerview.widget.DividerItemDecoration +import androidx.recyclerview.widget.LinearLayoutManager +import cy.agorise.bitsybitshareswallet.R +import cy.agorise.bitsybitshareswallet.adapters.BalancesAdapter +import cy.agorise.bitsybitshareswallet.database.joins.BalanceDetail +import cy.agorise.bitsybitshareswallet.viewmodels.BalanceDetailViewModel +import kotlinx.android.synthetic.main.fragment_balances.* + +class BalancesFragment: Fragment() { + + private lateinit var mBalanceDetailViewModel: BalanceDetailViewModel + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + setHasOptionsMenu(true) + + return inflater.inflate(R.layout.fragment_balances, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + // Configure BalanceDetailViewModel to show the current balances + mBalanceDetailViewModel = ViewModelProviders.of(this).get(BalanceDetailViewModel::class.java) + + val balancesAdapter = BalancesAdapter(context!!) + rvBalances.adapter = balancesAdapter + rvBalances.layoutManager = LinearLayoutManager(context!!) + rvBalances.addItemDecoration(DividerItemDecoration(context!!, DividerItemDecoration.VERTICAL)) + + mBalanceDetailViewModel.getAll().observe(this, Observer> { balancesDetails -> + balancesAdapter.replaceAll(balancesDetails) + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/HomeFragment.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/HomeFragment.kt index bb113ae..bfb558a 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/HomeFragment.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/HomeFragment.kt @@ -21,7 +21,6 @@ import kotlinx.android.synthetic.main.item_balance.view.* class HomeFragment : Fragment() { private lateinit var mUserAccountViewModel: UserAccountViewModel -// private lateinit var mBalanceDetailViewModel: BalanceDetailViewModel override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -45,18 +44,6 @@ class HomeFragment : Fragment() { tvAccountName.text = user.name }) -// // Configure BalanceDetailViewModel to show the current balances -// mBalanceDetailViewModel = ViewModelProviders.of(this).get(BalanceDetailViewModel::class.java) -// -// val balancesAdapter = BalancesAdapter(context!!) -// rvBalances.adapter = balancesAdapter -// rvBalances.layoutManager = LinearLayoutManager(context!!) -// rvBalances.addItemDecoration(DividerItemDecoration(context!!, DividerItemDecoration.VERTICAL)) -// -// mBalanceDetailViewModel.getAll().observe(this, Observer> { balancesDetails -> -// balancesAdapter.replaceAll(balancesDetails) -// }) - // Navigate to the Receive Transaction Fragment fabReceiveTransaction.setOnClickListener ( Navigation.createNavigateOnClickListener(R.id.receive_action) @@ -74,6 +61,7 @@ class HomeFragment : Fragment() { findNavController().navigate(action) } + // Configure ViewPager with PagerAdapter and TabLayout to display the Balances/NetWorth section val pagerAdapter = PagerAdapter(fragmentManager!!) viewPager.adapter = pagerAdapter tabLayout.setupWithViewPager(viewPager) @@ -87,11 +75,14 @@ class HomeFragment : Fragment() { override fun getItem(position: Int): Fragment { // getItem is called to instantiate the fragment for the given page. // Return a PlaceholderFragment (defined as a static inner class below). - return PlaceholderFragment.newInstance(position + 1) + return if (position == 0) + BalancesFragment() + else + NetWorthFragment() } override fun getPageTitle(position: Int): CharSequence? { - return listOf(getString(R.string.title_balances), "Net Worth")[position] + return getString(listOf(R.string.title_balances, R.string.title_net_worth)[position]) } override fun getCount(): Int { @@ -99,40 +90,6 @@ class HomeFragment : Fragment() { } } - /** - * A placeholder fragment containing a simple view. - */ - class PlaceholderFragment : Fragment() { - - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle?): View? { - val rootView = inflater.inflate(R.layout.item_balance, container, false) - val text = "Hello World from section ${arguments?.getInt(ARG_SECTION_NUMBER)}" - rootView.tvBalance.text = text - return rootView - } - - companion object { - /** - * The fragment argument representing the section number for this - * fragment. - */ - private const val ARG_SECTION_NUMBER = "section_number" - - /** - * Returns a new instance of this fragment for the given section - * number. - */ - fun newInstance(sectionNumber: Int): PlaceholderFragment { - val fragment = PlaceholderFragment() - val args = Bundle() - args.putInt(ARG_SECTION_NUMBER, sectionNumber) - fragment.arguments = args - return fragment - } - } - } - override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { inflater.inflate(R.menu.menu_balances, menu) } diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/NetWorthFragment.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/NetWorthFragment.kt new file mode 100644 index 0000000..5996cfe --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/NetWorthFragment.kt @@ -0,0 +1,20 @@ +package cy.agorise.bitsybitshareswallet.fragments + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import cy.agorise.bitsybitshareswallet.R + +class NetWorthFragment: Fragment() { + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + setHasOptionsMenu(true) + + return inflater.inflate(R.layout.fragment_net_worth, container, false) + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_balances.xml b/app/src/main/res/layout/fragment_balances.xml new file mode 100644 index 0000000..e828895 --- /dev/null +++ b/app/src/main/res/layout/fragment_balances.xml @@ -0,0 +1,20 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 839c71a..8113bcc 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -144,10 +144,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" - android:background="?attr/themedColorBackgroundFloating" + android:background="?android:colorControlHighlight" app:tabSelectedTextColor="?android:textColorPrimary" - app:tabIndicatorColor="?android:colorControlHighlight" + app:tabIndicatorColor="?attr/themedColorBackgroundFloating" app:tabIndicatorHeight="50dp" + app:tabPaddingStart="@dimen/activity_horizontal_margin" app:tabMode="scrollable" /> - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/fragment_net_worth.xml b/app/src/main/res/layout/fragment_net_worth.xml new file mode 100644 index 0000000..11f7fc2 --- /dev/null +++ b/app/src/main/res/layout/fragment_net_worth.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_balance.xml b/app/src/main/res/layout/item_balance.xml index c458d76..c1dcbc0 100644 --- a/app/src/main/res/layout/item_balance.xml +++ b/app/src/main/res/layout/item_balance.xml @@ -5,5 +5,6 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:padding="4dp" + android:paddingTop="4dp" + android:paddingBottom="4dp" tools:text="123.45 BTS"/> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 469970f..755c97f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -73,5 +73,7 @@ Telegram chat: http://t.me/Agorise\nEmail: Agorise@protonmail.ch\nOpen Source: https://github.com/Agorise + Coming soon + Net Worth