Move SSD dropdown callbacks to typed Kotlin
ober
200f487d452169da91f9558c855fb2abb7bd1ff7
--- a/templates/ssd-review.ss +++ b/templates/ssd-review.ss @@ -4610,12 +4610,15 @@ (kotlin-imports (java io File) (java io InputStream) (java io OutputStream) + (android app AlertDialog) (android graphics Bitmap) (android content Intent) (android database Cursor) (android net Uri) (android os ParcelFileDescriptor) + (android view View) (android view Window) + (android widget AutoCompleteTextView) (android widget TextView) (androidx documentfile provider DocumentFile) (org json JSONObject)) @@ -4734,6 +4737,8 @@ truthStoreLoadTruthForSession ssdBrowserResumeReady focusChangeShouldShowDropdown dialogReadyToShowDropdown focusedDialogReadyToShowDropdown + autoCompleteInstallDropdownOpeners + autoCompleteFocusAndShowDropdown permissionResultGranted downloadAccessBeforeRuntimePermissions downloadAccessFromPermission activityResultRejected pageNavigationBlocked pageNavigationBlockedForUri @@ -4781,6 +4786,8 @@ (type FloatArray) (type Bitmap) (type Char) + (type AlertDialog) + (type AutoCompleteTextView) (type File) (type InputStream) (type OutputStream) @@ -4788,6 +4795,7 @@ (type Intent) (type Uri) (type ParcelFileDescriptor) + (type View) (type Window) (type DocumentFile) (type JSONObject) @@ -4809,6 +4817,41 @@ (kotlin-member-call delete)) (extern (windowSetSoftInputMode (window : Window) (mode : Int32)) : Unit (kotlin-member-call setSoftInputMode)) + (extern (alertDialogIsShowing (dialog : AlertDialog)) : Bool + (kotlin-member-get isShowing)) + (extern (autoCompleteDropDownHeightSet + (view : AutoCompleteTextView) + (height : Int32)) : Unit + (kotlin-member-set dropDownHeight)) + (extern (autoCompleteShowDropDownRaw + (view : AutoCompleteTextView)) : Unit + (kotlin-member-call showDropDown)) + (extern (autoCompleteBringToFrontRaw + (view : AutoCompleteTextView)) : Unit + (kotlin-member-call bringToFront)) + (extern (autoCompleteRequestFocusRaw + (view : AutoCompleteTextView)) : Unit + (kotlin-member-call requestFocus)) + (extern (autoCompleteHasFocusRaw + (view : AutoCompleteTextView)) : Bool + (kotlin-member-call hasFocus)) + (extern (autoCompletePostRaw + (view : AutoCompleteTextView) + (callback : (-> Unit))) : Unit + (kotlin-member-call post)) + (extern (autoCompletePostDelayedRaw + (view : AutoCompleteTextView) + (callback : (-> Unit)) + (delayMillis : Int32)) : Unit + (kotlin-member-call postDelayed)) + (extern (autoCompleteSetOnClickListenerRaw + (view : AutoCompleteTextView) + (listener : (-> View Unit))) : Unit + (kotlin-member-call setOnClickListener)) + (extern (autoCompleteSetOnFocusChangeListenerRaw + (view : AutoCompleteTextView) + (listener : (-> View Bool Unit))) : Unit + (kotlin-member-call setOnFocusChangeListener)) (extern (stringLines (text : String)) : (List String) (kotlin-member-call lines)) (extern (stringSplitTwoChars (text : String) @@ -6027,6 +6070,45 @@ (def (focusedDialogReadyToShowDropdown (dialogShowing : Bool) (hasFocus : Bool)) : Bool (and dialogShowing hasFocus)) + (def (autoCompleteInstallDropdownOpeners + (view : AutoCompleteTextView)) : Unit + (begin + (autoCompleteSetOnClickListenerRaw + view + (lambda ((unused : View)) + (autoCompleteShowDropDownRaw view))) + (autoCompleteSetOnFocusChangeListenerRaw + view + (lambda ((unused : View) (hasFocus : Bool)) + (if (focusChangeShouldShowDropdown hasFocus) + (autoCompletePostRaw + view + (lambda () + (autoCompleteShowDropDownRaw view))) + (begin)))))) + (def (autoCompleteFocusAndShowDropdown + (dialog : AlertDialog) + (view : AutoCompleteTextView)) : Unit + (begin + (autoCompleteRequestFocusRaw view) + (autoCompletePostRaw + view + (lambda () + (if (dialogReadyToShowDropdown (alertDialogIsShowing dialog)) + (begin + (autoCompleteBringToFrontRaw view) + (autoCompleteRequestFocusRaw view) + (autoCompleteShowDropDownRaw view)) + (begin)))) + (autoCompletePostDelayedRaw + view + (lambda () + (if (focusedDialogReadyToShowDropdown + (alertDialogIsShowing dialog) + (autoCompleteHasFocusRaw view)) + (autoCompleteShowDropDownRaw view) + (begin))) + (int32 250)))) (def (permissionResultGranted (actual : Int32) (granted : Int32)) : Bool (= actual granted)) (def (downloadAccessBeforeRuntimePermissions (beforeRuntimePermissions : Bool)) : Bool @@ -7574,8 +7656,7 @@ " inputType = InputType.TYPE_CLASS_TEXT" " threshold = 1" " setAdapter(ArrayAdapter(this@MainActivity, android.R.layout.simple_dropdown_item_1line, boxTypeDisplays))" - " setOnClickListener { showDropDown() }" - " setOnFocusChangeListener { _, hasFocus -> if (focusChangeShouldShowDropdown(hasFocus)) post { showDropDown() } }" + " autoCompleteInstallDropdownOpeners(this)" " }" "" " private fun firingArcInput(): AutoCompleteTextView =" @@ -7584,8 +7665,7 @@ " inputType = InputType.TYPE_CLASS_TEXT" " threshold = 0" " setAdapter(ArrayAdapter(this@MainActivity, android.R.layout.simple_dropdown_item_1line, firingArcDisplays))" - " setOnClickListener { showDropDown() }" - " setOnFocusChangeListener { _, hasFocus -> if (focusChangeShouldShowDropdown(hasFocus)) post { showDropDown() } }" + " autoCompleteInstallDropdownOpeners(this)" " }" "" " private fun wireBoxTypeDialogBehavior(" @@ -7636,19 +7716,7 @@ " android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE or" " android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE" " )" - " boxType.requestFocus()" - " boxType.post {" - " if (dialogReadyToShowDropdown(dialog.isShowing)) {" - " boxType.bringToFront()" - " boxType.requestFocus()" - " boxType.showDropDown()" - " }" - " }" - " boxType.postDelayed({" - " if (focusedDialogReadyToShowDropdown(dialog.isShowing, boxType.hasFocus())) {" - " boxType.showDropDown()" - " }" - " }, 250)" + " autoCompleteFocusAndShowDropdown(dialog, boxType)" " }" "" " private fun openPdf() {"