Changed push state to opt-in and attempt to infer application context if it is not set