Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c38da87 authored by Jef Oliver's avatar Jef Oliver Committed by Gerrit Code Review
Browse files

Merge "Lockscreen: Keep weather info up to date" into jellybean

parents 9366afd0 30054ce5
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -290,6 +290,7 @@ class KeyguardStatusViewManager implements OnClickListener {
    private static WeatherInfo mWeatherInfo = new WeatherInfo();
    private static final int QUERY_WEATHER = 0;
    private static final int UPDATE_WEATHER = 1;
    private boolean mWeatherRefreshing;

    private Handler mHandler = new Handler() {
        @Override
@@ -345,6 +346,7 @@ class KeyguardStatusViewManager implements OnClickListener {
                        mHandler.sendMessage(msg);
                    }
                });
                mWeatherRefreshing = true;
                queryWeather.setPriority(Thread.MIN_PRIORITY);
                queryWeather.start();
                break;
@@ -359,6 +361,7 @@ class KeyguardStatusViewManager implements OnClickListener {
                        w = parseXml(getDocument(woeid));
                    } catch (Exception e) {
                    }
                    mWeatherRefreshing = false;
                    if (w == null) {
                        setNoWeatherData();
                    } else {
@@ -366,6 +369,7 @@ class KeyguardStatusViewManager implements OnClickListener {
                        mWeatherInfo = w;
                    }
                } else {
                    mWeatherRefreshing = false;
                    if (mWeatherInfo.temp.equals(WeatherInfo.NODATA)) {
                        setNoWeatherData();
                    } else {
@@ -389,7 +393,9 @@ class KeyguardStatusViewManager implements OnClickListener {
                    Settings.System.WEATHER_UPDATE_INTERVAL, 60); // Default to hourly
            boolean manualSync = (interval == 0);
            if (!manualSync && (((System.currentTimeMillis() - mWeatherInfo.last_sync) / 60000) >= interval)) {
                if (!mWeatherRefreshing) {
                    mHandler.sendEmptyMessage(QUERY_WEATHER);
                }
            } else if (manualSync && mWeatherInfo.last_sync == 0) {
                setNoWeatherData();
            } else {
@@ -437,7 +443,7 @@ class KeyguardStatusViewManager implements OnClickListener {
                mWeatherCity.setText(w.city);
                mWeatherCity.setVisibility(showLocation ? View.VISIBLE : View.GONE);
            }
            if (mWeatherCondition != null) {
            if (mWeatherCondition != null && !mWeatherRefreshing) {
                mWeatherCondition.setText(w.condition);
                mWeatherCondition.setVisibility(View.VISIBLE);
            }
@@ -476,7 +482,7 @@ class KeyguardStatusViewManager implements OnClickListener {
                mWeatherCity.setText(R.string.weather_no_data);
                mWeatherCity.setVisibility(View.VISIBLE);
            }
            if (mWeatherCondition != null) {
            if (mWeatherCondition != null && !mWeatherRefreshing) {
                mWeatherCondition.setText(R.string.weather_tap_to_refresh);
            }
            if (mWeatherUpdateTime != null) {
@@ -666,6 +672,7 @@ class KeyguardStatusViewManager implements OnClickListener {
        if (mDigitalClock != null) {
            mDigitalClock.updateTime();
        }
        refreshWeather();

        mUpdateMonitor.registerInfoCallback(mInfoCallback);
        mUpdateMonitor.registerSimStateCallback(mSimStateCallback);
@@ -1020,6 +1027,7 @@ class KeyguardStatusViewManager implements OnClickListener {
        @Override
        public void onTimeChanged() {
            refreshDate();
            refreshWeather();
        }

        @Override
@@ -1054,7 +1062,7 @@ class KeyguardStatusViewManager implements OnClickListener {
            }

            mCallback.pokeWakelock();
            if (!mHandler.hasMessages(QUERY_WEATHER)) {
            if (!mWeatherRefreshing) {
                mHandler.sendEmptyMessage(QUERY_WEATHER);
            }
        }