Sync default timezone to ICU.

When java.util.TimeZone.setDefault() is called (either by client code or
from ActivityThread.updateTimeZone due to ACTION_TIMEZONE_CHANGED) we
need to notify android.icu.util.TimeZone of this change, as it keeps a
cached android.icu.util.TimeZone object to represent that default value.

android.icu.util.TimeZone.setTimeZone would be the obvious candidate
here. Unfortunately that method was hidden to have a single consistent
way to set the timezone and tries to do some extra work that is
undesireable on Android.

To avoid potential loops of ICU setDefault calling JDK setDefault and
vice versa, we remove the ICU setDefault.

Bug: 28949992

(cherry picked from commit f59264d36afd660c69d3b9dff46bc35d57e7c94f)

Change-Id: Iaa63c2d77a4d345ee9af2d7d0c268746f6c101d3
2 files changed