Ivy-Apps / ivy-wallet

Ivy Wallet is an open-source money manager app for android that you can either build or download from Google Play.
https://play.google.com/store/apps/details?id=com.ivy.wallet
GNU General Public License v3.0
2.74k stars 636 forks source link

[TASK] Index item icons by keywords #1343

Closed ILIYANGERMANOV closed 1 year ago

ILIYANGERMANOV commented 2 years ago

Please confirm the following

What do you want to be added or improved?

As a core developer, I want to have icons linked by multiple keywords that our users might search them.

How to?

  1. See this file - https://github.com/Ivy-Apps/ivy-wallet/blob/develop/core/ui/src/main/java/com/ivy/core/ui/icon/picker/IconPickerIcons.kt

  2. Do it as I did it for a few ivyIcons

    private fun ivyIcons(): List<PickerItemUnverified> = listOf(
    SectionDivider("Ivy"),
    Icon("account", keywords = listOf("account", "acc")),
    Icon("category", keywords = listOf("category", "cat")),
    Icon("cash", keywords = listOf("cash", "money")),
    Icon("bank", keywords = listOf("bank")),
    Icon("revolut", keywords = listOf("revolut", "rev")),
    Icon("clothes2", keywords = listOf("clothes")),
    Icon("clothes", keywords = listOf("clothes", "wardrobe")),
    Icon("family", keywords = listOf("family", "home", "couple", "kids")),
    Icon("star", keywords = listOf("star", "favorite")),
    Icon("education", keywords = listOf("education", "school", "university")),
    Icon("fitness", keywords = listOf("fitness", "gym", "workout", "train", "weights")),
    Icon("loan", keywords = listOf("loan", "bill", "note")),
    Icon("orderfood", keywords = listOf("order", "delivery", "box")),
    Icon("orderfood2", keywords = listOf("order", "delivery", "scouter")),
    Icon("pet", keywords = listOf("pet", "dog", "paw")),
    Icon("restaurant", keywords = listOf("restaurant", "eat", "dinner", "food")),
    Icon("selfdevelopment", keywords = listOf("learn", "improve", "level", "grow")),
    // ...
  3. Do it for as many other icons as you can

  4. Note: sync with other contributors working on that so we don't duplicate work.

Why do you need it?

How do you imagine it?

No response

nicolegeorgieva commented 2 years ago

I'm on it.

DevPJ9 commented 2 years ago

Hello @ILIYANGERMANOV. I would also like to contribute.

ILIYANGERMANOV commented 2 years ago

Hi @DevPJ9 yeah, to avoid merge conflicts please contribute only to the lsat 3 sections and submit a PR as soon as you're ready. Here's the code that needs keywords:

// region Transport (Vue)
private fun vueTransport(): List<Icon> = listOf(
    Icon("ic_vue_transport_bus"),
    Icon("ic_vue_transport_airplane"),
    Icon("ic_vue_transport_train"),
    Icon("ic_vue_transport_ship"),
    Icon("ic_vue_transport_gas"),
    Icon("ic_vue_transport_car"),
    Icon("ic_vue_transport_car_wash"),
)
// endregion

// region Type (Vue)
private fun vueType(): List<Icon> = listOf(
    Icon("ic_vue_type_link2"),
    Icon("ic_vue_type_text"),
    Icon("ic_vue_type_paperclip"),
    Icon("ic_vue_type_textalign_left"),
    Icon("ic_vue_type_translate"),
    Icon("ic_vue_type_textalign_right"),
    Icon("ic_vue_type_link"),
    Icon("ic_vue_type_textalign_center"),
    Icon("ic_vue_type_textalign_justifycenter"),
)
// endregion

// region Weather (Vue)
private fun vueWeather(): List<Icon> = listOf(
    Icon("ic_vue_weather_wind"),
    Icon("ic_vue_weather_cloud"),
    Icon("ic_vue_weather_flash"),
    Icon("ic_vue_weather_moon"),
    Icon("ic_vue_weather_drop"),
    Icon("ic_vue_weather_cold"),
    Icon("ic_vue_weather_sun"),
)
// endregion
DevPJ9 commented 2 years ago

@ILIYANGERMANOV I am new to open source and have not worked in Kotlin, so I might make some mistakes, but I am willing to learn.

My Doubts :

  1. How can I start.
  2. What is "lsat 3" which you mentioned.

What have I done:

  1. I have forked the repo.
ILIYANGERMANOV commented 2 years ago

@DevPJ9 this might help you out https://github.com/Ivy-Apps/ivy-wallet/blob/main/CONTRIBUTING.md

DevPJ9 commented 2 years ago

Thanks @ILIYANGERMANOV. working on the last 3 sections. Will let you know when I raise the PR.

tarunkdasari commented 2 years ago

Hi @ILIYANGERMANOV, I would like to contribute to this too.

ILIYANGERMANOV commented 2 years ago

Hi @tarund2302 sure thing! Thank you! You can work on these sections:

// region Security (Vue)
private fun vueSecurity(): List<Icon> = listOf(
    Icon("ic_vue_security_eye"),
    Icon("ic_vue_security_shield_security"),
    Icon("ic_vue_security_key"),
    Icon("ic_vue_security_alarm"),
    Icon("ic_vue_security_lock"),
    Icon("ic_vue_security_password"),
    Icon("ic_vue_security_radar"),
    Icon("ic_vue_security_shield_person"),
    Icon("ic_vue_security_shield"),
)
// endregion

// region Shop (Vue)
private fun vueShop(): List<Icon> = listOf(
    Icon("ic_vue_shop_cart"),
    Icon("ic_vue_shop_bag"),
    Icon("ic_vue_shop_barcode"),
    Icon("ic_vue_shop_bag1"),
    Icon("ic_vue_shop_shop"),
)
// endregion

// region Support (Vue)
private fun vueSupport(): List<Icon> = listOf(
    Icon("ic_vue_support_star"),
    Icon("ic_vue_support_medal"),
    Icon("ic_vue_support_dislike"),
    Icon("ic_vue_support_like_dislike"),
    Icon("ic_vue_support_smileys"),
    Icon("ic_vue_support_heart"),
    Icon("ic_vue_support_like"),
)
// endregion
syedmohdjawad commented 2 years ago

I am also willing to contribute, to avoid merge conflicts, which section should i work on?

ILIYANGERMANOV commented 2 years ago

Hi @syedmohdjawad - nice! You can work on these:

// region Money (Vue)
private fun vueMoney(): List<Icon> = listOf(
    Icon("ic_vue_money_bitcoin_refresh"),
    Icon("ic_vue_money_dollar"),
    Icon("ic_vue_money_archive"),
    Icon("ic_vue_money_coins"),
    Icon("ic_vue_money_discount"),
    Icon("ic_vue_money_recive"),
    Icon("ic_vue_money_card_send"),
    Icon("ic_vue_money_buy_crypto"),
    Icon("ic_vue_money_card_bitcoin"),
    Icon("ic_vue_money_buy_bitcoin"),
    Icon("ic_vue_money_ticket_star"),
    Icon("ic_vue_money_wallet"),
    Icon("ic_vue_money_send"),
    Icon("ic_vue_money_ticket_discount"),
    Icon("ic_vue_money_wallet_cards"),
    Icon("ic_vue_money_receipt_empty"),
    Icon("ic_vue_money_percentage"),
    Icon("ic_vue_money_math"),
    Icon("ic_vue_money_security_card"),
    Icon("ic_vue_money_wallet_money"),
    Icon("ic_vue_money_ticket"),
    Icon("ic_vue_money_card_receive"),
    Icon("ic_vue_money_wallet_empty"),
    Icon("ic_vue_money_transfer"),
    Icon("ic_vue_money_card_coin"),
    Icon("ic_vue_money_receipt_items"),
    Icon("ic_vue_money_tag"),
    Icon("ic_vue_money_receipt_discount"),
    Icon("ic_vue_money_card"),
)
// endregion

// region PC (Vue)
private fun vuePC(): List<Icon> = listOf(
    Icon("ic_vue_pc_charging"),
    Icon("ic_vue_pc_watch"),
    Icon("ic_vue_pc_headphone"),
    Icon("ic_vue_pc_gameboy"),
    Icon("ic_vue_pc_phone_call"),
    Icon("ic_vue_pc_setting"),
    Icon("ic_vue_pc_monitor"),
    Icon("ic_vue_pc_cpu"),
    Icon("ic_vue_pc_printer"),
    Icon("ic_vue_pc_bluetooth"),
    Icon("ic_vue_pc_wifi"),
    Icon("ic_vue_pc_game"),
    Icon("ic_vue_pc_speaker"),
    Icon("ic_vue_pc_phone"),
)
// endregion

// region People (Vue)
private fun vuePeople(): List<Icon> = listOf(
    Icon("ic_vue_people_2persons"),
    Icon("ic_vue_people_person_tag"),
    Icon("ic_vue_people_person_search"),
    Icon("ic_vue_people_people"),
    Icon("ic_vue_people_person"),
)
// endregion
syedmohdjawad commented 2 years ago

How can I see where is that particular icon tag mapped, How the real icon looks like? If I will be able to do it, I will be able to think of more and better keywords to tag that icon.

ILIYANGERMANOV commented 2 years ago

@syedmohdjawad search for file by the icon id (use Android Studio - it has preview for SVGs)

rubenquadros commented 2 years ago

Any more tags need to be added? I can contribute :)

ILIYANGERMANOV commented 2 years ago

Hi @rubenquadros! Thank you for your interest! All have been distributed among fellow contributors. If someone isn't able to complete theirs, I can re-assign it to you :)

Another thing is to help @tarund2302 merge his PR (the work is done but it has conflicts) #1352

ILIYANGERMANOV commented 2 years ago

Hi @syedmohdjawad, how are the keywords going?

ILIYANGERMANOV commented 1 year ago

@shashank-0-0 yes, of course! We would appreciate that :) Feel free to submit a PR when you are ready

MuftiAnees commented 1 year ago

Hello! I would like to contribute as well!! I am a beginner but I'll try my best!

ILIYANGERMANOV commented 1 year ago

Used for the rewrite only