-
Notifications
You must be signed in to change notification settings - Fork 170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prepare release 11.1 #1342
Prepare release 11.1 #1342
Conversation
// unregister receivers on the main thread | ||
unregisterReceiver(tickReceiver) | ||
unregisterReceiver(connectivityReceiver) | ||
cleanupDeferred = CompletableDeferred() | ||
serviceScope.launch { | ||
try { | ||
onCreateCompleted.await() // wait until onCreate is finished | ||
WalletApplication.scheduleStartBlockchainService(this@BlockchainServiceImpl) //disconnect feature | ||
unregisterReceiver(tickReceiver) | ||
application.wallet!!.removeChangeEventListener(walletEventListener) | ||
application.wallet!!.removeCoinsSentEventListener(walletEventListener) | ||
application.wallet!!.removeCoinsReceivedEventListener(walletEventListener) | ||
config.unregisterOnSharedPreferenceChangeListener(sharedPrefsChangeListener) | ||
unregisterReceiver(connectivityReceiver) | ||
platformSyncService.shutdown() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change is to solve problems with unregistering receivers. There were exceptions about leaking receivers and unregistering receivers that were not registered.
This was probably a result of running the cleanup in a coroutine instead of before onDestroy
finishes execution.
Service de.schildbach.wallet.service.BlockchainServiceImpl has leaked IntentReceiver de.schildbach.wallet.service.BlockchainServiceImpl$tickReceiver$1@3257bc5 that was originally registered here. Are you missing a call to unregisterReceiver()?
android.app.IntentReceiverLeaked: Service de.schildbach.wallet.service.BlockchainServiceImpl has leaked IntentReceiver de.schildbach.wallet.service.BlockchainServiceImpl$tickReceiver$1@3257bc5 that was originally registered here. Are you missing a call to unregisterReceiver()?
at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:1839)
at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:1601)
at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1840)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1792)
at android.app.ContextImpl.registerReceiver(ContextImpl.java:1780)
at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:755)
at de.schildbach.wallet.service.BlockchainServiceImpl$onCreate$1.invokeSuspend(BlockchainServiceImpl.kt:1097)
.flatMapLatest { _ -> | ||
init() | ||
|
||
if (!hasIdentity) { | ||
return@flatMapLatest flowOf(emptyList()) | ||
} | ||
|
||
val userId = blockchainIdentity.uniqueIdString | ||
.filter { it.creationState >= BlockchainIdentityData.CreationState.DONE } | ||
.flatMapLatest { identityData -> | ||
val userId = identityData.userId!! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Found a crash due during wallet restoration. Let's make sure that restoration of the identity is finished first.
* registration of receivers * check() function
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good
Issue being fixed or feature implemented
Related PR's and Dependencies
Screenshots / Videos
How Has This Been Tested?
Checklist: