mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 16:18:55 +01:00 
			
		
		
		
	Revert "Remove reflection to get TextView color field (closes #2469)"
This reverts commit 5f2aaeac57.
			
			
This commit is contained in:
		@@ -24,12 +24,12 @@ class PageIndicatorTextView(
 | 
			
		||||
    private val strokeColor = Color.rgb(45, 45, 45)
 | 
			
		||||
 | 
			
		||||
    override fun onDraw(canvas: Canvas) {
 | 
			
		||||
        setTextColor(strokeColor)
 | 
			
		||||
        textColorField.set(this, strokeColor)
 | 
			
		||||
        paint.strokeWidth = 4f
 | 
			
		||||
        paint.style = Paint.Style.STROKE
 | 
			
		||||
        super.onDraw(canvas)
 | 
			
		||||
 | 
			
		||||
        setTextColor(fillColor)
 | 
			
		||||
        textColorField.set(this, fillColor)
 | 
			
		||||
        paint.strokeWidth = 0f
 | 
			
		||||
        paint.style = Paint.Style.FILL
 | 
			
		||||
        super.onDraw(canvas)
 | 
			
		||||
@@ -50,4 +50,12 @@ class PageIndicatorTextView(
 | 
			
		||||
 | 
			
		||||
        super.setText(finalText, TextView.BufferType.SPANNABLE)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private companion object {
 | 
			
		||||
        // We need to use reflection to set the text color instead of using [setTextColor],
 | 
			
		||||
        // otherwise the view is invalidated inside [onDraw] and there's an infinite loop
 | 
			
		||||
        val textColorField = TextView::class.java.getDeclaredField("mCurTextColor").apply {
 | 
			
		||||
            isAccessible = true
 | 
			
		||||
        }!!
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user