Skip to main content

Expense Component

The ExpenseComponent shows the user's spend across categories in a neat donut chart, along with a list of recent transactions. Users are able to view data for previous months easily too.

Usage​

To use this view, just call the ExpenseComponent method of your LuneSDKManager instance as shown in the example below.

ExpenseView.kt

import io.lunedata.lunesdk.library.classes.LuneSDKManager

@Composable
fun ExpenseView(
luneSDK: LuneSDKManager
) {
luneSDK.ExpenseComponent()
}

To use this view in a project with Activities and Fragments, set the component property of your view to LuneView.ExpenseComponent, as shown in the example below.

YourActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

// Grab our luneView and set the component property.
val luneView = findViewById<LuneCompatManager>(R.id.luneLayout)
luneView.component = LuneView.ExpenseComponent
}

tip

You can now add an optional argument to the ExpenseViewParams(view) parameter if you need to render a custom view between the chart and the transaction list. Here is a simple example with a list of cards.

lunekit = LuneSDKManager(
baseUrl = ClientApi.baseURl ?: "",
token?: "",
)

val luneView = findViewById<LuneCompatManager>(R.id.luneLayout)

val view = layoutInflater.inflate(R.layout.layout_recycle, null, false)

val recyclerview = view.findViewById<RecyclerView>(R.id.list_item)
val viewAll = view.findViewById<TextView>(R.id.tv_viewAll)

viewAll.setOnClickListener {
Toast.makeText(this, "View All Click Action", Toast.LENGTH_LONG).show()
}

recyclerview.layoutManager = LinearLayoutManager(this, RecyclerView.HORIZONTAL, false)

val data = ArrayList<String>()
for (i in 1..20) {
data.add("Item $i")
}

val adapter = CustomAdapter(data)
recyclerview.adapter = adapter

luneView.manager = lunekit
luneView.component = LuneView.ExpenseComponent
luneView.data = ExpenseViewParams(view)

Localization Keys and Analytics Tags​

Analytics Tags    Localization Keys

Component Screenshot

Analytics Tags

  1. date_picker_button
  2. chart_icon
  3. chart_view_all
  4. transaction_amount
  5. transaction_tile
  6. transactions_view_all

Localization Keys

  1. lune_sdk_str_view_all
  2. lune_sdk_str_view_all
  3. lune_sdk_str_transactions
Component Screenshot

Analytics Tags

  1. date_picker_button
  2. trends_button
  3. category_tile
  4. category_amount
  5. avg_spend_sort_button
  6. name_sort_button

Localization Keys

  1. lune_sdk_str_spend_categories
  2. lune_sdk_str_name
  3. lune_sdk_str_avg_spend
  4. lune_sdk_str_transaction_count
  5. lune_sdk_str_trends

;