mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +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