Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e9db1d1 authored by Nihar Thakkar's avatar Nihar Thakkar
Browse files

Show an icon next to each category title

parent a8c94321
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
import io.eelo.appinstaller.application.model.Application
import io.eelo.appinstaller.application.model.InstallManager
import io.eelo.appinstaller.application.model.data.FullData
import io.eelo.appinstaller.categories.model.Category
import io.eelo.appinstaller.utils.Error
import io.eelo.appinstaller.utils.ApplicationParser
import io.eelo.appinstaller.utils.Constants
@@ -50,8 +51,8 @@ class HomeRequest {
            return ApplicationParser.parseToApps(installManager, context, home.bannerApps)
        }

        fun getApps(installManager: InstallManager, context: Context): HashMap<String, ArrayList<Application>> {
            val apps = HashMap<String, ArrayList<Application>>()
        fun getApps(installManager: InstallManager, context: Context): HashMap<Category, ArrayList<Application>> {
            val apps = HashMap<Category, ArrayList<Application>>()
            for (pair in home.apps) {
                apps[pair.key] = ApplicationParser.parseToApps(installManager, context, pair.value.toTypedArray())
            }
@@ -63,7 +64,7 @@ class HomeRequest {
    class SubHomeResult @JsonCreator
    constructor(@JsonProperty("banner_apps") val bannerApps: Array<FullData>) {

        val apps = HashMap<String, ArrayList<FullData>>()
        val apps = HashMap<Category, ArrayList<FullData>>()

        @JsonAnySetter
        fun append(key: String, value: Any) {
@@ -92,7 +93,7 @@ class HomeRequest {
                }
                appsData.add(appData)
            }
            this.apps[key] = appsData
            this.apps[Category(key)] = appsData
        }

    }
+3 −4
Original line number Diff line number Diff line
@@ -144,10 +144,9 @@ class ApplicationActivity : AppCompatActivity(), ApplicationStateListener {
            appAuthor.visibility = View.VISIBLE
        }

        if (fullData.category.isNotEmpty()) {
            appCategory.text = Common.getCategoryTitle(fullData.category)

        appCategory.text = fullData.category.getTitle()
        appCategory.visibility = View.VISIBLE
        }

        if (fullData.getLastVersion().fileSize.isNotEmpty()) {
            appSize.text = fullData.getLastVersion().fileSize
+9 −1
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonAnySetter
import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
import io.eelo.appinstaller.application.model.Version
import io.eelo.appinstaller.categories.model.Category

class FullData @JsonCreator
constructor(
@@ -15,7 +16,7 @@ constructor(
        @JsonProperty("author") author: String,
        @JsonProperty("icon_image_path") iconUri: String,
        @JsonProperty("other_images_path") imagesUri: Array<String>,
        @JsonProperty("category") val category: String,
        @JsonProperty("category") category_id: String,
        @JsonProperty("created_on") val createdOn: String,
        @JsonProperty("source") val source: String,
        @JsonProperty("description") val description: String,
@@ -32,6 +33,7 @@ constructor(
                "", author, iconUri, imagesUri,
                ratings)
    }

    private val versions = HashMap<String, Version>()
    val packageName: String
        get() = basicData.packageName
@@ -40,6 +42,12 @@ constructor(
        return versions[basicData.lastVersion]!!
    }

    val category: Category

    init {
        this.category = Category(category_id)
    }

    @Suppress("unused")
    @JsonAnySetter
    fun jsonCreator(name: String, value: Any) {
+9 −13
Original line number Diff line number Diff line
@@ -5,12 +5,12 @@ import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.RelativeLayout
import android.widget.TextView
import io.eelo.appinstaller.R
import io.eelo.appinstaller.categories.category.CategoryActivity
import io.eelo.appinstaller.categories.model.Category
import io.eelo.appinstaller.utils.Common
import io.eelo.appinstaller.utils.Constants
import kotlin.collections.ArrayList

@@ -18,17 +18,19 @@ class CategoriesListAdapter(private var categories: ArrayList<Category>)
    : RecyclerView.Adapter<CategoriesListAdapter.CategoryViewHolder>() {

    init {
        generateTitles()
        categories = ArrayList(categories.sortedWith(compareBy({ it.title }, { it.title })))
        categories = ArrayList(categories.sortedWith(
                compareBy({ it.getTitle() }, { it.getTitle() })))
    }

    class CategoryViewHolder(view: View) : RecyclerView.ViewHolder(view) {
        val categoryContainer: RelativeLayout = view.findViewById(R.id.category_container)
        val categoryIcon: ImageView = view.findViewById(R.id.category_icon)
        val categoryTitle: TextView = view.findViewById(R.id.category_title)
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CategoryViewHolder {
        val categoryContainer = LayoutInflater.from(parent.context).inflate(R.layout.category_list_item,
        val categoryContainer = LayoutInflater.from(parent.context).inflate(
                R.layout.category_list_item,
                parent, false)
        return CategoryViewHolder(categoryContainer)
    }
@@ -38,19 +40,13 @@ class CategoriesListAdapter(private var categories: ArrayList<Category>)
    }

    override fun onBindViewHolder(holder: CategoryViewHolder, position: Int) {
        holder.categoryTitle.text = categories[position].title
        holder.categoryIcon.setImageDrawable(
                holder.categoryIcon.resources.getDrawable(categories[position].getIconResource()))
        holder.categoryTitle.text = categories[position].getTitle()
        holder.categoryContainer.setOnClickListener {
            val intent = Intent(holder.categoryContainer.context, CategoryActivity::class.java)
            intent.putExtra(Constants.CATEGORY_KEY, categories[position])
            holder.categoryContainer.context.startActivity(intent)
        }
    }

    private fun generateTitles() {
        categories.forEach {
            if (it.title.isNullOrEmpty()) {
                it.title = Common.getCategoryTitle(it.id)
            }
        }
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ class CategoryActivity : AppCompatActivity() {
        setSupportActionBar(toolbar)
        supportActionBar?.setDisplayHomeAsUpEnabled(true)
        category = intent.getSerializableExtra(CATEGORY_KEY) as Category
        supportActionBar?.title = category.title
        supportActionBar?.title = category.getTitle()

        categoryViewModel = ViewModelProviders.of(this).get(CategoryViewModel::class.java)
        recyclerView = findViewById(R.id.app_list)
Loading