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"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <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" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

View file

@ -11,7 +11,6 @@ android {
buildConfigField "String", "CONFIG_COMPANY_NAME_ID", "\"$COMPANY_NAME_ID\"" buildConfigField "String", "CONFIG_COMPANY_NAME_ID", "\"$COMPANY_NAME_ID\""
buildConfigField "String", "CONFIG_COMPANY_TICKER_ID", "\"$COMPANY_TICKER_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_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_ID1", "\"$RECYCLER_ID1\""
buildConfigField "String", "CONFIG_RECYCLER_ID2", "\"$RECYCLER_ID2\"" buildConfigField "String", "CONFIG_RECYCLER_ID2", "\"$RECYCLER_ID2\""
applicationId "org.fknives.rstocklist" applicationId "org.fknives.rstocklist"

View file

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

View file

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

View file

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