123 lines
6.9 KiB
Java
123 lines
6.9 KiB
Java
package net.i2p.android.i2ptunnel.activity;
|
|
|
|
import android.content.Context;
|
|
import android.content.res.Resources;
|
|
import net.i2p.android.router.R;
|
|
import net.i2p.android.wizard.model.AbstractWizardModel;
|
|
import net.i2p.android.wizard.model.BranchPage;
|
|
import net.i2p.android.wizard.model.Conditional;
|
|
import net.i2p.android.wizard.model.PageList;
|
|
import net.i2p.android.wizard.model.SingleFixedBooleanPage;
|
|
import net.i2p.android.wizard.model.SingleFixedChoicePage;
|
|
import net.i2p.android.wizard.model.SingleTextFieldPage;
|
|
|
|
public class TunnelWizardModel extends AbstractWizardModel {
|
|
public TunnelWizardModel(Context context) {
|
|
super(context);
|
|
}
|
|
|
|
@Override
|
|
protected PageList onNewRootPageList() {
|
|
Resources res = mContext.getResources();
|
|
Conditional cTunnelType = new Conditional();
|
|
Conditional cClientType = new Conditional();
|
|
Conditional cServerType = new Conditional();
|
|
|
|
return new PageList(
|
|
new BranchPage(this, res.getString(R.string.i2ptunnel_wizard_k_client_server))
|
|
.addBranch(res.getString(R.string.i2ptunnel_wizard_v_client),
|
|
new SingleFixedChoicePage(this, res.getString(R.string.i2ptunnel_wizard_k_type))
|
|
.setChoices(
|
|
res.getString(R.string.i2ptunnel_type_client),
|
|
res.getString(R.string.i2ptunnel_type_httpclient),
|
|
res.getString(R.string.i2ptunnel_type_ircclient),
|
|
res.getString(R.string.i2ptunnel_type_sockstunnel),
|
|
res.getString(R.string.i2ptunnel_type_socksirctunnel),
|
|
res.getString(R.string.i2ptunnel_type_connectclient),
|
|
res.getString(R.string.i2ptunnel_type_streamrclient))
|
|
.setRequired(true)
|
|
.makeConditional(cClientType))
|
|
.addBranch(res.getString(R.string.i2ptunnel_wizard_v_server),
|
|
new SingleFixedChoicePage(this, res.getString(R.string.i2ptunnel_wizard_k_type))
|
|
.setChoices(
|
|
res.getString(R.string.i2ptunnel_type_server),
|
|
res.getString(R.string.i2ptunnel_type_httpserver),
|
|
res.getString(R.string.i2ptunnel_type_httpbidirserver),
|
|
res.getString(R.string.i2ptunnel_type_ircserver),
|
|
res.getString(R.string.i2ptunnel_type_streamrserver))
|
|
.setRequired(true)
|
|
.makeConditional(cServerType))
|
|
.setRequired(true)
|
|
.makeConditional(cTunnelType),
|
|
|
|
new SingleTextFieldPage(this, res.getString(R.string.i2ptunnel_wizard_k_name))
|
|
.setDescription(res.getString(R.string.i2ptunnel_wizard_desc_name))
|
|
.setRequired(true),
|
|
|
|
new SingleTextFieldPage(this, res.getString(R.string.i2ptunnel_wizard_k_desc))
|
|
.setDescription(res.getString(R.string.i2ptunnel_wizard_desc_desc)),
|
|
|
|
new SingleTextFieldPage(this, res.getString(R.string.i2ptunnel_wizard_k_dest))
|
|
.setDescription(res.getString(R.string.i2ptunnel_wizard_desc_dest))
|
|
.setRequired(true)
|
|
.setEqualAnyCondition(cClientType,
|
|
res.getString(R.string.i2ptunnel_type_client),
|
|
res.getString(R.string.i2ptunnel_type_ircclient),
|
|
res.getString(R.string.i2ptunnel_type_streamrclient)),
|
|
|
|
new SingleTextFieldPage(this, res.getString(R.string.i2ptunnel_wizard_k_outproxies))
|
|
.setDescription(res.getString(R.string.i2ptunnel_wizard_desc_outproxies))
|
|
.setEqualAnyCondition(cClientType,
|
|
res.getString(R.string.i2ptunnel_type_httpclient),
|
|
res.getString(R.string.i2ptunnel_type_connectclient),
|
|
res.getString(R.string.i2ptunnel_type_sockstunnel),
|
|
res.getString(R.string.i2ptunnel_type_socksirctunnel)),
|
|
|
|
// Not set required because a default is specified.
|
|
// Otherwise user would need to edit the field to
|
|
// enable the Next button.
|
|
new SingleTextFieldPage(this, res.getString(R.string.i2ptunnel_wizard_k_target_host))
|
|
.setDefault("127.0.0.1")
|
|
.setDescription(res.getString(R.string.i2ptunnel_wizard_desc_target_host))
|
|
.setEqualCondition(cClientType,
|
|
res.getString(R.string.i2ptunnel_type_streamrclient))
|
|
.setEqualAnyCondition(cServerType,
|
|
res.getString(R.string.i2ptunnel_type_server),
|
|
res.getString(R.string.i2ptunnel_type_httpserver),
|
|
res.getString(R.string.i2ptunnel_type_httpbidirserver),
|
|
res.getString(R.string.i2ptunnel_type_ircserver)),
|
|
|
|
new SingleTextFieldPage(this, res.getString(R.string.i2ptunnel_wizard_k_target_port))
|
|
.setDescription(res.getString(R.string.i2ptunnel_wizard_desc_target_port))
|
|
.setRequired(true)
|
|
.setEqualCondition(cTunnelType, res.getString(R.string.i2ptunnel_wizard_v_server)),
|
|
|
|
// Not set required because a default is specified.
|
|
new SingleTextFieldPage(this, res.getString(R.string.i2ptunnel_wizard_k_reachable_on))
|
|
.setDefault("127.0.0.1")
|
|
.setDescription(res.getString(R.string.i2ptunnel_wizard_desc_reachable_on))
|
|
.setEqualAnyCondition(cClientType,
|
|
res.getString(R.string.i2ptunnel_type_client),
|
|
res.getString(R.string.i2ptunnel_type_httpclient),
|
|
res.getString(R.string.i2ptunnel_type_ircclient),
|
|
res.getString(R.string.i2ptunnel_type_sockstunnel),
|
|
res.getString(R.string.i2ptunnel_type_socksirctunnel),
|
|
res.getString(R.string.i2ptunnel_type_connectclient))
|
|
.setEqualAnyCondition(cServerType,
|
|
res.getString(R.string.i2ptunnel_type_httpbidirserver),
|
|
res.getString(R.string.i2ptunnel_type_streamrserver)),
|
|
|
|
new SingleTextFieldPage(this, res.getString(R.string.i2ptunnel_wizard_k_binding_port))
|
|
.setDescription(res.getString(R.string.i2ptunnel_wizard_k_binding_port))
|
|
.setRequired(true)
|
|
.setEqualCondition(cTunnelType, res.getString(R.string.i2ptunnel_wizard_v_client))
|
|
.setEqualCondition(cServerType, res.getString(R.string.i2ptunnel_type_httpbidirserver)),
|
|
|
|
new SingleFixedBooleanPage(this, res.getString(R.string.i2ptunnel_wizard_k_auto_start))
|
|
.setDescription(res.getString(R.string.i2ptunnel_wizard_desc_auto_start))
|
|
.setRequired(true)
|
|
);
|
|
}
|
|
|
|
}
|