So I found something weird about GoogleApiClient.
That's if you change the handheld's time to future (change it to a few days ahead), then sync some data via DataApi to wearable, then change back to correct time (use Automatic date & time), then sync some data via DataApi again, this time DataListener's onDataChanged which is registered on wearable will NOT be called.
If you change handheld's time to the future time you changed at the first time (or further time in the future), the DataApi works properly again.
So I really want to confirm that it's designed that way or it's just a bug?
P/S: it behaved the same when I tested on both com.google.android.gms:play-services:7.5.0
and com.google.android.gms:play-services:7.8.0