Status Update
Comments
le...@googlemail.com <le...@googlemail.com> #2
this would be nice but given Compose and all other priorities, we are not planning to make any big investments in data binding (support KSP is a very big task).
ct...@gmail.com <ct...@gmail.com> #3
Makes sense. And is there any way to trigger data binding without kapt plugin, assuming there are no custom binding adapters in given module?
jo...@gmail.com <jo...@gmail.com> #4
unfortunately no. data binding still needs to be able to read your code and annotation processing is the only API that allows us to do it :(
re...@gmail.com <re...@gmail.com> #5
It's a very disappointing decision for many projects who heavily depend on data binding, which will never be able to get rid of all bindings code and especially rewrite all UI to Compose.
It means that bindings are essentially deprecated
[Deleted User] <[Deleted User]> #6
It does not mean data binding is deprecated unless KAPT is deprecated (if that happens, we would need to support KSP).Unfortunately, moving data binding to KSP is a large order so it makes more sense to keep focusing on KAPT than rewrite data binding.
We might re-consider this in the future based on KSP becoming stable, Compose adoption and KAPT stability but it is very unlikely to happen.
ro...@gmail.com <ro...@gmail.com> #8
Unfortunately this is still a NO for 2022 planning due to reasons mentioned in #2.
dg...@gmail.com <dg...@gmail.com> #9
kapt seems no longer adding new feature
kapt is in maintenance mode. We are keeping it up-to-date with recent Kotlin and Java releases but have no plans to implement new features. Please use the Kotlin Symbol Processing API (KSP) for annotation processing. See the list of libraries supported by KSP.
So this mean databinding will also deprecated or will be support KSP?
ro...@gmail.com <ro...@gmail.com> #10
We don't plan to support KSP nor recommend data binding usage at this stage since compose is our recommended UI solution.
ro...@gmail.com <ro...@gmail.com> #11
We don't plan to support KSP nor recommend data binding usage at this stage since compose is our recommended UI solution.
I have been waited this answer in several years.
Because it is an important basis to convince co-workers and for determining the technology stack of an app.
ro...@gmail.com <ro...@gmail.com> #12
Databinding is in maintenance mode as well.
We don't plan to support KSP nor recommend data binding usage at this stage since compose is our recommended UI solution.
A bit of a tangent here, but what about ViewBinding? Will that one stay going strong or will it fade along with DataBinding?
ro...@gmail.com <ro...@gmail.com> #13
So if you are using Views, ViewBinding will keep working.
It is the same for Data Binding as well though. The main difference is that if KAPT stops working, DataBinding will stop working whereas ViewBinding will keep working. Hopefully, any such situation will be far enough that no-one will care and everyone will be using Compose :)
gl...@gmail.com <gl...@gmail.com> #16
#14 Kapt will be supported on K2, there are no plans to stop supporting it in Kotlin
dg...@gmail.com <dg...@gmail.com> #17
da...@gmail.com <da...@gmail.com> #18
ma...@googlemail.com <ma...@googlemail.com> #19
le...@googlemail.com <le...@googlemail.com> #20
So you can see that equality of handling is very important over at Google HQ and they should be commended for that.
ma...@googlemail.com <ma...@googlemail.com> #21
al...@gmail.com <al...@gmail.com> #22
It reduced the value of Tasker app as I can't have commands to be executed in certain locations without screen being on.
pe...@gartenzwerg-records.de <pe...@gartenzwerg-records.de> #23
gl...@gmail.com <gl...@gmail.com> #24
I guess we're stuck with 2.1 till this show-stopper gets fixed :/
pc...@gmail.com <pc...@gmail.com> #25
pc...@gmail.com <pc...@gmail.com> #26
ca...@gmail.com <ca...@gmail.com> #27
What upsets me is that there is no clear mention of this in the documentation.
yo...@gmail.com <yo...@gmail.com> #28
yo...@gmail.com <yo...@gmail.com> #29
LocationListener can be updated every 10 seconds, even when the phone is off. But for CellListener, it's not working !
It make not sense at all !
Cell event are less intensive of network Location I think. I don't see any good reason to do like that.
(I try with a Handler fetching TelephonyManager.getCellLocation() every 10 seconds to see if it's updated without an event, but there is no way. I can fetch it every 1 milliseconds if I way, using how many battery, cpu time, I want with this timer, but the cell ID is not updated ...)
gv...@gmail.com <gv...@gmail.com> #30
yo...@gmail.com <yo...@gmail.com> #31
In com.android.internal.telephony.RIL object
This is the very lower level object I found : this object seems to communicate to the RIL Server via RIL Socket :
s = new LocalSocket();
l = new LocalSocketAddress(SOCKET_NAME_RIL,
LocalSocketAddress.Namespace.RESERVED);
s.connect(l);
And now, I try to switch 3G => 2G, and switch immediatly to screen Off.
I got lots of line like :
D/RILJ ( 247): [0457]< REGISTRATION_STATE {1, null, null, 3, null, null, null, null, null, null, null, null, null, null}
(That mean, no Cell registered (null, null)
I way like 1 minutes, and still no good line.
But, when I switch the screen ON, RILJ receive 2 events. Firstly :
SCREEN_STATE: true
And then :
REGISTRATION_STATE {1, 4E3F, 0003975A, 3,
So, the RIL server seems to block updates.
Full logs :
D/RILJ ( 247): [0469]< REGISTRATION_STATE {1, null, null, 3, null, null, null, null, null, null, null, nul
l, null, null}
D/RILJ ( 247): [0470]< QUERY_NETWORK_SELECTION_MODE {0}
D/GSM ( 247): Poll ServiceState done: oldSS=[0 home BYTEL (N/A) 20820 EDGE CSS not supported -1 -1RoamI
nd: -1DefRoamInd: -1EmergOnly: false] newSS=[0 home BYTEL (N/A) 20820 UMTS CSS not supported -1 -1RoamInd: -1
DefRoamInd: -1EmergOnly: false] oldGprs=0 newGprs=0 oldType=EDGE newType=UMTS
D/GSM ( 247): RAT switched EDGE -> UMTS at cell -1
D/RILJ ( 247): [0471]> SCREEN_STATE: true
D/GSM ( 247): [DataConnection] Stop poll NetStat
D/RILJ ( 247): [UNSL]< UNSOL_RESPONSE_NETWORK_STATE_CHANGED
D/RILJ ( 247): [0471]< SCREEN_STATE error: com.android.internal.telephony.CommandException: GENERIC_FAILUR
E
D/RILJ ( 247): [0472]> OPERATOR
D/RILJ ( 247): [0473]> GPRS_REGISTRATION_STATE
D/RILJ ( 247): [0472]< OPERATOR {BYTEL, (N/A), 20820}
D/RILJ ( 247): [0474]> REGISTRATION_STATE
D/RILJ ( 247): [0473]< GPRS_REGISTRATION_STATE {1, null, null, 3}
D/RILJ ( 247): [0475]> QUERY_NETWORK_SELECTION_MODE
D/RILJ ( 247): [0474]< REGISTRATION_STATE {1, 4E3F, 0003975A, 3, null, null, null, null, null, null, null,
null, null, null}
yo...@gmail.com <yo...@gmail.com> #32
You just need to register a LocationListener with NETWORK_PROVIDER
this.my_listener = new MyLocationListener(); // Extends LocationListener
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this.my_listener);
This listener will force Android to update the CellID (for location purpose). The update is a bit random (~30-60 sec) but it will be updated.
So your other Listener (PhoneStateListener) will be updated.
onCellLocationChanged(CellLocation cell) will be called.
sa...@gmail.com <sa...@gmail.com> #33
da...@gmail.com <da...@gmail.com> #34
Also bear in mind that addProximityAlert explicitly says "In case the screen goes to sleep, checks for proximity alerts happen only once every 4 minutes. This conserves battery life by ensuring that the device isn't perpetually awake.", whereas requestLocationUpdates makes no such guarantees.
* I don't have first-hand experience of these phones, and am relying on user reports.
yo...@gmail.com <yo...@gmail.com> #35
LocationListener is available in the Android API.
It's a permanent fix for all Android version. It's working without any data available, and even if the CellID is not registered in the CellID database.
If the phone couldn't find the cell location (in the remote CellID location database), you will not have the LocationManager.NETWORK_PROVIDER event (with log/lat coordinates), but you will have the onCellLocationChanged anyway (and that interest us).
The only ROM I found, that don't work, is a ROM which don't have Google's things installed, because I think that this rom don't have access to the remote CellID location database, so the locations updates are disabled.
dc...@gmail.com <dc...@gmail.com> #36
this.my_listener = new MyLocationListener(); // Extends LocationListener
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this.my_listener);
And that fixes the problem? Can anybody on this thread write that app and make it available to people?
ca...@gmail.com <ca...@gmail.com> #37
I tried this on my nexus one running android 2.3.6. I can provide the source code for the test case if anyone is interested.
yo...@gmail.com <yo...@gmail.com> #38
ca...@gmail.com <ca...@gmail.com> #39
ca...@gmail.com <ca...@gmail.com> #40
yo...@gmail.com <yo...@gmail.com> #41
Can you add it ?
Because you receive CellLocation update before the NetworkLocation (Because the LocationManager need the CellID to locate the cellphone). And sometimes, I receive a CellLocation update without NetworkLocation update (when Android don't succed to locate the Cell).
By the way, I don't check the validity of NetworkLocation coordinates. Only see that CellLocation was updated.
ya...@gmail.com <ya...@gmail.com> #42
The weird thing is that once I activated Airplane Mode it stopped receiving valid cells (which of course makes sense...) but when I deactivated the Airplane Mode, the requestLocationUpdates no longer worked and I didn't receive any cell updates when the device was asleep.
Could it be that deactivating Airplane Mode does not fully wake the device radio ?? Is it just a ROM-specific issue ? (I'm running CM 7.1) Is there any other way to *realy* deactivate Airplane Mode ?
yo...@gmail.com <yo...@gmail.com> #43
- You launch your application
- Even if the screen if off, the cellid is updated
- You activate, then desactivate AirPlane mode
- The cellid is never updated even if the screen is on ?
CellId received when AirPlane mode is -1 , -1 . Do you receive this ?
When you reactivate AirPlane mode, you should receive immediatly the last know cell (depends on ROM I think, because seems like a bug).
ya...@gmail.com <ya...@gmail.com> #44
As for the last step - when the screen is on, I receive the location updates as expected (or if I use the SCREEN_DIM_WAKELOCK), but when the screen is off I only receive the last known cell.
And yes, during Airplane Mode I do receive the -1, -1...
yo...@gmail.com <yo...@gmail.com> #45
ya...@gmail.com <ya...@gmail.com> #46
yo...@gmail.com <yo...@gmail.com> #47
I turned on Air plane mode some times, and I never loose CellLocation updates.
pi...@gmail.com <pi...@gmail.com> #48
is the Tasker %CELLID variable then just the cached cell id and also doesn't get updated while the display is off?
pe...@gmail.com <pe...@gmail.com> #49
Is it possible to solve this issue for Tasker users or is it only possible for real app inventors who can add special services?
ot...@gmail.com <ot...@gmail.com> #50
It show the device incompatible.
I have two phones, it's work on HTC Sensation XL.
Could you provide the apk file to direct install in on the Desire HD device ??
pc...@gmail.com <pc...@gmail.com> #51
sa...@gmail.com <sa...@gmail.com> #52
Here's my comment for
No updates are transmitted to the car kit if the screen is off and only the old values are transmitted if the status is requested by the car kit itself.
So it's always a surprise if you start a call using the Hands-Free unit of your car and get the status updates (not available or not) as soon as the screen is switched on by the initiated call (probably in your pocket).
I'm involved in the development of head units at a german automobile manufacturer and this problem is very "android special". I don't know any other up-to-date mobile platform which behaves like this.
With the current behaviour it's not really useful to display the signal strength and network registration in your car if they are so outdated nearly all the time.
ms...@gmail.com <ms...@gmail.com> #53
What is Llama doing that Tasker is unable to?
ke...@gmail.com <ke...@gmail.com> #54
"In case the screen goes to sleep, checks for proximity alerts happen only once every 4 minutes. This conserves battery life by ensuring that the device isn't perpetually awake."
However, this is not without issue. Some phones refuse to send location updates with the screen off, despite that API saying that they are supposed to.
Additionally, if the proximity alert was left active forever, some phones will stay awake forever (draining battery) because of a wake-lock. That API also uses GPS, so if GPS is enabled then GPS would be in use forever (more battery drain).
ms...@gmail.com <ms...@gmail.com> #56
Tomi - thanks for the workaround.
ab...@gmail.com <ab...@gmail.com> #57
pi...@gmail.com <pi...@gmail.com> #58
iv...@gmail.com <iv...@gmail.com> #59
iv...@gmail.com <iv...@gmail.com> #60
Closing the app and re-opening it is the only way to "fix" it. It seems to trigger some sort of background refresh about 1-3 seconds after the app is re-opened. App is closed via system.exit, unsure about just backgrounding it. Tests were done over multiple days with screen forced on/full wake lock.
All the above was tested with a Galaxy Nexus and a phone that had 2.3 and was upgraded to 4.0.4. So it is an ICS issue from what I can tell.
pi...@gmail.com <pi...@gmail.com> #61
lu...@gmail.com <lu...@gmail.com> #62
android ver. 4.1.2
ma...@gmail.com <ma...@gmail.com> #63
- LocationListener does send updates even when screen off (proximity or requestupdate)
- without access to google servers, LocationListener does not generate update events unless internal cache.wifi or cache.cell files contain caching info about the current area
In cache or from google: D/CellLocator( 290): Found cell location: Position [redacted]
Internet disabled: D/CellLocator( 290): Primary cell miss in cache. Need server request.
Upon location success: D/androidNlpServiceThread( 290): reporting Location[mProvider=network,mTime=1361813171057,mLatitude=XXX.XXX,mLongitude=XXX.XXX,mHasAltitude=false,mAltitude=0.0,mHasSpeed=false,mSpeed=0.0,mHasBearing=false,mBearing=0.0,mHasAccuracy=true,mAccuracy=959.0,mExtras=Bundle[{networkLocationSource=cached, networkLocationType=cell}]]
- listen_cell_location only works when screen is on
I believe google deliberately disables cell_location listener for "long running" apps, so to force developers to use google api for location updates which besides requesting data also generates massive real-time global positioning info. Upon every location request to google the device posts its cell-id and wifi ssids around. This is the reason why the cache expiration of such records are around 24h for cellid and 48h for ssid.
ec...@gmail.com <ec...@gmail.com> #64
But when i try running using the 4.x devices, my apps works well. Seems like version issue can be a cause.
fa...@gmail.com <fa...@gmail.com> #65
de...@email.com <de...@email.com> #66
I get updates on LISTEN_CELL_LOCATION even if the screen is off. Then, I use Location Manager to get the current position on Network Provider.
The cellID is also updated when LISTEN_CELL_LOCATION is triggered.
Description
LISTEN_CELL_LOCATION.
If the wakelock is PARTIAL, the listener will not receive any cell location
updates. If the wakelock is SCREEN_DIM, the listener WILL receive
updates.
It's not relevant whether the device has power or not.
- What you think the correct behavior should be.
The screen should not need to be on to receive cell location updates.
Tested on Nexus One, 2.2.