/*
Defines base attributes of a bookmark object
Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
If a copy of the MPL was not distributed with this file, You can obtain one at
http://mozilla.org/MPL/2.0/.
*/
package com.freerdp.freerdpcore.domain;
import android.content.SharedPreferences;
import android.os.Parcel;
import android.os.Parcelable;
import com.freerdp.freerdpcore.application.GlobalApp;
import java.util.Locale;
public class BookmarkBase implements Parcelable, Cloneable
{
public static final int TYPE_INVALID = -1;
public static final int TYPE_MANUAL = 1;
public static final int TYPE_QUICKCONNECT = 2;
public static final int TYPE_PLACEHOLDER = 3;
public static final int TYPE_CUSTOM_BASE = 1000;
public static final Parcelable.Creator<BookmarkBase> CREATOR =
new Parcelable.Creator<BookmarkBase>() {
public BookmarkBase createFromParcel(Parcel in)
{
return new BookmarkBase(in);
}
@Override public BookmarkBase[] newArray(int size)
{
return new BookmarkBase[size];
}
};
protected int type;
private long id;
private String label;
private String username;
private String password;
private String domain;
private ScreenSettings screenSettings;
private PerformanceFlags performanceFlags;
private AdvancedSettings advancedSettings;
private DebugSettings debugSettings;
public BookmarkBase(Parcel parcel)
{
type = parcel.readInt();
id = parcel.readLong();
label = parcel.readString();
username = parcel.readString();
password = parcel.readString();
domain = parcel.readString();
screenSettings = parcel.readParcelable(ScreenSettings.class.getClassLoader());
performanceFlags = parcel.readParcelable(PerformanceFlags.class.getClassLoader());
advancedSettings = parcel.readParcelable(AdvancedSettings.class.getClassLoader());
debugSettings = parcel.readParcelable(DebugSettings.class.getClassLoader());
}
public BookmarkBase()
{
init();
}
private void init()
{
type = TYPE_INVALID;
id = -1;
label = "";
username = "";
password = "";
domain = "";
screenSettings = new ScreenSettings();
performanceFlags = new PerformanceFlags();
advancedSettings = new AdvancedSettings();
debugSettings = new DebugSettings();
}
@SuppressWarnings("unchecked") public <T extends BookmarkBase> T get()
{
return (T)this;
}
public int getType()
{
return type;
}
public long getId()
{
return id;
}
public void setId(long id)
{
this.id = id;
}
public String getLabel()
{
return label;
}
public void setLabel(String label)
{
this.label = label;
}
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getDomain()
{
return domain;
}
public void setDomain(String domain)
{
this.domain = domain;
}
public ScreenSettings getScreenSettings()
{
return screenSettings;
}
public void setScreenSettings(ScreenSettings screenSettings)
{
this.screenSettings = screenSettings;
}
public PerformanceFlags getPerformanceFlags()
{
return performanceFlags;
}
public void setPerformanceFlags(PerformanceFlags performanceFlags)
{
this.performanceFlags = performanceFlags;
}
public AdvancedSettings getAdvancedSettings()
{
return advancedSettings;
}
public void setAdvancedSettings(AdvancedSettings advancedSettings)
{
this.advancedSettings = advancedSettings;
}
public DebugSettings getDebugSettings()
{
return debugSettings;
}
public void setDebugSettings(DebugSettings debugSettings)
{
this.debugSettings = debugSettings;
}
public ScreenSettings getActiveScreenSettings()
{
return (GlobalApp.ConnectedTo3G && advancedSettings.getEnable3GSettings())
? advancedSettings.getScreen3G()
: screenSettings;
}
public PerformanceFlags getActivePerformanceFlags()
{
return (GlobalApp.ConnectedTo3G && advancedSettings.getEnable3GSettings())
? advancedSettings.getPerformance3G()
: performanceFlags;
}
@Override public int describeContents()
{
return 0;
}
@Override public void writeToParcel(Parcel out, int flags)
{
out.writeInt(type);
out.writeLong(id);
out.writeString(label);
out.writeString(username);
out.writeString(password);
out.writeString(domain);
out.writeParcelable(screenSettings, flags);
out.writeParcelable(performanceFlags, flags);
out.writeParcelable(advancedSettings, flags);
out.writeParcelable(debugSettings, flags);
}
// write to shared preferences
public void writeToSharedPreferences(SharedPreferences sharedPrefs)
{
Locale locale = Locale.ENGLISH;
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.clear();
editor.putString("bookmark.label", label);
editor.putString("bookmark.username", username);
editor.putString("bookmark.password", password);
editor.putString("bookmark.domain", domain);
editor.putInt("bookmark.colors", screenSettings.getColors());
editor.putString("bookmark.resolution",
screenSettings.getResolutionString().toLowerCase(locale));
editor.putInt("bookmark.width", screenSettings.getWidth());
editor.putInt("bookmark.height", screenSettings.getHeight());
editor.putBoolean("bookmark.perf_remotefx", performanceFlags.getRemoteFX());
editor.putBoolean("bookmark.perf_gfx", performanceFlags.getGfx());
editor.putBoolean("bookmark.perf_gfx_h264", performanceFlags.getH264());
editor.putBoolean("bookmark.perf_wallpaper", performanceFlags.getWallpaper());
editor.putBoolean("bookmark.perf_font_smoothing", performanceFlags.getFontSmoothing());
editor.putBoolean("bookmark.perf_desktop_composition",
performanceFlags.getDesktopComposition());
editor.putBoolean("bookmark.perf_window_dragging", performanceFlags.getFullWindowDrag());
editor.putBoolean("bookmark.perf_menu_animation", performanceFlags.getMenuAnimations());
editor.putBoolean("bookmark.perf_themes", performanceFlags.getTheming());
editor.putBoolean("bookmark.enable_3g_settings", advancedSettings.getEnable3GSettings());
editor.putInt("bookmark.colors_3g", advancedSettings.getScreen3G().getColors());
editor.putString("bookmark.resolution_3g",
advancedSettings.getScreen3G().getResolutionString().toLowerCase(locale));
editor.putInt("bookmark.width_3g", advancedSettings.getScreen3G().getWidth());
editor.putInt("bookmark.height_3g", advancedSettings.getScreen3G().getHeight());
editor.putBoolean("bookmark.perf_remotefx_3g",
advancedSettings.getPerformance3G().getRemoteFX());
editor.putBoolean("bookmark.perf_gfx_3g", advancedSettings.getPerformance3G().getGfx());
editor.putBoolean("bookmark.perf_gfx_h264_3g",
advancedSettings.getPerformance3G().getH264());
editor.putBoolean("bookmark.perf_wallpaper_3g",
advancedSettings.getPerformance3G().getWallpaper());
editor.putBoolean("bookmark.perf_font_smoothing_3g",
advancedSettings.getPerformance3G().getFontSmoothing());
editor.putBoolean("bookmark.perf_desktop_composition_3g",
advancedSettings.getPerformance3G().getDesktopComposition());
editor.putBoolean("bookmark.perf_window_dragging_3g",
advancedSettings.getPerformance3G().getFullWindowDrag());
editor.putBoolean("bookmark.perf_menu_animation_3g",
advancedSettings.getPerformance3G().getMenuAnimations());
editor.putBoolean("bookmark.perf_themes_3g",
advancedSettings.getPerformance3G().getTheming());
editor.putBoolean("bookmark.redirect_sdcard", advancedSettings.getRedirectSDCard());
editor.putInt("bookmark.redirect_sound", advancedSettings.getRedirectSound());
editor.putBoolean("bookmark.redirect_microphone", advancedSettings.getRedirectMicrophone());
editor.putInt("bookmark.security", advancedSettings.getSecurity());
editor.putString("bookmark.remote_program", advancedSettings.getRemoteProgram());
editor.putString("bookmark.work_dir", advancedSettings.getWorkDir());
editor.putBoolean("bookmark.console_mode", advancedSettings.getConsoleMode());
editor.putBoolean("bookmark.async_channel", debugSettings.getAsyncChannel());
editor.putBoolean("bookmark.async_input", debugSettings.getAsyncInput());
editor.putBoolean("bookmark.async_update", debugSettings.getAsyncUpdate());
editor.putString("bookmark.debug_level", debugSettings.getDebugLevel());
editor.apply();
}
// read from shared preferences
public void readFromSharedPreferences(SharedPreferences sharedPrefs)
{
label = sharedPrefs.getString("bookmark.label", "");
username = sharedPrefs.getString("bookmark.username", "");
password = sharedPrefs.getString("bookmark.password", "");
domain = sharedPrefs.getString("bookmark.domain", "");
screenSettings.setColors(sharedPrefs.getInt("bookmark.colors", 16));
screenSettings.setResolution(sharedPrefs.getString("bookmark.resolution", "automatic"),
sharedPrefs.getInt("bookmark.width", 800),
sharedPrefs.getInt("bookmark.height", 600));
performanceFlags.setRemoteFX(sharedPrefs.getBoolean("bookmark.perf_remotefx", false));
performanceFlags.setGfx(sharedPrefs.getBoolean("bookmark.perf_gfx", false));
performanceFlags.setH264(sharedPrefs.getBoolean("bookmark.perf_gfx_h264", false));
performanceFlags.setWallpaper(sharedPrefs.getBoolean("bookmark.perf_wallpaper", false));
performanceFlags.setFontSmoothing(
sharedPrefs.getBoolean("bookmark.perf_font_smoothing", false));
performanceFlags.setDesktopComposition(
sharedPrefs.getBoolean("bookmark.perf_desktop_composition", false));
performanceFlags.setFullWindowDrag(
sharedPrefs.getBoolean("bookmark.perf_window_dragging", false));
performanceFlags.setMenuAnimations(
sharedPrefs.getBoolean("bookmark.perf_menu_animation", false));
performanceFlags.setTheming(sharedPrefs.getBoolean("bookmark.perf_themes", false));
advancedSettings.setEnable3GSettings(
sharedPrefs.getBoolean("bookmark.enable_3g_settings", false));
advancedSettings.getScreen3G().setColors(sharedPrefs.getInt("bookmark.colors_3g", 16));
advancedSettings.getScreen3G().setResolution(
sharedPrefs.getString("bookmark.resolution_3g", "automatic"),
sharedPrefs.getInt("bookmark.width_3g", 800),
sharedPrefs.getInt("bookmark.height_3g", 600));
advancedSettings.getPerformance3G().setRemoteFX(
sharedPrefs.getBoolean("bookmark.perf_remotefx_3g", false));
advancedSettings.getPerformance3G().setGfx(
sharedPrefs.getBoolean("bookmark.perf_gfx_3g", false));
advancedSettings.getPerformance3G().setH264(
sharedPrefs.getBoolean("bookmark.perf_gfx_h264_3g", false));
advancedSettings.getPerformance3G().setWallpaper(
sharedPrefs.getBoolean("bookmark.perf_wallpaper_3g", false));
advancedSettings.getPerformance3G().setFontSmoothing(
sharedPrefs.getBoolean("bookmark.perf_font_smoothing_3g", false));
advancedSettings.getPerformance3G().setDesktopComposition(
sharedPrefs.getBoolean("bookmark.perf_desktop_composition_3g", false));
advancedSettings.getPerformance3G().setFullWindowDrag(
sharedPrefs.getBoolean("bookmark.perf_window_dragging_3g", false));
advancedSettings.getPerformance3G().setMenuAnimations(
sharedPrefs.getBoolean("bookmark.perf_menu_animation_3g", false));
advancedSettings.getPerformance3G().setTheming(
sharedPrefs.getBoolean("bookmark.perf_themes_3g", false));
advancedSettings.setRedirectSDCard(
sharedPrefs.getBoolean("bookmark.redirect_sdcard", false));
advancedSettings.setRedirectSound(sharedPrefs.getInt("bookmark.redirect_sound", 0));
advancedSettings.setRedirectMicrophone(
sharedPrefs.getBoolean("bookmark.redirect_microphone", false));
advancedSettings.setSecurity(sharedPrefs.getInt("bookmark.security", 0));
advancedSettings.setRemoteProgram(sharedPrefs.getString("bookmark.remote_program", ""));
advancedSettings.setWorkDir(sharedPrefs.getString("bookmark.work_dir", ""));
advancedSettings.setConsoleMode(sharedPrefs.getBoolean("bookmark.console_mode", false));
debugSettings.setAsyncChannel(sharedPrefs.getBoolean("bookmark.async_channel", true));
debugSettings.setAsyncInput(sharedPrefs.getBoolean("bookmark.async_input", true));
debugSettings.setAsyncUpdate(sharedPrefs.getBoolean("bookmark.async_update", true));
debugSettings.setDebugLevel(sharedPrefs.getString("bookmark.debug_level", "INFO"));
}
// Cloneable
public Object clone()
{
try
{
return super.clone();
}
catch (CloneNotSupportedException e)
{
return null;
}
}
// performance flags
public static class PerformanceFlags implements Parcelable
{
public static final Parcelable.Creator<PerformanceFlags> CREATOR =
new Parcelable.Creator<PerformanceFlags>() {
public PerformanceFlags createFromParcel(Parcel in)
{
return new PerformanceFlags(in);
}
@Override public PerformanceFlags[] newArray(int size)
{
return new PerformanceFlags[size];
}
};
private boolean remotefx;
private boolean gfx;
private boolean h264;
private boolean wallpaper;
private boolean theming;
private boolean fullWindowDrag;
private boolean menuAnimations;
private boolean fontSmoothing;
private boolean desktopComposition;
public PerformanceFlags()
{
remotefx = false;
gfx = false;
h264 = false;
wallpaper = false;
theming = false;
fullWindowDrag = false;
menuAnimations = false;
fontSmoothing = false;
desktopComposition = false;
}
public PerformanceFlags(Parcel parcel)
{
remotefx = parcel.readInt() == 1;
gfx = parcel.readInt() == 1;
h264 = parcel.readInt() == 1;
wallpaper = parcel.readInt() == 1;
theming = parcel.readInt() == 1;
fullWindowDrag = (parcel.readInt() == 1);
menuAnimations = parcel.readInt() == 1;
fontSmoothing = parcel.readInt() == 1;
desktopComposition = parcel.readInt() == 1;
}
public boolean getRemoteFX()
{
return remotefx;
}
public void setRemoteFX(boolean remotefx)
{
this.remotefx = remotefx;
}
public boolean getGfx()
{
return gfx;
}
public void setGfx(boolean gfx)
{
this.gfx = gfx;
}
public boolean getH264()
{
return h264;
}
public void setH264(boolean h264)
{
this.h264 = h264;
}
public boolean getWallpaper()
{
return wallpaper;
}
public void setWallpaper(boolean wallpaper)
{
this.wallpaper = wallpaper;
}
public boolean getTheming()
{
return theming;
}
public void setTheming(boolean theming)
{
this.theming = theming;
}
public boolean getFullWindowDrag()
{
return fullWindowDrag;
}
public void setFullWindowDrag(boolean fullWindowDrag)
{
this.fullWindowDrag = fullWindowDrag;
}
public boolean getMenuAnimations()
{
return menuAnimations;
}
public void setMenuAnimations(boolean menuAnimations)
{
this.menuAnimations = menuAnimations;
}
public boolean getFontSmoothing()
{
return fontSmoothing;
}
public void setFontSmoothing(boolean fontSmoothing)
{
this.fontSmoothing = fontSmoothing;
}
public boolean getDesktopComposition()
{
return desktopComposition;
}
public void setDesktopComposition(boolean desktopComposition)
{
this.desktopComposition = desktopComposition;
}
@Override public int describeContents()
{
return 0;
}
@Override public void writeToParcel(Parcel out, int flags)
{
out.writeInt(remotefx ? 1 : 0);
out.writeInt(gfx ? 1 : 0);
out.writeInt(h264 ? 1 : 0);
out.writeInt(wallpaper ? 1 : 0);
out.writeInt(theming ? 1 : 0);
out.writeInt(fullWindowDrag ? 1 : 0);
out.writeInt(menuAnimations ? 1 : 0);
out.writeInt(fontSmoothing ? 1 : 0);
out.writeInt(desktopComposition ? 1 : 0);
}
}
// Screen Settings class
public static class ScreenSettings implements Parcelable
{
public static final int FITSCREEN = -2;
public static final int AUTOMATIC = -1;
public static final int CUSTOM = 0;
public static final int PREDEFINED = 1;
public static final Parcelable.Creator<ScreenSettings> CREATOR =
new Parcelable.Creator<ScreenSettings>() {
public ScreenSettings createFromParcel(Parcel in)
{
return new ScreenSettings(in);
}
@Override public ScreenSettings[] newArray(int size)
{
return new ScreenSettings[size];
}
};
private int resolution;
private int colors;
private int width;
private int height;
public ScreenSettings()
{
init();
}
public ScreenSettings(Parcel parcel)
{
resolution = parcel.readInt();
colors = parcel.readInt();
width = parcel.readInt();
height = parcel.readInt();
}
private void validate()
{
switch (colors)
{
case 32:
case 24:
case 16:
case 15:
case 8:
break;
default:
colors = 32;
break;
}
if ((width <= 0) || (width > 65536))
{
width = 1024;
}
if ((height <= 0) || (height > 65536))
{
height = 768;
}
switch (resolution)
{
case FITSCREEN:
case AUTOMATIC:
case CUSTOM:
case PREDEFINED:
break;
default:
resolution = AUTOMATIC;
break;
}
}
private void init()
{
resolution = AUTOMATIC;
colors = 16;
width = 0;
height = 0;
}
public void setResolution(String resolution, int width, int height)
{
if (resolution.contains("x"))
{
String[] dimensions = resolution.split("x");
this.width = Integer.valueOf(dimensions[0]);
this.height = Integer.valueOf(dimensions[1]);
this.resolution = PREDEFINED;
}
else if (resolution.equalsIgnoreCase("custom"))
{
this.width = width;
this.height = height;
this.resolution = CUSTOM;
}
else if (resolution.equalsIgnoreCase("fitscreen"))
{
this.width = this.height = 0;
this.resolution = FITSCREEN;
}
else
{
this.width = this.height = 0;
this.resolution = AUTOMATIC;
}
}
public int getResolution()
{
return resolution;
}
public void setResolution(int resolution)
{
this.resolution = resolution;
if (resolution == AUTOMATIC || resolution == FITSCREEN)
{
width = 0;
height = 0;
}
}
public String getResolutionString()
{
if (isPredefined())
return (width + "x" + height);
return (isFitScreen() ? "fitscreen" : isAutomatic() ? "automatic" : "custom");
}
public boolean isPredefined()
{
validate();
return (resolution == PREDEFINED);
}
public boolean isAutomatic()
{
validate();
return (resolution == AUTOMATIC);
}
public boolean isFitScreen()
{
validate();
return (resolution == FITSCREEN);
}
public boolean isCustom()
{
validate();
return (resolution == CUSTOM);
}
public int getWidth()
{
validate();
return width;
}
public void setWidth(int width)
{
this.width = width;
}
public int getHeight()
{
validate();
return height;
}
public void setHeight(int height)
{
this.height = height;
}
public int getColors()
{
validate();
return colors;
}
public void setColors(int colors)
{
this.colors = colors;
}
@Override public int describeContents()
{
return 0;
}
@Override public void writeToParcel(Parcel out, int flags)
{
out.writeInt(resolution);
out.writeInt(colors);
out.writeInt(width);
out.writeInt(height);
}
}
public static class DebugSettings implements Parcelable
{
public static final Parcelable.Creator<DebugSettings> CREATOR =
new Parcelable.Creator<DebugSettings>() {
public DebugSettings createFromParcel(Parcel in)
{
return new DebugSettings(in);
}
@Override public DebugSettings[] newArray(int size)
{
return new DebugSettings[size];
}
};
private String debug;
private boolean asyncChannel;
private boolean asyncTransport;
private boolean asyncInput;
private boolean asyncUpdate;
public DebugSettings()
{
init();
}
// Session Settings
public DebugSettings(Parcel parcel)
{
asyncChannel = parcel.readInt() == 1;
asyncTransport = parcel.readInt() == 1;
asyncInput = parcel.readInt() == 1;
asyncUpdate = parcel.readInt() == 1;
debug = parcel.readString();
}
private void init()
{
debug = "INFO";
asyncChannel = true;
asyncTransport = false;
asyncInput = true;
asyncUpdate = true;
}
private void validate()
{
final String[] levels = { "OFF", "FATAL", "ERROR", "WARN", "INFO", "DEBUG", "TRACE" };
for (String level : levels)
{
if (level.equalsIgnoreCase(this.debug))
{
return;
}
}
this.debug = "INFO";
}
public String getDebugLevel()
{
validate();
return debug;
}
public void setDebugLevel(String debug)
{
this.debug = debug;
}
public boolean getAsyncUpdate()
{
return asyncUpdate;
}
public void setAsyncUpdate(boolean enabled)
{
asyncUpdate = enabled;
}
public boolean getAsyncInput()
{
return asyncInput;
}
public void setAsyncInput(boolean enabled)
{
asyncInput = enabled;
}
public boolean getAsyncChannel()
{
return asyncChannel;
}
public void setAsyncChannel(boolean enabled)
{
asyncChannel = enabled;
}
@Override public int describeContents()
{
return 0;
}
@Override public void writeToParcel(Parcel out, int flags)
{
out.writeInt(asyncChannel ? 1 : 0);
out.writeInt(asyncTransport ? 1 : 0);
out.writeInt(asyncInput ? 1 : 0);
out.writeInt(asyncUpdate ? 1 : 0);
out.writeString(debug);
}
}
// Session Settings
public static class AdvancedSettings implements Parcelable
{
public static final Parcelable.Creator<AdvancedSettings> CREATOR =
new Parcelable.Creator<AdvancedSettings>() {
public AdvancedSettings createFromParcel(Parcel in)
{
return new AdvancedSettings(in);
}
@Override public AdvancedSettings[] newArray(int size)
{
return new AdvancedSettings[size];
}
};
private boolean enable3GSettings;
private ScreenSettings screen3G;
private PerformanceFlags performance3G;
private boolean redirectSDCard;
private int redirectSound;
private boolean redirectMicrophone;
private int security;
private boolean consoleMode;
private String remoteProgram;
private String workDir;
public AdvancedSettings()
{
init();
}
public AdvancedSettings(Parcel parcel)
{
enable3GSettings = parcel.readInt() == 1;
screen3G = parcel.readParcelable(ScreenSettings.class.getClassLoader());
performance3G = parcel.readParcelable(PerformanceFlags.class.getClassLoader());
redirectSDCard = parcel.readInt() == 1;
redirectSound = parcel.readInt();
redirectMicrophone = parcel.readInt() == 1;
security = parcel.readInt();
consoleMode = parcel.readInt() == 1;
remoteProgram = parcel.readString();
workDir = parcel.readString();
}
private void init()
{
enable3GSettings = false;
screen3G = new ScreenSettings();
performance3G = new PerformanceFlags();
redirectSDCard = false;
redirectSound = 0;
redirectMicrophone = false;
security = 0;
consoleMode = false;
remoteProgram = "";
workDir = "";
}
private void validate()
{
switch (redirectSound)
{
case 0:
case 1:
case 2:
break;
default:
redirectSound = 0;
break;
}
switch (security)
{
case 0:
case 1:
case 2:
case 3:
break;
default:
security = 0;
break;
}
}
public boolean getEnable3GSettings()
{
return enable3GSettings;
}
public void setEnable3GSettings(boolean enable3GSettings)
{
this.enable3GSettings = enable3GSettings;
}
public ScreenSettings getScreen3G()
{
return screen3G;
}
public void setScreen3G(ScreenSettings screen3G)
{
this.screen3G = screen3G;
}
public PerformanceFlags getPerformance3G()
{
return performance3G;
}
public void setPerformance3G(PerformanceFlags performance3G)
{
this.performance3G = performance3G;
}
public boolean getRedirectSDCard()
{
return redirectSDCard;
}
public void setRedirectSDCard(boolean redirectSDCard)
{
this.redirectSDCard = redirectSDCard;
}
public int getRedirectSound()
{
validate();
return redirectSound;
}
public void setRedirectSound(int redirect)
{
this.redirectSound = redirect;
}
public boolean getRedirectMicrophone()
{
return redirectMicrophone;
}
public void setRedirectMicrophone(boolean redirect)
{
this.redirectMicrophone = redirect;
}
public int getSecurity()
{
validate();
return security;
}
public void setSecurity(int security)
{
this.security = security;
}
public boolean getConsoleMode()
{
return consoleMode;
}
public void setConsoleMode(boolean consoleMode)
{
this.consoleMode = consoleMode;
}
public String getRemoteProgram()
{
return remoteProgram;
}
public void setRemoteProgram(String remoteProgram)
{
this.remoteProgram = remoteProgram;
}
public String getWorkDir()
{
return workDir;
}
public void setWorkDir(String workDir)
{
this.workDir = workDir;
}
@Override public int describeContents()
{
return 0;
}
@Override public void writeToParcel(Parcel out, int flags)
{
out.writeInt(enable3GSettings ? 1 : 0);
out.writeParcelable(screen3G, flags);
out.writeParcelable(performance3G, flags);
out.writeInt(redirectSDCard ? 1 : 0);
out.writeInt(redirectSound);
out.writeInt(redirectMicrophone ? 1 : 0);
out.writeInt(security);
out.writeInt(consoleMode ? 1 : 0);
out.writeString(remoteProgram);
out.writeString(workDir);
}
}
}