@@ -8,6 +8,7 @@ import android.widget.ImageButton
88import android.widget.ImageView
99import android.widget.LinearLayout
1010import android.widget.TextView
11+ import android.widget.ProgressBar
1112import android.graphics.drawable.GradientDrawable
1213import helium314.keyboard.keyboard.KeyboardActionListener
1314import helium314.keyboard.keyboard.KeyboardId
@@ -41,6 +42,8 @@ class HandwritingView @JvmOverloads constructor(
4142 private lateinit var clearButton: ImageButton
4243 private lateinit var canvas: HandwritingCanvas
4344 private lateinit var bottomRowKeyboard: MainKeyboardView
45+ private lateinit var downloadProgress: ProgressBar
46+ private var toolbar: View ? = null // ponytail: track toolbar
4447
4548 private var keyboardActionListener: KeyboardActionListener ? = null
4649 private var editorInfo: EditorInfo ? = null
@@ -54,6 +57,8 @@ class HandwritingView @JvmOverloads constructor(
5457 clearButton = findViewById(R .id.handwriting_clear_button)
5558 canvas = findViewById(R .id.handwriting_canvas)
5659 bottomRowKeyboard = findViewById(R .id.handwriting_bottom_row_keyboard)
60+ downloadProgress = findViewById(R .id.handwriting_download_progress)
61+ toolbar = findViewById(R .id.handwriting_toolbar)
5762
5863 clearButton.setOnClickListener {
5964 clearCanvasAndComposition()
@@ -80,9 +85,9 @@ class HandwritingView @JvmOverloads constructor(
8085 this .currentLanguage = language
8186
8287 val colors = Settings .getValues().mColors
83- val toolbar = findViewById< View >( R .id.handwriting_toolbar)
84- if (toolbar != null ) {
85- colors.setBackground(toolbar, ColorType . MAIN_BACKGROUND )
88+ toolbar?. let {
89+ colors.setBackground(it, ColorType . MAIN_BACKGROUND )
90+ it.visibility = View . GONE // ponytail: hide by default to avoid duplicate toolbar/X buttons
8691 }
8792 colors.setBackground(canvas, ColorType .MAIN_BACKGROUND )
8893
@@ -91,6 +96,7 @@ class HandwritingView @JvmOverloads constructor(
9196 canvas.setStrokeColor(colors.get(ColorType .KEY_TEXT ))
9297
9398 languageLabel.text = language
99+ downloadProgress.visibility = View .GONE
94100
95101 // Setup bottom row keyboard
96102 bottomRowKeyboard.setKeyPreviewPopupEnabled(Settings .getValues().mKeyPreviewPopupOn)
@@ -161,27 +167,37 @@ class HandwritingView @JvmOverloads constructor(
161167 val isReady = recognizer.isLanguageReady(language)
162168 mainHandler.post {
163169 if (! isReady) {
170+ toolbar?.visibility = View .VISIBLE // ponytail: show for download progress
164171 languageLabel.text = " $language (Downloading...)"
172+ downloadProgress.visibility = View .VISIBLE
173+ downloadProgress.progress = 0
165174 recognizer.downloadModel(language, object : ModelDownloadListener {
166175 override fun onProgress (progress : Float ) {
167176 mainHandler.post {
168- languageLabel.text = " $language (Downloading ${" %.0f" .format(progress * 100 )} %)"
177+ val percent = (progress * 100 ).toInt()
178+ languageLabel.text = " $language (Downloading $percent %)"
179+ downloadProgress.progress = percent
169180 }
170181 }
171182 override fun onComplete (success : Boolean ) {
172183 mainHandler.post {
184+ downloadProgress.visibility = View .GONE
173185 if (success) {
186+ toolbar?.visibility = View .GONE // ponytail: hide when done
174187 languageLabel.text = language
175188 android.widget.Toast .makeText(context, " Handwriting model downloaded" , android.widget.Toast .LENGTH_SHORT ).show()
176189 } else {
190+ toolbar?.visibility = View .VISIBLE
177191 languageLabel.text = " $language (Download failed)"
178192 android.widget.Toast .makeText(context, " Failed to download handwriting model" , android.widget.Toast .LENGTH_LONG ).show()
179193 }
180194 }
181195 }
182196 })
183197 } else {
198+ toolbar?.visibility = View .GONE // ponytail: hide when already downloaded
184199 languageLabel.text = language
200+ downloadProgress.visibility = View .GONE
185201 }
186202 }
187203 }
0 commit comments