From 31bacc687f21d2767c03aaaf4506899796cdbc56 Mon Sep 17 00:00:00 2001 From: Rahul Kumar Patel Date: Mon, 22 Feb 2021 00:42:28 +0530 Subject: [PATCH] Add missing app info extras --- .../view/epoxy/views/details/InfoView.kt | 74 +++++++++++++++++++ .../view/ui/details/DetailsMoreActivity.kt | 17 +++++ app/src/main/res/layout/view_info.xml | 51 +++++++++++++ 3 files changed, 142 insertions(+) create mode 100644 app/src/main/java/com/aurora/store/view/epoxy/views/details/InfoView.kt create mode 100644 app/src/main/res/layout/view_info.xml diff --git a/app/src/main/java/com/aurora/store/view/epoxy/views/details/InfoView.kt b/app/src/main/java/com/aurora/store/view/epoxy/views/details/InfoView.kt new file mode 100644 index 000000000..ba0d75a65 --- /dev/null +++ b/app/src/main/java/com/aurora/store/view/epoxy/views/details/InfoView.kt @@ -0,0 +1,74 @@ +/* + * Aurora Store + * Copyright (C) 2021, Rahul Kumar Patel + * + * Aurora Store is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * Aurora Store is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Aurora Store. If not, see . + * + */ + +package com.aurora.store.view.epoxy.views.details + +import android.content.Context +import android.util.AttributeSet +import android.widget.RelativeLayout +import com.airbnb.epoxy.ModelProp +import com.airbnb.epoxy.ModelView +import com.airbnb.epoxy.OnViewRecycled +import com.aurora.store.R +import com.aurora.store.databinding.ViewInfoBinding +import com.aurora.store.view.epoxy.views.BaseView +import java.util.* + +@ModelView( + autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT, + baseModelClass = BaseView::class +) +class InfoView : RelativeLayout { + + private lateinit var B: ViewInfoBinding + + constructor(context: Context?) : super(context) { + init(context, null) + } + + constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) { + init(context, attrs) + } + + constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + init(context, attrs) + } + + private fun init(context: Context?, attrs: AttributeSet?) { + val view = inflate(context, R.layout.view_info, this) + B = ViewInfoBinding.bind(view) + } + + @ModelProp + fun badge(info: Map.Entry) { + B.txtTitle.text = info.key + .replace("_", " ") + .toLowerCase(Locale.getDefault()) + .capitalize(Locale.getDefault()) + B.txtSubtitle.text = info.value + } + + @OnViewRecycled + fun clear() { + } +} \ No newline at end of file diff --git a/app/src/main/java/com/aurora/store/view/ui/details/DetailsMoreActivity.kt b/app/src/main/java/com/aurora/store/view/ui/details/DetailsMoreActivity.kt index 9f37a3622..27f492029 100644 --- a/app/src/main/java/com/aurora/store/view/ui/details/DetailsMoreActivity.kt +++ b/app/src/main/java/com/aurora/store/view/ui/details/DetailsMoreActivity.kt @@ -33,8 +33,10 @@ import com.aurora.store.view.epoxy.views.HeaderViewModel_ import com.aurora.store.view.epoxy.views.app.NoAppAltViewModel_ import com.aurora.store.view.epoxy.views.details.AppDependentViewModel_ import com.aurora.store.view.epoxy.views.details.FileViewModel_ +import com.aurora.store.view.epoxy.views.details.InfoViewModel_ import com.aurora.store.view.epoxy.views.details.MoreBadgeViewModel_ import com.aurora.store.view.ui.commons.BaseActivity +import com.google.protobuf.MapEntry import nl.komponents.kovenant.task import nl.komponents.kovenant.ui.failUi import nl.komponents.kovenant.ui.successUi @@ -135,6 +137,21 @@ class DetailsMoreActivity : BaseActivity() { } } } + + if (app.appInfo.appInfoMap.isNotEmpty()){ + add( + HeaderViewModel_() + .id("info_header") + .title("Info") + ) + app.appInfo.appInfoMap.forEach{ + add( + InfoViewModel_() + .id(it.key) + .badge(it) + ) + } + } } } diff --git a/app/src/main/res/layout/view_info.xml b/app/src/main/res/layout/view_info.xml new file mode 100644 index 000000000..a7a81acd6 --- /dev/null +++ b/app/src/main/res/layout/view_info.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + \ No newline at end of file