/*
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
*
* Copyright @ 2015 Atlassian Pty Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.java.sip.communicator.plugin.generalconfig.autoaway;
import net.java.sip.communicator.plugin.generalconfig.*;
import org.jitsi.service.configuration.*;
import org.jitsi.service.resources.*;
import java.beans.*;
/**
* Preferences for the Status Update
*
* @author Thomas Hofer
*
*/
public final class Preferences
{
/**
* Property indicating whether status change on away is enabled.
*/
private static final String ENABLE
= "net.java.sip.communicator.plugin.statusupdate.enable";
/**
* Property indicating the time in minutes to consider a pc in idle state.
*/
private static final String TIMER
= "net.java.sip.communicator.plugin.statusupdate.timer";
/**
* The default value to be displayed and to be considered
* for {@link Preferences#TIMER}.
*/
public static final int DEFAULT_TIMER = 15;
/**
* Whether change status on away is enabled.
* @return whether change status on away is enabled.
*/
static boolean isEnabled()
{
// if enabled start
String enabledDefault
= GeneralConfigPluginActivator.getResources().getSettingsString(
Preferences.ENABLE);
return
GeneralConfigPluginActivator
.getConfigurationService()
.getBoolean(
Preferences.ENABLE,
Boolean.parseBoolean(enabledDefault));
}
/**
* Returns the time in minutes to consider a pc in idle state.
* @return the time in minutes to consider a pc in idle state.
*/
static int getTimer()
{
ConfigurationService cfg
= GeneralConfigPluginActivator.getConfigurationService();
ResourceManagementService resources
= GeneralConfigPluginActivator.getResources();
String enabledDefault = resources.getSettingsString(Preferences.ENABLE);
String timerDefaultStr = resources.getSettingsString(Preferences.TIMER);
int timerDefault = DEFAULT_TIMER;
if (timerDefaultStr != null)
{
try
{
timerDefault = Integer.parseInt(timerDefaultStr);
}
catch (NumberFormatException nfe)
{
}
}
return
cfg.getBoolean(
Preferences.ENABLE,
Boolean.parseBoolean(enabledDefault))
? cfg.getInt(Preferences.TIMER, timerDefault)
: 0;
}
/**
* Save data in the configuration file
* @param enabled is enabled
* @param timer the time value to save
*/
static void saveData(boolean enabled, String timer)
{
ConfigurationService cfg
= GeneralConfigPluginActivator.getConfigurationService();
cfg.setProperty(Preferences.ENABLE, Boolean.toString(enabled));
cfg.setProperty(Preferences.TIMER, timer);
}
/**
* Adds listener to detect property changes.
* @param listener the listener to notify.
*/
static void addEnableChangeListener(PropertyChangeListener listener)
{
// listens for changes in configuration enable/disable
GeneralConfigPluginActivator
.getConfigurationService()
.addPropertyChangeListener(
ENABLE,
listener);
}
/**
* Adds listener to detect timer property changes.
* @param listener the listener to notify.
*/
static void addTimerChangeListener(PropertyChangeListener listener)
{
// listens for changes in configuration enable/disable
GeneralConfigPluginActivator
.getConfigurationService()
.addPropertyChangeListener(
TIMER,
listener);
}
}