Loading app/src/main/java/io/eelo/appinstaller/api/HomeRequest.kt +5 −4 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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()) } Loading @@ -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) { Loading Loading @@ -92,7 +93,7 @@ class HomeRequest { } appsData.add(appData) } this.apps[key] = appsData this.apps[Category(key)] = appsData } } Loading app/src/main/java/io/eelo/appinstaller/application/ApplicationActivity.kt +3 −4 Original line number Diff line number Diff line Loading @@ -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 Loading app/src/main/java/io/eelo/appinstaller/application/model/data/FullData.kt +9 −1 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -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, Loading @@ -32,6 +33,7 @@ constructor( "", author, iconUri, imagesUri, ratings) } private val versions = HashMap<String, Version>() val packageName: String get() = basicData.packageName Loading @@ -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) { Loading app/src/main/java/io/eelo/appinstaller/categories/CategoriesListAdapter.kt +9 −13 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) } Loading @@ -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) } } } } app/src/main/java/io/eelo/appinstaller/categories/category/CategoryActivity.kt +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
app/src/main/java/io/eelo/appinstaller/api/HomeRequest.kt +5 −4 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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()) } Loading @@ -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) { Loading Loading @@ -92,7 +93,7 @@ class HomeRequest { } appsData.add(appData) } this.apps[key] = appsData this.apps[Category(key)] = appsData } } Loading
app/src/main/java/io/eelo/appinstaller/application/ApplicationActivity.kt +3 −4 Original line number Diff line number Diff line Loading @@ -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 Loading
app/src/main/java/io/eelo/appinstaller/application/model/data/FullData.kt +9 −1 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -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, Loading @@ -32,6 +33,7 @@ constructor( "", author, iconUri, imagesUri, ratings) } private val versions = HashMap<String, Version>() val packageName: String get() = basicData.packageName Loading @@ -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) { Loading
app/src/main/java/io/eelo/appinstaller/categories/CategoriesListAdapter.kt +9 −13 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) } Loading @@ -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) } } } }
app/src/main/java/io/eelo/appinstaller/categories/category/CategoryActivity.kt +1 −1 Original line number Diff line number Diff line Loading @@ -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