Opened 5 years ago

Last modified 12 months ago

#13 new change

Investigate UI freeze on main activity start

Reported by: trev Assignee:
Priority: P3 Milestone:
Module: Adblock-Plus-for-Android Keywords:
Cc: Blocked By:
Blocking: Platform: Android
Ready: yes Confidential: no
Tester: Verified working: no
Review URL(s):

Description

Background

See #7.

What to change

Investigate UI freeze on main activity start

Change History (18)

comment:1 Changed 5 years ago by philll

  • Blocking 7 added

comment:2 Changed 5 years ago by philll

  • Keywords libadblockplus integration cleanup removed

comment:3 Changed 5 years ago by trev

  • Component changed from Unknown to ABP-Android

comment:4 Changed 5 years ago by philll

  • Owner set to rjeschke
  • Status changed from new to assigned

comment:5 Changed 5 years ago by fhd

  • Priority changed from Unknown to P3

comment:6 Changed 5 years ago by fhd

  • Cc trev added
  • Priority changed from P3 to Unknown

Adding Wladimir, I think he created this originally. Do you remember how this can be reproduced?

comment:7 Changed 5 years ago by fhd

  • Owner rjeschke deleted

comment:8 Changed 5 years ago by fhd

  • Status changed from assigned to accepted

comment:9 Changed 5 years ago by fhd

  • Priority changed from Unknown to P3

comment:10 Changed 5 years ago by trev

  • Reporter changed from philll to trev

Yes, I reported this originally - this was something nobody else could reproduce. The UI would freeze when I enabled Adblock Plus in its settings. Not sure whether this is still an issue (the report is very old), will check.

comment:11 Changed 5 years ago by philll

  • Status changed from accepted to new

comment:12 Changed 5 years ago by rjeschke

  • Ready unset

This issue still exists. I can reproduce this on my Galaxy S2.

It is caused by the full engine startup on opening the preferences app. There are now two ways to fix this:

  1. Perform the engine startup in a background thread, display a beach-ball and update/unlock the UI when startup is done
  2. As the proxy already runs as a service, we could of course just use the already running engine there. This would introduce some IPC/broadcasting to retrieve the needed infos but would speed up the preferences app's startup.

The second solution would definitely need more code refactoring and would need to be combined with solution 1 when there's no service running.

I'm still undecided on this issue's fix and would appreciate any input on this.

Also: shouldn't this be more like P2? Seems to me as a major pita.

Last edited 5 years ago by rjeschke (previous) (diff)

comment:13 Changed 5 years ago by trev

You are saying that two instances of the engine are currently running when we open preferences? Then - yes, we definitely need to fix that. I assumed that the UI already worked by querying the service.

comment:14 Changed 5 years ago by rjeschke

  • Blocking 7 removed
  • Priority changed from P3 to P2
  • Summary changed from [libadblockplus integration cleanup] Investigate UI freeze on main activity start to Investigate UI freeze on main activity start

comment:15 Changed 5 years ago by rjeschke

Currently 'won't fix', explanation follows:

ABP for Android uses a service for filtering through the proxy. This service is a 'bound' service which is directly attached to the application (the preferences).

It seems like this service sometimes just dies without any notification which causes the long start-up delay.

A possible solution would be to use a 'real' service (i.e. a foreground service running in its own process). But this is now minor fix as this would create a real separation between the preferences and the proxy which then requires IPC to communicate.

So, currently this issue is 'backlogged'.

comment:16 Changed 5 years ago by rjeschke

  • Priority changed from P2 to P3

comment:17 Changed 4 years ago by rjeschke

  • Platform set to Android
  • Ready set

comment:18 Changed 12 months ago by fhd

  • Cc trev removed
Note: See TracTickets for help on using tickets.