dnet / adsdroid

Unofficial AllDataSheet Android application
https://techblog.vsza.hu/posts/Unofficial_Android_app_for_alldatasheet.com.html
MIT License
29 stars 11 forks source link

Crash occurs while canceling and re-searching #21

Open onos1 opened 6 years ago

onos1 commented 6 years ago

How to reproduce

Logcat

05-12 08:11:34.251 17903 17903 E AndroidRuntime: FATAL EXCEPTION: main 05-12 08:11:34.251 17903 17903 E AndroidRuntime: Process: com.android.systemui, PID: 17903 05-12 08:11:34.251 17903 17903 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.android.systemui.statusbar.notification.HybridNotificationView.getHeight()' on a null object reference 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.stack.NotificationChildrenContainer.getMinHeight(NotificationChildrenContainer.java:812) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.stack.NotificationChildrenContainer.getCollapsedHeight(NotificationChildrenContainer.java:794) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.ExpandableNotificationRow.getCollapsedHeight(ExpandableNotificationRow.java:1522) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.ExpandableNotificationRow.getIntrinsicHeight(ExpandableNotificationRow.java:1236) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.NotificationContentView.calculateVisibleType(NotificationContentView.java:841) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.NotificationContentView.updateExpandButtons(NotificationContentView.java:1104) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.ExpandableNotificationRow.onChildrenCountChanged(ExpandableNotificationRow.java:1252) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.ExpandableNotificationRow.addChildNotification(ExpandableNotificationRow.java:373) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.phone.PhoneStatusBar.addNotificationChildrenAndSort(PhoneStatusBar.java:2550) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.phone.PhoneStatusBar.updateNotificationShade(PhoneStatusBar.java:2484) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.phone.PhoneStatusBar.updateNotifications(PhoneStatusBar.java:2669) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.BaseStatusBar.addNotificationViews(BaseStatusBar.java:2411) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.phone.PhoneStatusBar.addNotification(PhoneStatusBar.java:2230) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.systemui.statusbar.BaseStatusBar$7$2.run(BaseStatusBar.java:687) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:836) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:103) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at android.os.Looper.loop(Looper.java:203) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6251) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1073) 05-12 08:11:34.251 17903 17903 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934) 05-12 08:11:34.476 914 1089 E ConnectivityService: RemoteException caught trying to send a callback msg for NetworkRequest [ id=283, legacyType=-1, [] ] 05-12 08:12:56.470 914 1649 E ActivityManager: applyOptionsLocked: Unknown animationType=0 05-12 08:13:06.172 914 996 E BatteryStatsService: no controller energy info supplied 05-12 08:13:06.172 914 996 E BatteryStatsService: no controller energy info supplied 05-12 08:13:06.197 914 996 E BatteryStatsService: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0} 05-12 08:13:22.607 914 24553 E ActivityManager: applyOptionsLocked: Unknown animationType=0 05-12 08:14:42.240 914 1089 E ConnectivityService: RemoteException caught trying to send a callback msg for NetworkRequest [ id=346, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED] ] 05-12 08:14:42.246 914 1089 E ConnectivityService: RemoteException caught trying to send a callback msg for NetworkRequest [ id=344, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED] ] 05-12 08:14:42.263 914 994 E NetdConnector: NDC Command {8443 firewall set_uid_rule dozable 10156 allow} took too long (649ms) 05-12 08:16:58.905 914 1764 E ActivityManager: getContentProviderImpl: Update provider ProcessRecord{f4323a9 914:system/1000} conProviers's adj. conProviders.provider.proc = ProcessRecord{5394b88 26939:android.process.acore/u0a1} stableCount = 1 05-12 08:16:59.025 914 1492 E Telecom : CallAudioRouteStateMachine: Unexpected message code: ICA.sAR->CARSM.pM_USER_SWITCH_EARPIECE@EsY_0 05-12 08:16:59.025 914 1492 E Telecom : java.lang.IllegalStateException 05-12 08:16:59.025 914 1492 E Telecom : at com.android.server.telecom.CallAudioRouteStateMachine.unhandledMessage(CallAudioRouteStateMachine.java:1094) 05-12 08:16:59.025 914 1492 E Telecom : at com.android.internal.util.StateMachine$SmHandler.processMsg(StateMachine.java:989) 05-12 08:16:59.025 914 1492 E Telecom : at com.android.internal.util.StateMachine$SmHandler.handleMessage(StateMachine.java:799) 05-12 08:16:59.025 914 1492 E Telecom : at android.os.Handler.dispatchMessage(Handler.java:110) 05-12 08:16:59.025 914 1492 E Telecom : at android.os.Looper.loop(Looper.java:203) 05-12 08:16:59.025 914 1492 E Telecom : at android.os.HandlerThread.run(HandlerThread.java:61) 05-12 08:17:38.324 914 1089 E ConnectivityService: RemoteException caught trying to send a callback msg for NetworkRequest [ id=347, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED] ] 05-12 08:18:14.437 914 4443 E ActivityManager: applyOptionsLocked: Unknown animationType=0 05-12 08:18:41.284 914 996 E BatteryStatsService: no controller energy info supplied 05-12 08:18:41.284 914 996 E BatteryStatsService: no controller energy info supplied 05-12 08:18:41.328 914 996 E BatteryStatsService: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0} 05-12 08:20:26.555 914 3510 E ActivityManager: applyOptionsLocked: Unknown animationType=0 05-12 08:22:26.508 914 25453 E ActivityManager: applyOptionsLocked: Unknown animationType=0 05-12 08:22:52.140 914 1089 E ConnectivityService: RemoteException caught trying to send a callback msg for NetworkRequest [ id=348, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED] ] 05-12 08:22:52.239 914 995 E libprocessgroup: failed to kill 1 processes for processgroup 2807 05-12 08:23:35.788 914 3193 E NotificationService: Package enqueue rate is 10.233823. Shedding events. package=com.whatsapp 05-12 08:24:27.188 914 996 E BatteryStatsService: no controller energy info supplied 05-12 08:24:27.188 914 996 E BatteryStatsService: no controller energy info supplied 05-12 08:24:27.218 914 996 E BatteryStatsService: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0} 05-12 08:24:41.046 914 4449 E NotificationService: Package enqueue rate is 10.819949. Shedding events. package=com.whatsapp 05-12 08:25:29.835 914 996 E BatteryStatsService: no controller energy info supplied 05-12 08:25:29.835 914 996 E BatteryStatsService: no controller energy info supplied 05-12 08:25:30.450 914 996 E BatteryStatsService: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0} 05-12 08:26:36.798 914 2102 E NotificationService: Package enqueue rate is 10.691525. Shedding events. package=com.whatsapp 05-12 08:27:24.123 914 995 E libprocessgroup: failed to kill 1 processes for processgroup 4694 05-12 08:27:58.415 914 996 E BatteryStatsService: no controller energy info supplied 05-12 08:27:58.415 914 996 E BatteryStatsService: no controller energy info supplied 05-12 08:27:58.466 914 996 E BatteryStatsService: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0}

Video

https://youtu.be/Ac6-uqQqCjM

dnet commented 6 years ago

It's a bit similar to #20, you don't actually cancel the search by tapping outside the ProgressDialog -- although the dialog (as implemented by the Android framework) reacts to such taps by hiding itself, the search is still happening, so one of the searches will find itself in a bad situation. The first one to finish will launch the intent to open the PartList Activity, while the second will find itself in an awkward place.

I guess both this and #20 could be fixed by moving network operations (search and download) to services or something like that and reacting to user inputs (direct like cancelling and indirect like orientation change in #20) properly. Also, like #20, since it's a bit of an edge case and not trivial to fix, I can't say when I'll have the time to work on this. PRs are welcome!