Add network timeout preference and use timeout version of Future.get.
Lock screen widgets require a direct activity pending intent or won't prompt for lock code.