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

2
.idea/misc.xml generated
View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

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,11 +24,24 @@ 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)
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() {
syncState = SyncState.NOT_STARTED

View file

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