Fix issue if stock didn't had a percentage change, then it wasn't included in the list

This commit is contained in:
fknives 2021-05-18 23:32:27 +03:00
parent 031eb30ee9
commit c7223ed02b
5 changed files with 25 additions and 10 deletions

View file

@ -11,7 +11,6 @@ android {
buildConfigField "String", "CONFIG_COMPANY_NAME_ID", "\"$COMPANY_NAME_ID\""
buildConfigField "String", "CONFIG_COMPANY_TICKER_ID", "\"$COMPANY_TICKER_ID\""
buildConfigField "String", "CONFIG_COMPANY_SHARE_PRICE_ID", "\"$COMPANY_SHARE_PRICE_ID\""
buildConfigField "String", "CONFIG_COMPANY_CHANGE_PERCENT_ID", "\"$COMPANY_CHANGE_PERCENT_ID\""
buildConfigField "String", "CONFIG_RECYCLER_ID1", "\"$RECYCLER_ID1\""
buildConfigField "String", "CONFIG_RECYCLER_ID2", "\"$RECYCLER_ID2\""
applicationId "org.fknives.rstocklist"

View file

@ -15,6 +15,7 @@ class ParseTicker {
?.firstOrNull()
?.trim()
} else {
System.err.println("couldnt process item: ${accessibilityNodeInfo.findAccessibilityNodeInfosByViewId(BuildConfig.CONFIG_COMPANY_TICKER_ID).map(AccessibilityNodeInfo::getText)}")
null
}
@ -26,8 +27,7 @@ class ParseTicker {
BuildConfig.CONFIG_COMPANY_IMG_ID,
BuildConfig.CONFIG_COMPANY_NAME_ID,
BuildConfig.CONFIG_COMPANY_TICKER_ID,
BuildConfig.CONFIG_COMPANY_SHARE_PRICE_ID,
BuildConfig.CONFIG_COMPANY_CHANGE_PERCENT_ID
BuildConfig.CONFIG_COMPANY_SHARE_PRICE_ID
)

View file

@ -24,10 +24,23 @@ class SyncService : AccessibilityService() {
syncState = SyncState.WORKING
traverseRecyclerView = object : TraverseRecyclerView(0) {
val tickers = mutableListOf<String>()
var foundRetried = 0
override fun found(accessibilityNodeInfo: AccessibilityNodeInfo) {
parseTicker(accessibilityNodeInfo)?.let(tickers::add)
listener?.onItemProcessed(tickers.size - 1)
override fun found(accessibilityNodeInfo: AccessibilityNodeInfo): Boolean {
val ticker = parseTicker(accessibilityNodeInfo)
ticker?.let(tickers::add)
if (ticker == null) {
foundRetried++
} else {
foundRetried = 0
tickers.add(ticker)
listener?.onItemProcessed(tickers.size - 1)
}
if (foundRetried == 10) {
foundRetried = 0
return true
}
return ticker != null
}
override fun finished() {

View file

@ -32,13 +32,16 @@ abstract class TraverseRecyclerView(private var index: Int) {
}
}
else -> {
index++
found(found)
if (found(found)) {
index++
} else {
recyclerView.scrollBackward()
}
}
}
}
protected abstract fun found(accessibilityNodeInfo: AccessibilityNodeInfo)
protected abstract fun found(accessibilityNodeInfo: AccessibilityNodeInfo): Boolean
protected abstract fun finished()