mirror of
				https://codeberg.org/tom79/Fedilab.git
				synced 2025-10-20 11:20:16 +03:00 
			
		
		
		
	add thread lines also for ancestors
This commit is contained in:
		
							parent
							
								
									813a2f4e12
								
							
						
					
					
						commit
						9510c23b65
					
				
					 1 changed files with 5 additions and 5 deletions
				
			
		| 
						 | 
					@ -3,6 +3,7 @@ package app.fedilab.android.helper
 | 
				
			||||||
import android.content.Context
 | 
					import android.content.Context
 | 
				
			||||||
import android.content.res.Resources
 | 
					import android.content.res.Resources
 | 
				
			||||||
import android.graphics.Canvas
 | 
					import android.graphics.Canvas
 | 
				
			||||||
 | 
					import android.graphics.Color
 | 
				
			||||||
import android.graphics.DashPathEffect
 | 
					import android.graphics.DashPathEffect
 | 
				
			||||||
import android.graphics.Paint
 | 
					import android.graphics.Paint
 | 
				
			||||||
import android.graphics.Rect
 | 
					import android.graphics.Rect
 | 
				
			||||||
| 
						 | 
					@ -46,20 +47,19 @@ class RecyclerViewThreadLines(context: Context, private val lineInfoList: List<L
 | 
				
			||||||
            val lineInfo = lineInfoList[position]
 | 
					            val lineInfo = lineInfoList[position]
 | 
				
			||||||
            val level = lineInfo.level
 | 
					            val level = lineInfo.level
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (j in 1..level) {
 | 
					            for (j in 0..level) {
 | 
				
			||||||
                val lineMargin = margin * j + 3.dpToPx
 | 
					                val lineMargin = margin * j.coerceAtLeast(1) + 3.dpToPx
 | 
				
			||||||
                val lineStart = if (parent.layoutDirection == View.LAYOUT_DIRECTION_LTR) lineMargin else c.width - lineMargin
 | 
					                val lineStart = if (parent.layoutDirection == View.LAYOUT_DIRECTION_LTR) lineMargin else c.width - lineMargin
 | 
				
			||||||
                var lineTop: Float = (view.top - baseMargin).toFloat()
 | 
					                var lineTop: Float = (view.top - baseMargin).toFloat()
 | 
				
			||||||
                if (j == 0) lineTop += view.height / 2
 | 
					 | 
				
			||||||
                val paint = Paint(commonPaint)
 | 
					                val paint = Paint(commonPaint)
 | 
				
			||||||
                paint.color = lineColors[j - 1]
 | 
					                paint.color = if (j > 0) lineColors[j - 1] else Color.GRAY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // draw lines for below statuses
 | 
					                // draw lines for below statuses
 | 
				
			||||||
                if (j != level && j >= lineInfo.fullLinesStart && j <= lineInfo.fullLinesEnd)
 | 
					                if (j != level && j >= lineInfo.fullLinesStart && j <= lineInfo.fullLinesEnd)
 | 
				
			||||||
                    c.drawLine(lineStart, lineTop, lineStart, view.bottom.toFloat(), paint)
 | 
					                    c.drawLine(lineStart, lineTop, lineStart, view.bottom.toFloat(), paint)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // draw vertical line for current statuses
 | 
					                // draw vertical line for current statuses
 | 
				
			||||||
                if (j == level) {
 | 
					                if (j == level && i != 0) {
 | 
				
			||||||
                    // top the line starts at the middle of the above status
 | 
					                    // top the line starts at the middle of the above status
 | 
				
			||||||
                    if (i > 0) lineTop -= parent.getChildAt(i - 1).height / 2 - 1 // '- 1' is to prevent overlapping with above horizontal line
 | 
					                    if (i > 0) lineTop -= parent.getChildAt(i - 1).height / 2 - 1 // '- 1' is to prevent overlapping with above horizontal line
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue