Android Open Source - android-NSUWeather Storage






From Project

Back to project page android-NSUWeather.

License

The source code is released under:

MIT License

If you think the Android project android-NSUWeather listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * The MIT License (MIT)//from   w  w w . j  av  a  2s  .co  m
 *
 * Copyright (c) 2014 Maxim Belsky
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

package com.mbelsky.nsuweather.preferences;

import android.content.Context;
import android.content.SharedPreferences;
import com.mbelsky.framework.tools.ArgumentsValidator;
import com.mbelsky.nsuweather.R;

import java.util.Date;

/**
 * User: mbelsky
 * Date: 23.08.13
 * Time: 3:45
 */
public class Storage {

    private static final String PREFERENCE_KEY = "com.mbelsky.nsuweather.preferences.Storage.PREFERENCE_KEY";
    private static final String TEMPERATURE_PREFERENCE_KEY = "com.mbelsky.nsuweather.preferences.Storage.TEMPERATURE_PREFERENCE_KEY";
    private static final String UPDATE_TIME_PREFERENCE_KEY = "com.mbelsky.nsuweather.preferences.Storage.UPDATE_TIME_PREFERENCE_KEY";

    public static final String DEFAULT_VALUE = "???";
    public static final int DEFAULT_LAST_UPDATE_TIME_VALUE = 0;

    private static Storage instance;

    private String lastTemperature;
    private Date lastUpdateTime;

    private final SharedPreferences preferences;
    private final int widgetUpdatePeriod;

    private Storage(final Context context) {
        ArgumentsValidator.isNull(context);
        widgetUpdatePeriod = context.getResources().getInteger(R.integer.widget_update_period);
        preferences = context.getSharedPreferences(PREFERENCE_KEY, Context.MODE_PRIVATE);

        lastTemperature = preferences.getString(TEMPERATURE_PREFERENCE_KEY, DEFAULT_VALUE);
        final long _lastUpdateTime = preferences
                .getLong(UPDATE_TIME_PREFERENCE_KEY, DEFAULT_LAST_UPDATE_TIME_VALUE);
        lastUpdateTime = new Date(_lastUpdateTime);
    }

    public synchronized String getLastTemperature() {
        return lastTemperature;
    }

    public synchronized void setLastTemperature(final String lastTemperature) {
        this.lastTemperature = lastTemperature;
    }

    public synchronized Date getLastUpdateTime() {
        return new Date(lastUpdateTime.getTime());
    }

    public synchronized void setLastUpdateTime(final Date lastUpdateTime) {
        this.lastUpdateTime.setTime(lastUpdateTime.getTime());
    }

    public synchronized void save() {
        preferences.edit().putString(TEMPERATURE_PREFERENCE_KEY, lastTemperature)
                   .putLong(UPDATE_TIME_PREFERENCE_KEY, lastUpdateTime.getTime()).commit();
    }

    public static synchronized Storage getInstance(final Context context) {
        if ( null == instance ) {
            instance = new Storage(context);
        }

        return instance;
    }

    public boolean canBeUpdated() {
        final long timeDelta = new Date().getTime() - lastUpdateTime.getTime();
        return ( timeDelta >= widgetUpdatePeriod );
    }
}




Java Source Code List

com.mbelsky.nsuweather.activity.SettingsActivity.java
com.mbelsky.nsuweather.http.NetworkConstants.java
com.mbelsky.nsuweather.http.parser.WeatherResponseParser.java
com.mbelsky.nsuweather.http.request.WeatherRequest.java
com.mbelsky.nsuweather.model.Weather.java
com.mbelsky.nsuweather.preferences.Storage.java
com.mbelsky.nsuweather.service.UpdateWeatherService.java
com.mbelsky.nsuweather.utils.AppWidgetHelper.java
com.mbelsky.nsuweather.utils.Formatter.java
com.mbelsky.nsuweather.utils.ViewHelper.java
com.mbelsky.nsuweather.view.LastUpdateTimeView.java
com.mbelsky.nsuweather.view.NoConnectionView.java
com.mbelsky.nsuweather.view.TemperatureView.java
com.mbelsky.nsuweather.widgetprovider.WeatherWidgetProvider.java