From 642791bdcb5f2cca8f4ac0f7fc4795414a6b81bd Mon Sep 17 00:00:00 2001 From: Akash bhatt Date: Fri, 10 Jan 2020 19:58:25 +0530 Subject: [PATCH 01/13] added UI with sample data --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 4 +- .../com/aks4125/gorealm/CompanyAdapter.kt | 42 +++++++++++++ .../java/com/aks4125/gorealm/MainActivity.kt | 16 +++++ .../res/drawable/ic_favorite_black_24dp.xml | 9 +++ .../main/res/layout-v23/list_item_company.xml | 63 +++++++++++++++++++ app/src/main/res/layout/list_item_company.xml | 60 ++++++++++++++++++ app/src/main/res/values/colors.xml | 6 +- app/src/main/res/values/strings.xml | 2 + 9 files changed, 199 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/com/aks4125/gorealm/CompanyAdapter.kt create mode 100644 app/src/main/res/drawable/ic_favorite_black_24dp.xml create mode 100644 app/src/main/res/layout-v23/list_item_company.xml create mode 100644 app/src/main/res/layout/list_item_company.xml diff --git a/app/build.gradle b/app/build.gradle index 7b7b1bc..cd6edec 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -41,6 +41,7 @@ dependencies { implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'com.google.code.gson:gson:2.8.6' + implementation 'com.google.android.material:material:1.0.0' implementation 'com.squareup.moshi:moshi:1.8.0' kapt 'com.squareup.moshi:moshi-kotlin-codegen:1.8.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 56f5984..f058300 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,7 +10,9 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> - + diff --git a/app/src/main/java/com/aks4125/gorealm/CompanyAdapter.kt b/app/src/main/java/com/aks4125/gorealm/CompanyAdapter.kt new file mode 100644 index 0000000..dbf9226 --- /dev/null +++ b/app/src/main/java/com/aks4125/gorealm/CompanyAdapter.kt @@ -0,0 +1,42 @@ +package com.aks4125.gorealm + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import kotlinx.android.synthetic.main.list_item_company.view.* + + +class CompanyAdapter(private val modelList: List) : + RecyclerView.Adapter() { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CompanyHolder { + return CompanyHolder( + LayoutInflater.from(parent.context) + .inflate(R.layout.list_item_company, parent, false) + ) + } + + override fun onBindViewHolder(holder: CompanyHolder, position: Int) { + holder.bind(modelList[position]) + } + + override fun getItemCount(): Int { + return modelList.size + } + + inner class CompanyHolder(view: View) : RecyclerView.ViewHolder(view) { + + private val name = view.name + private val tvEmpCount = view.tvEmpCount + private val tvAddress = view.tvAddress + private val btnClaps = view.btnClaps + + fun bind(data: CompanyModel) { + name.text = data.name + tvEmpCount.text = itemView.context.getString(R.string.total_emp, data.empCount) + tvAddress.text = data.address + btnClaps.text = data.claps.toString() + } + } + +} diff --git a/app/src/main/java/com/aks4125/gorealm/MainActivity.kt b/app/src/main/java/com/aks4125/gorealm/MainActivity.kt index 4c64501..372e0ac 100644 --- a/app/src/main/java/com/aks4125/gorealm/MainActivity.kt +++ b/app/src/main/java/com/aks4125/gorealm/MainActivity.kt @@ -3,15 +3,31 @@ package com.aks4125.gorealm import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import kotlinx.android.synthetic.main.activity_main.* +import java.util.* class MainActivity : AppCompatActivity() { + private lateinit var mCompanyAdapter: CompanyAdapter + private lateinit var mCompanyList: List + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) + val turnsType = object : TypeToken>() {}.type + mCompanyList = Gson().fromJson>(getString(R.string.sampleJson), turnsType) + + + mCompanyAdapter = CompanyAdapter(mCompanyList) rvCompany.apply { layoutManager = LinearLayoutManager(context) + adapter = mCompanyAdapter } + + + + } } diff --git a/app/src/main/res/drawable/ic_favorite_black_24dp.xml b/app/src/main/res/drawable/ic_favorite_black_24dp.xml new file mode 100644 index 0000000..cfba5d8 --- /dev/null +++ b/app/src/main/res/drawable/ic_favorite_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout-v23/list_item_company.xml b/app/src/main/res/layout-v23/list_item_company.xml new file mode 100644 index 0000000..57f6d3d --- /dev/null +++ b/app/src/main/res/layout-v23/list_item_company.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + +