Skip to content

Commit

Permalink
Weight Picker
Browse files Browse the repository at this point in the history
  • Loading branch information
JahidHasanCO committed Aug 1, 2022
1 parent e659113 commit f49bb69
Show file tree
Hide file tree
Showing 19 changed files with 345 additions and 23 deletions.
17 changes: 17 additions & 0 deletions .idea/deploymentTargetDropDown.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 9 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,23 @@ android {
kotlinOptions {
jvmTarget = '1.8'
}
buildFeatures{
dataBinding = true
}
}

dependencies {

implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

implementation 'com.github.paroca72:sc-gauges:3.5.4'
implementation 'com.github.adityagohad:HorizontalPicker:1.0.1'


}
54 changes: 52 additions & 2 deletions app/src/main/java/dev/jahidhasanco/bmicalculator/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,61 @@
package dev.jahidhasanco.bmicalculator

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil
import androidx.recyclerview.widget.LinearSnapHelper
import androidx.recyclerview.widget.SnapHelper
import com.sccomponents.gauges.library.ScArcGauge
import dev.jahidhasanco.bmicalculator.databinding.ActivityMainBinding
import dev.jahidhasanco.bmicalculator.presentation.adapter.WeightPickerAdapter
import travel.ithaka.android.horizontalpickerlib.PickerLayoutManager


class MainActivity : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding
val _binding get() = binding

lateinit var weightAdapter:WeightPickerAdapter

private val mAngle = 1f

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
binding = DataBindingUtil.setContentView(this,R.layout.activity_main)

_binding.genderMeter.angleStart = mAngle

val pickerLayoutManager = PickerLayoutManager(this, PickerLayoutManager.HORIZONTAL, false)
pickerLayoutManager.apply {
isChangeAlpha = true
scaleDownBy = 0.99f
scaleDownDistance = 0.8f
}


val snapHelper: SnapHelper = LinearSnapHelper()
snapHelper.attachToRecyclerView(_binding.weightRecyclerBtn)

weightAdapter = WeightPickerAdapter(this, getData(100), _binding.weightRecyclerBtn)

_binding.weightRecyclerBtn.apply {
layoutManager = pickerLayoutManager
adapter = weightAdapter
}


pickerLayoutManager.setOnScrollStopListener {

}

}

fun getData(count: Int): List<String> {
val data: MutableList<String> = ArrayList()
for (i in 0 until count) {
data.add(i.toString())
}
return data
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package dev.jahidhasanco.bmicalculator.presentation.adapter


import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import dev.jahidhasanco.bmicalculator.R


class WeightPickerAdapter(private val context: Context, private var dataList: List<String>, private val recyclerView: RecyclerView) :
RecyclerView.Adapter<WeightPickerAdapter.TextVH>() {



override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TextVH {
val view: View
val inflater = LayoutInflater.from(context)
view = inflater.inflate(R.layout.weight_picker_item_layout, parent, false)
return TextVH(view)
}

override fun onBindViewHolder(holder: TextVH, position: Int) {

holder.pickerTxt.text = dataList[position]
holder.pickerTxt.setOnClickListener {
recyclerView.smoothScrollToPosition(position)
}
}

override fun getItemCount(): Int {
return dataList.size
}

fun swapData(newData: List<String>) {
dataList = newData
notifyDataSetChanged()
}

class TextVH(itemView: View) : RecyclerView.ViewHolder(itemView) {
var pickerTxt: TextView

init {
pickerTxt = itemView.findViewById(R.id.weight_picker_item)
}
}

}
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/ic_baseline_expand_less_24.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#4D7CF2"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,8l-6,6 1.41,1.41L12,10.83l4.59,4.58L18,14z"/>
</vector>
7 changes: 7 additions & 0 deletions app/src/main/res/drawable/rounded_dash.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

<solid android:color="@color/backgroundColorAdditional2"/>
<corners android:radius="40dp"/>

</shape>
7 changes: 7 additions & 0 deletions app/src/main/res/drawable/rounded_dash_main.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

<solid android:color="@color/backgroundColor"/>
<corners android:radius="10dp"/>

</shape>
Binary file added app/src/main/res/font/larsseit.otf
Binary file not shown.
Binary file added app/src/main/res/font/larsseit_bold.otf
Binary file not shown.
Binary file added app/src/main/res/font/larsseit_medium.otf
Binary file not shown.
Loading

0 comments on commit f49bb69

Please sign in to comment.