Steps to reproduce
- Install Wikipedia android app with version 2.7.50431 or above
- Run any of the following command s
adb shell am start -a android.intent.action.SEND -f 32768 -t text/plain -n org.wikipedia/.search.SearchActivity -e android.intent.extra.TEXT example adb shell am start -a android.intent.action.PROCESS_TEXT -f 32768 -t text/plain -n org.wikipedia/.search.SearchActivity -e android.intent.extra.PROCESS_TEXT example
Expected results
I expected to be navigated to SearchActivity with inflated SearchFragment which would trigger the search on the query supplied in the extra parameters, then show the results of the search without any further interaction. This was working in Wikipedia app 2.7.50428 and before.
Actual results
I'm navigated to SearchActivity with inflated SearchFragment the query is being put into search bar but the search is not triggered and no results are shown
Stack trace
(Optional logcat output)
Adidional dev info
I was able to fix the bug with the following hack but it lacks the code quality to be submitted in PR.
class SearchResultsViewModel : ViewModel() { private val batchSize = 20 private val delayMillis = 200L private val totalResults = mutableListOf<SearchResult>() var resultsCount = mutableListOf<Int>() @Volatile var searchTerm: String? = null var languageCode: String? = null @OptIn(FlowPreview::class) // TODO: revisit if the debounce method changed. val searchResultsFlow = Pager(PagingConfig(pageSize = batchSize, initialLoadSize = batchSize)) { SearchResultsPagingSource({ searchTerm }, { languageCode }, resultsCount, totalResults) ... class SearchResultsPagingSource( val searchTermInvo: () -> String?, val languageCodeInvo: () -> String?, var resultsCount: MutableList<Int>?, var totalResults: MutableList<SearchResult>? ) : PagingSource<MwQueryResponse.Continuation, SearchResult>() { private var prefixSearch = true override suspend fun load(params: LoadParams<MwQueryResponse.Continuation>): LoadResult<MwQueryResponse.Continuation, SearchResult> { return try { val searchTerm = searchTermInvo.invoke() val languageCode = languageCodeInvo.invoke()
Environments observed
App version: 2.7.50431, 2.7.50437
Android OS versions: 13
Device model: OnePlus 9 Pro
Device language: en_EN