Create a new BalancesFragment and NetWorthFragment which are used in the HomeFragment's second card. The Balances is already working but the NetWorth only shows a 'Coming soon' notice.
This commit is contained in:
parent
a608ec162a
commit
8d25b92063
8 changed files with 115 additions and 69 deletions
|
@ -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<List<BalanceDetail>> { balancesDetails ->
|
||||||
|
balancesAdapter.replaceAll(balancesDetails)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,7 +21,6 @@ import kotlinx.android.synthetic.main.item_balance.view.*
|
||||||
class HomeFragment : Fragment() {
|
class HomeFragment : Fragment() {
|
||||||
|
|
||||||
private lateinit var mUserAccountViewModel: UserAccountViewModel
|
private lateinit var mUserAccountViewModel: UserAccountViewModel
|
||||||
// private lateinit var mBalanceDetailViewModel: BalanceDetailViewModel
|
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
@ -45,18 +44,6 @@ class HomeFragment : Fragment() {
|
||||||
tvAccountName.text = user.name
|
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<List<BalanceDetail>> { balancesDetails ->
|
|
||||||
// balancesAdapter.replaceAll(balancesDetails)
|
|
||||||
// })
|
|
||||||
|
|
||||||
// Navigate to the Receive Transaction Fragment
|
// Navigate to the Receive Transaction Fragment
|
||||||
fabReceiveTransaction.setOnClickListener (
|
fabReceiveTransaction.setOnClickListener (
|
||||||
Navigation.createNavigateOnClickListener(R.id.receive_action)
|
Navigation.createNavigateOnClickListener(R.id.receive_action)
|
||||||
|
@ -74,6 +61,7 @@ class HomeFragment : Fragment() {
|
||||||
findNavController().navigate(action)
|
findNavController().navigate(action)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Configure ViewPager with PagerAdapter and TabLayout to display the Balances/NetWorth section
|
||||||
val pagerAdapter = PagerAdapter(fragmentManager!!)
|
val pagerAdapter = PagerAdapter(fragmentManager!!)
|
||||||
viewPager.adapter = pagerAdapter
|
viewPager.adapter = pagerAdapter
|
||||||
tabLayout.setupWithViewPager(viewPager)
|
tabLayout.setupWithViewPager(viewPager)
|
||||||
|
@ -87,11 +75,14 @@ class HomeFragment : Fragment() {
|
||||||
override fun getItem(position: Int): Fragment {
|
override fun getItem(position: Int): Fragment {
|
||||||
// getItem is called to instantiate the fragment for the given page.
|
// getItem is called to instantiate the fragment for the given page.
|
||||||
// Return a PlaceholderFragment (defined as a static inner class below).
|
// 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? {
|
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 {
|
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) {
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||||
inflater.inflate(R.menu.menu_balances, menu)
|
inflater.inflate(R.menu.menu_balances, menu)
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
}
|
||||||
|
}
|
20
app/src/main/res/layout/fragment_balances.xml
Normal file
20
app/src/main/res/layout/fragment_balances.xml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rvBalances"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginTop="@dimen/activity_vertical_margin"
|
||||||
|
android:layout_marginBottom="@dimen/activity_vertical_margin"
|
||||||
|
android:layout_marginStart="@dimen/activity_horizontal_margin"
|
||||||
|
android:layout_marginEnd="@dimen/activity_horizontal_margin"
|
||||||
|
tools:listitem="@layout/item_balance"
|
||||||
|
tools:itemCount="3"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
|
@ -144,10 +144,11 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:background="?attr/themedColorBackgroundFloating"
|
android:background="?android:colorControlHighlight"
|
||||||
app:tabSelectedTextColor="?android:textColorPrimary"
|
app:tabSelectedTextColor="?android:textColorPrimary"
|
||||||
app:tabIndicatorColor="?android:colorControlHighlight"
|
app:tabIndicatorColor="?attr/themedColorBackgroundFloating"
|
||||||
app:tabIndicatorHeight="50dp"
|
app:tabIndicatorHeight="50dp"
|
||||||
|
app:tabPaddingStart="@dimen/activity_horizontal_margin"
|
||||||
app:tabMode="scrollable" />
|
app:tabMode="scrollable" />
|
||||||
|
|
||||||
<androidx.viewpager.widget.ViewPager
|
<androidx.viewpager.widget.ViewPager
|
||||||
|
@ -155,23 +156,6 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"/>
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
<!--<TextView-->
|
|
||||||
<!--android:layout_width="wrap_content"-->
|
|
||||||
<!--android:layout_height="wrap_content"-->
|
|
||||||
<!--android:layout_marginTop="@dimen/spacing_same_topic"-->
|
|
||||||
<!--android:layout_marginStart="@dimen/spacing_same_topic"-->
|
|
||||||
<!--android:text="@string/title_balances"-->
|
|
||||||
<!--android:textAppearance="@style/TextAppearance.Bitsy.Subtitle1"/>-->
|
|
||||||
|
|
||||||
<!--<androidx.recyclerview.widget.RecyclerView-->
|
|
||||||
<!--android:id="@+id/rvBalances"-->
|
|
||||||
<!--android:layout_width="match_parent"-->
|
|
||||||
<!--android:layout_height="match_parent"-->
|
|
||||||
<!--android:paddingStart="@dimen/spacing_same_topic"-->
|
|
||||||
<!--android:paddingEnd="@dimen/spacing_same_topic"-->
|
|
||||||
<!--tools:listitem="@layout/item_balance"-->
|
|
||||||
<!--tools:itemCount="3"/>-->
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</com.google.android.material.card.MaterialCardView>
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
16
app/src/main/res/layout/fragment_net_worth.xml
Normal file
16
app/src/main/res/layout/fragment_net_worth.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<RelativeLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/text__coming_soon"
|
||||||
|
android:textAppearance="@style/TextAppearance.Bitsy.Body1"
|
||||||
|
android:layout_centerInParent="true"/>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
|
@ -5,5 +5,6 @@
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="4dp"
|
android:paddingTop="4dp"
|
||||||
|
android:paddingBottom="4dp"
|
||||||
tools:text="123.45 BTS"/>
|
tools:text="123.45 BTS"/>
|
|
@ -73,5 +73,7 @@
|
||||||
<string name="msg__bugs_or_ideas">Telegram chat: http://t.me/Agorise\nEmail: Agorise@protonmail.ch\nOpen Source:
|
<string name="msg__bugs_or_ideas">Telegram chat: http://t.me/Agorise\nEmail: Agorise@protonmail.ch\nOpen Source:
|
||||||
https://github.com/Agorise
|
https://github.com/Agorise
|
||||||
</string>
|
</string>
|
||||||
|
<string name="text__coming_soon">Coming soon</string>
|
||||||
|
<string name="title_net_worth">Net Worth</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in a new issue