Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .gradle/7.2/executionHistory/executionHistory.bin
Binary file not shown.
Binary file modified .gradle/7.2/executionHistory/executionHistory.lock
Binary file not shown.
Binary file modified .gradle/7.2/fileHashes/fileHashes.bin
Binary file not shown.
Binary file modified .gradle/7.2/fileHashes/fileHashes.lock
Binary file not shown.
Binary file modified .gradle/7.2/fileHashes/resourceHashesCache.bin
Binary file not shown.
Binary file modified .gradle/buildOutputCleanup/buildOutputCleanup.lock
Binary file not shown.
Binary file modified .gradle/buildOutputCleanup/outputFiles.bin
Binary file not shown.
7 changes: 4 additions & 3 deletions .idea/misc.xml

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

25 changes: 23 additions & 2 deletions .idea/navEditor.xml

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

37 changes: 32 additions & 5 deletions .idea/workspace.xml

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

Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
package com.github.bgrebennikov.devbuff.presentation.ui.customViews

import android.content.Context
import android.graphics.Canvas
import android.graphics.Path
import android.graphics.RectF
import android.util.AttributeSet
import android.widget.FrameLayout
import com.github.bgrebennikov.devbuff.R

class RoundedFrameLayout @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyle: Int = 0
) : FrameLayout(
context, attrs, defStyle
) {

private var path: Path? = null
private var cornerTopLeftRadius: Int = 0
private var cornerTopRightRadius: Int = 0
private var cornerBottomLeftRadius: Int = 0
private var cornerBottomRightRadius: Int = 0

init {
val a = context.theme.obtainStyledAttributes(
attrs, R.styleable.RoundedFrameLayout,
0, 0
)

val cornersRadius = a.getDimensionPixelSize(R.styleable.RoundedFrameLayout_cornerRadius, 0)

cornerTopLeftRadius = a.getDimensionPixelSize(R.styleable.RoundedFrameLayout_cornerRadiusTopLeft, cornersRadius)
cornerTopRightRadius = a.getDimensionPixelSize(R.styleable.RoundedFrameLayout_cornerRadiusTopRight, cornersRadius)
cornerBottomLeftRadius = a.getDimensionPixelSize(R.styleable.RoundedFrameLayout_cornerRadiusBottomLeft, cornersRadius)
cornerBottomRightRadius = a.getDimensionPixelSize(R.styleable.RoundedFrameLayout_cornerRadiusBottomRight, cornersRadius)

a.recycle()

}

fun setCornersRadius(radius: Int){
cornerTopLeftRadius = radius
cornerTopRightRadius = radius
cornerBottomLeftRadius = radius
cornerBottomRightRadius = radius

invalidate()
}

fun setCornersRadiusTopLeft(radius: Int){
cornerTopLeftRadius = radius
invalidate()
}

fun setCornersRadiusTopRight(radius: Int){
cornerTopRightRadius = radius
invalidate()
}

fun setCornersRadiusBottomLeft(radius: Int){
cornerBottomLeftRadius = radius
invalidate()
}

fun setCornersRadiusBottomRight(radius: Int){
cornerBottomRightRadius = radius
invalidate()
}

override fun draw(canvas: Canvas) {
canvas.save()
path?.let {
canvas.clipPath(it)
}
super.draw(canvas)
canvas.restore()
}

override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
super.onSizeChanged(w, h, oldw, oldh)

val rect = RectF(0f, 0f, w.toFloat(), h.toFloat())
path = Path().apply {
addRoundRect(
rect, floatArrayOf(
cornerTopLeftRadius.toFloat(),
cornerTopLeftRadius.toFloat(),
cornerTopRightRadius.toFloat(),
cornerTopRightRadius.toFloat(),
cornerBottomLeftRadius.toFloat(),
cornerBottomLeftRadius.toFloat(),
cornerBottomRightRadius.toFloat(),
cornerBottomRightRadius.toFloat()
), Path.Direction.CW
)
close()
}

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.github.bgrebennikov.devbuff.presentation.ui.fragments

import android.app.Dialog
import android.content.res.Configuration
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.DialogFragment
import com.github.bgrebennikov.devbuff.R
import com.github.bgrebennikov.devbuff.databinding.FragmentApplyIdeaBinding
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialogFragment


class ApplyIdeaFragment : BottomSheetDialogFragment() {

private var _binding: FragmentApplyIdeaBinding? = null
val binding get() = _binding!!


override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = FragmentApplyIdeaBinding.inflate(inflater, container, false)
return binding.root
}

override fun onStart() {
super.onStart()
val behavior = BottomSheetBehavior.from(requireView().parent as View)
behavior.skipCollapsed = false
if(resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE){
behavior.state = BottomSheetBehavior.STATE_EXPANDED
}
}

override fun onDestroyView() {
super.onDestroyView()
_binding = null
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import android.widget.Toast
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import com.github.bgrebennikov.devbuff.common.TAG
import com.github.bgrebennikov.devbuff.common.extensions.findMainNavController
import com.github.bgrebennikov.devbuff.data.local.explore.Status
import com.github.bgrebennikov.devbuff.databinding.FragmentIdeaDetailsBinding
import com.github.bgrebennikov.devbuff.presentation.ui.adapters.explore.ideaDetails.IdeaSpecialistsAdapter
Expand All @@ -18,9 +19,9 @@ class IdeaDetailsFragment : BaseFragment<FragmentIdeaDetailsBinding>(
FragmentIdeaDetailsBinding::inflate
) {

private val args : IdeaDetailsFragmentArgs by navArgs()
private val args: IdeaDetailsFragmentArgs by navArgs()

private val ideaInfo by lazy{
private val ideaInfo by lazy {
args.ideaInfo
}

Expand All @@ -42,13 +43,13 @@ class IdeaDetailsFragment : BaseFragment<FragmentIdeaDetailsBinding>(
binding.alreadyLoadedInfo = ideaInfo
Log.i(TAG, "onViewCreated: $ideaInfo")

with(binding.ideaSpecialistsList){
adapter = adapterSpecialists
}
// with(binding.ideaSpecialistsList){
// adapter = adapterSpecialists
// }

viewModel.loadSingleIdea(ideaInfo.id).observe(viewLifecycleOwner){
viewModel.loadSingleIdea(ideaInfo.id).observe(viewLifecycleOwner) {
it.let { apiResponse ->
when(apiResponse.status){
when (apiResponse.status) {

Status.LOADING -> {
binding.isLoading = true
Expand All @@ -58,6 +59,7 @@ class IdeaDetailsFragment : BaseFragment<FragmentIdeaDetailsBinding>(
binding.isLoading = false
binding.ideaInfo = idea
adapterSpecialists.items = idea.specialist
handleJoinClick()
}

Status.ERROR -> apiResponse.message?.let { error ->
Expand All @@ -76,8 +78,16 @@ class IdeaDetailsFragment : BaseFragment<FragmentIdeaDetailsBinding>(

}



private fun handleJoinClick() {
with(binding.ideaJoinBtn){
setOnClickListener {
findMainNavController().navigate(
IdeaDetailsFragmentDirections
.actionIdeaDetailsFragmentToApplyIdeaFragment()
)
}
}
}


}
5 changes: 4 additions & 1 deletion app/src/main/res/drawable/bg_rect_rounded_white.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
android:shape="rectangle"
>

<corners android:radius="12dp"/>
<corners
android:topLeftRadius="@dimen/corners_radius_default"
android:topRightRadius="@dimen/corners_radius_default"
/>
<solid android:color="@color/white"/>

</shape>
Loading