package de.fun2code.android.piratebox.handler;
import sunlabs.brazil.server.Server;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import de.fun2code.android.piratebox.Constants;
import de.fun2code.android.piratebox.PirateBoxService;
import de.fun2code.android.piratebox.R;
/**
* Wrapper class for the original PAW @{code PirateBoxFileHandler} to supper
* the PirateBox {@literal domainName} preference
*
* @author joschi
*
*/
public class PirateBoxFileHandler extends org.paw.handler.PirateBoxFileHandler {
/*
* Regular expression taken from:
* http://www.mkyong.com/regular-expressions/domain-name-regular-expression-example/
*/
private static final String DOMAIN_NAME_PATTERN = "^[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,})$";
@Override
public boolean init(Server server, String prefix) {
/*
* Do some sanity check
* If domain name is valid set the DOMAIN property
*/
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(PirateBoxService.getService());
String domain = prefs.getString(Constants.PREF_DOMAIN_NAME,
PirateBoxService.getService().getResources().getString(R.string.pref_domain_name_default));
if(domain.matches(DOMAIN_NAME_PATTERN)) {
server.props.setProperty(prefix + DOMAIN, domain);
}
return super.init(server, prefix);
}
}