|
Packit Service |
fa4841 |
/*
|
|
Packit Service |
fa4841 |
Bookmark editing activity
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
Packit Service |
b1ea74 |
If a copy of the MPL was not distributed with this file, You can obtain one at
|
|
Packit Service |
b1ea74 |
http://mozilla.org/MPL/2.0/.
|
|
Packit Service |
fa4841 |
*/
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
package com.freerdp.freerdpcore.presentation;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
import android.app.AlertDialog;
|
|
Packit Service |
fa4841 |
import android.content.ComponentName;
|
|
Packit Service |
fa4841 |
import android.content.DialogInterface;
|
|
Packit Service |
fa4841 |
import android.content.SharedPreferences;
|
|
Packit Service |
fa4841 |
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
|
Packit Service |
fa4841 |
import android.os.Bundle;
|
|
Packit Service |
fa4841 |
import android.preference.ListPreference;
|
|
Packit Service |
fa4841 |
import android.preference.Preference;
|
|
Packit Service |
fa4841 |
import android.preference.PreferenceActivity;
|
|
Packit Service |
fa4841 |
import android.preference.PreferenceManager;
|
|
Packit Service |
fa4841 |
import android.preference.PreferenceScreen;
|
|
Packit Service |
fa4841 |
import android.util.Log;
|
|
Packit Service |
fa4841 |
import android.view.View;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
import com.freerdp.freerdpcore.R;
|
|
Packit Service |
fa4841 |
import com.freerdp.freerdpcore.application.GlobalApp;
|
|
Packit Service |
fa4841 |
import com.freerdp.freerdpcore.domain.BookmarkBase;
|
|
Packit Service |
fa4841 |
import com.freerdp.freerdpcore.domain.ConnectionReference;
|
|
Packit Service |
fa4841 |
import com.freerdp.freerdpcore.domain.ManualBookmark;
|
|
Packit Service |
fa4841 |
import com.freerdp.freerdpcore.services.BookmarkBaseGateway;
|
|
Packit Service |
fa4841 |
import com.freerdp.freerdpcore.services.LibFreeRDP;
|
|
Packit Service |
fa4841 |
import com.freerdp.freerdpcore.utils.RDPFileParser;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
import java.io.File;
|
|
Packit Service |
fa4841 |
import java.io.IOException;
|
|
Packit Service |
fa4841 |
import java.util.ArrayList;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
public class BookmarkActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
public static final String PARAM_CONNECTION_REFERENCE = "conRef";
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private static final String TAG = "BookmarkActivity";
|
|
Packit Service |
b1ea74 |
private static final int PREFERENCES_BOOKMARK = 1;
|
|
Packit Service |
b1ea74 |
private static final int PREFERENCES_CREDENTIALS = 2;
|
|
Packit Service |
b1ea74 |
private static final int PREFERENCES_SCREEN = 3;
|
|
Packit Service |
b1ea74 |
private static final int PREFERENCES_PERFORMANCE = 4;
|
|
Packit Service |
b1ea74 |
private static final int PREFERENCES_ADVANCED = 5;
|
|
Packit Service |
b1ea74 |
private static final int PREFERENCES_SCREEN3G = 6;
|
|
Packit Service |
b1ea74 |
private static final int PREFERENCES_PERFORMANCE3G = 7;
|
|
Packit Service |
b1ea74 |
private static final int PREFERENCES_GATEWAY = 8;
|
|
Packit Service |
b1ea74 |
private static final int PREFERENCES_DEBUG = 9;
|
|
Packit Service |
b1ea74 |
// bookmark needs to be static because the activity is started for each
|
|
Packit Service |
b1ea74 |
// subview
|
|
Packit Service |
b1ea74 |
// (we have to do this because Android has a bug where the style for
|
|
Packit Service |
b1ea74 |
// Preferences
|
|
Packit Service |
b1ea74 |
// is only applied to the first PreferenceScreen but not to subsequent ones)
|
|
Packit Service |
b1ea74 |
private static BookmarkBase bookmark = null;
|
|
Packit Service |
b1ea74 |
private static boolean settings_changed = false;
|
|
Packit Service |
b1ea74 |
private static boolean new_bookmark = false;
|
|
Packit Service |
b1ea74 |
private int current_preferences;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
@Override public void onCreate(Bundle savedInstanceState)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
super.onCreate(savedInstanceState);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
PreferenceManager mgr = getPreferenceManager();
|
|
Packit Service |
b1ea74 |
// init shared preferences for activity
|
|
Packit Service |
b1ea74 |
mgr.setSharedPreferencesName("TEMP");
|
|
Packit Service |
b1ea74 |
mgr.setSharedPreferencesMode(MODE_PRIVATE);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
if (bookmark == null)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
// if we have a bookmark id set in the extras we are in edit mode
|
|
Packit Service |
b1ea74 |
Bundle bundle = getIntent().getExtras();
|
|
Packit Service |
b1ea74 |
if (bundle != null)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
// See if we got a connection reference to a bookmark
|
|
Packit Service |
b1ea74 |
if (bundle.containsKey(PARAM_CONNECTION_REFERENCE))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
String refStr = bundle.getString(PARAM_CONNECTION_REFERENCE);
|
|
Packit Service |
b1ea74 |
if (ConnectionReference.isManualBookmarkReference(refStr))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
bookmark = GlobalApp.getManualBookmarkGateway().findById(
|
|
Packit Service |
b1ea74 |
ConnectionReference.getManualBookmarkId(refStr));
|
|
Packit Service |
b1ea74 |
new_bookmark = false;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (ConnectionReference.isHostnameReference(refStr))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
bookmark = new ManualBookmark();
|
|
Packit Service |
b1ea74 |
bookmark.<ManualBookmark>get().setLabel(
|
|
Packit Service |
b1ea74 |
ConnectionReference.getHostname(refStr));
|
|
Packit Service |
b1ea74 |
bookmark.<ManualBookmark>get().setHostname(
|
|
Packit Service |
b1ea74 |
ConnectionReference.getHostname(refStr));
|
|
Packit Service |
b1ea74 |
new_bookmark = true;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (ConnectionReference.isFileReference(refStr))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
String file = ConnectionReference.getFile(refStr);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
bookmark = new ManualBookmark();
|
|
Packit Service |
b1ea74 |
bookmark.setLabel(file);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
try
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
RDPFileParser rdpFile = new RDPFileParser(file);
|
|
Packit Service |
b1ea74 |
updateBookmarkFromFile((ManualBookmark)bookmark, rdpFile);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
bookmark.setLabel(new File(file).getName());
|
|
Packit Service |
b1ea74 |
new_bookmark = true;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
catch (IOException e)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
Log.e(TAG, "Failed reading RDP file", e);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// last chance - ensure we really have a valid bookmark
|
|
Packit Service |
b1ea74 |
if (bookmark == null)
|
|
Packit Service |
b1ea74 |
bookmark = new ManualBookmark();
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// hide gateway settings if we edit a non-manual bookmark
|
|
Packit Service |
b1ea74 |
if (current_preferences == PREFERENCES_ADVANCED &&
|
|
Packit Service |
b1ea74 |
bookmark.getType() != ManualBookmark.TYPE_MANUAL)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
PreferenceScreen screen = getPreferenceScreen();
|
|
Packit Service |
b1ea74 |
screen.removePreference(findPreference("bookmark.enable_gateway"));
|
|
Packit Service |
b1ea74 |
screen.removePreference(findPreference("bookmark.gateway"));
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
updateH264Preferences();
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// update preferences from bookmark
|
|
Packit Service |
b1ea74 |
bookmark.writeToSharedPreferences(mgr.getSharedPreferences());
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// no settings changed yet
|
|
Packit Service |
b1ea74 |
settings_changed = false;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// load the requested settings resource
|
|
Packit Service |
b1ea74 |
if (getIntent() == null || getIntent().getData() == null)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
addPreferencesFromResource(R.xml.bookmark_settings);
|
|
Packit Service |
b1ea74 |
current_preferences = PREFERENCES_BOOKMARK;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (getIntent().getData().toString().equals("preferences://screen_settings"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
addPreferencesFromResource(R.xml.screen_settings);
|
|
Packit Service |
b1ea74 |
current_preferences = PREFERENCES_SCREEN;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (getIntent().getData().toString().equals("preferences://performance_flags"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
addPreferencesFromResource(R.xml.performance_flags);
|
|
Packit Service |
b1ea74 |
current_preferences = PREFERENCES_PERFORMANCE;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (getIntent().getData().toString().equals("preferences://screen_settings_3g"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
addPreferencesFromResource(R.xml.screen_settings_3g);
|
|
Packit Service |
b1ea74 |
current_preferences = PREFERENCES_SCREEN3G;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (getIntent().getData().toString().equals("preferences://performance_flags_3g"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
addPreferencesFromResource(R.xml.performance_flags_3g);
|
|
Packit Service |
b1ea74 |
current_preferences = PREFERENCES_PERFORMANCE3G;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (getIntent().getData().toString().equals("preferences://advanced_settings"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
addPreferencesFromResource(R.xml.advanced_settings);
|
|
Packit Service |
b1ea74 |
current_preferences = PREFERENCES_ADVANCED;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (getIntent().getData().toString().equals("preferences://credentials_settings"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
addPreferencesFromResource(R.xml.credentials_settings);
|
|
Packit Service |
b1ea74 |
current_preferences = PREFERENCES_CREDENTIALS;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (getIntent().getData().toString().equals("preferences://gateway_settings"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
addPreferencesFromResource(R.xml.gateway_settings);
|
|
Packit Service |
b1ea74 |
current_preferences = PREFERENCES_GATEWAY;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (getIntent().getData().toString().equals("preferences://debug_settings"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
addPreferencesFromResource(R.xml.debug_settings);
|
|
Packit Service |
b1ea74 |
current_preferences = PREFERENCES_DEBUG;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
addPreferencesFromResource(R.xml.bookmark_settings);
|
|
Packit Service |
b1ea74 |
current_preferences = PREFERENCES_BOOKMARK;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// update UI with bookmark data
|
|
Packit Service |
b1ea74 |
SharedPreferences spref = mgr.getSharedPreferences();
|
|
Packit Service |
b1ea74 |
initSettings(spref);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// register for preferences changed notification
|
|
Packit Service |
b1ea74 |
mgr.getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// set the correct component names in our preferencescreen settings
|
|
Packit Service |
b1ea74 |
setIntentComponentNames();
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
updateH264Preferences();
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void updateH264Preferences()
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
if (!LibFreeRDP.hasH264Support())
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
final int preferenceIdList[] = { R.string.preference_key_h264,
|
|
Packit Service |
b1ea74 |
R.string.preference_key_h264_3g };
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
PreferenceManager mgr = getPreferenceManager();
|
|
Packit Service |
b1ea74 |
for (int id : preferenceIdList)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
final String key = getString(id);
|
|
Packit Service |
b1ea74 |
Preference preference = mgr.findPreference(key);
|
|
Packit Service |
b1ea74 |
if (preference != null)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
preference.setEnabled(false);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void updateBookmarkFromFile(ManualBookmark bookmark, RDPFileParser rdpFile)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
String s;
|
|
Packit Service |
b1ea74 |
Integer i;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
s = rdpFile.getString("full address");
|
|
Packit Service |
b1ea74 |
if (s != null)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
// this gets complicated as it can include port
|
|
Packit Service |
b1ea74 |
if (s.lastIndexOf(":") > s.lastIndexOf("]"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
try
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
String port = s.substring(s.lastIndexOf(":") + 1);
|
|
Packit Service |
b1ea74 |
bookmark.setPort(Integer.parseInt(port));
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
catch (NumberFormatException e)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
Log.e(TAG, "Malformed address");
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
s = s.substring(0, s.lastIndexOf(":"));
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// or even be an ipv6 address
|
|
Packit Service |
b1ea74 |
if (s.startsWith("[") && s.endsWith("]"))
|
|
Packit Service |
b1ea74 |
s = s.substring(1, s.length() - 1);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
bookmark.setHostname(s);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
i = rdpFile.getInteger("server port");
|
|
Packit Service |
b1ea74 |
if (i != null)
|
|
Packit Service |
b1ea74 |
bookmark.setPort(i);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
s = rdpFile.getString("username");
|
|
Packit Service |
b1ea74 |
if (s != null)
|
|
Packit Service |
b1ea74 |
bookmark.setUsername(s);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
s = rdpFile.getString("domain");
|
|
Packit Service |
b1ea74 |
if (s != null)
|
|
Packit Service |
b1ea74 |
bookmark.setDomain(s);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
i = rdpFile.getInteger("connect to console");
|
|
Packit Service |
b1ea74 |
if (i != null)
|
|
Packit Service |
b1ea74 |
bookmark.getAdvancedSettings().setConsoleMode(i == 1);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void setIntentComponentNames()
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
// we set the component name for our sub-activity calls here because we
|
|
Packit Service |
b1ea74 |
// don't know the package
|
|
Packit Service |
b1ea74 |
// name of the main app in our library project.
|
|
Packit Service |
b1ea74 |
ComponentName compName =
|
|
Packit Service |
b1ea74 |
new ComponentName(getPackageName(), BookmarkActivity.class.getName());
|
|
Packit Service |
b1ea74 |
ArrayList<String> prefKeys = new ArrayList<String>();
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
prefKeys.add("bookmark.credentials");
|
|
Packit Service |
b1ea74 |
prefKeys.add("bookmark.screen");
|
|
Packit Service |
b1ea74 |
prefKeys.add("bookmark.performance");
|
|
Packit Service |
b1ea74 |
prefKeys.add("bookmark.advanced");
|
|
Packit Service |
b1ea74 |
prefKeys.add("bookmark.screen_3g");
|
|
Packit Service |
b1ea74 |
prefKeys.add("bookmark.performance_3g");
|
|
Packit Service |
b1ea74 |
prefKeys.add("bookmark.gateway_settings");
|
|
Packit Service |
b1ea74 |
prefKeys.add("bookmark.debug");
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
for (String p : prefKeys)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
Preference pref = findPreference(p);
|
|
Packit Service |
b1ea74 |
if (pref != null)
|
|
Packit Service |
b1ea74 |
pref.getIntent().setComponent(compName);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
@Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
settings_changed = true;
|
|
Packit Service |
b1ea74 |
switch (current_preferences)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
case PREFERENCES_DEBUG:
|
|
Packit Service |
b1ea74 |
debugSettingsChanged(sharedPreferences, key);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
case PREFERENCES_BOOKMARK:
|
|
Packit Service |
b1ea74 |
bookmarkSettingsChanged(sharedPreferences, key);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
case PREFERENCES_ADVANCED:
|
|
Packit Service |
b1ea74 |
advancedSettingsChanged(sharedPreferences, key);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
case PREFERENCES_CREDENTIALS:
|
|
Packit Service |
b1ea74 |
credentialsSettingsChanged(sharedPreferences, key);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
case PREFERENCES_SCREEN:
|
|
Packit Service |
b1ea74 |
case PREFERENCES_SCREEN3G:
|
|
Packit Service |
b1ea74 |
screenSettingsChanged(sharedPreferences, key);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
case PREFERENCES_GATEWAY:
|
|
Packit Service |
b1ea74 |
gatewaySettingsChanged(sharedPreferences, key);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
default:
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void initSettings(SharedPreferences sharedPreferences)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
switch (current_preferences)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
case PREFERENCES_BOOKMARK:
|
|
Packit Service |
b1ea74 |
initBookmarkSettings(sharedPreferences);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
case PREFERENCES_ADVANCED:
|
|
Packit Service |
b1ea74 |
initAdvancedSettings(sharedPreferences);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
case PREFERENCES_CREDENTIALS:
|
|
Packit Service |
b1ea74 |
initCredentialsSettings(sharedPreferences);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
case PREFERENCES_SCREEN:
|
|
Packit Service |
b1ea74 |
initScreenSettings(sharedPreferences);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
case PREFERENCES_SCREEN3G:
|
|
Packit Service |
b1ea74 |
initScreenSettings3G(sharedPreferences);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
case PREFERENCES_GATEWAY:
|
|
Packit Service |
b1ea74 |
initGatewaySettings(sharedPreferences);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
case PREFERENCES_DEBUG:
|
|
Packit Service |
b1ea74 |
initDebugSettings(sharedPreferences);
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
default:
|
|
Packit Service |
b1ea74 |
break;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void initBookmarkSettings(SharedPreferences sharedPreferences)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
bookmarkSettingsChanged(sharedPreferences, "bookmark.label");
|
|
Packit Service |
b1ea74 |
bookmarkSettingsChanged(sharedPreferences, "bookmark.hostname");
|
|
Packit Service |
b1ea74 |
bookmarkSettingsChanged(sharedPreferences, "bookmark.port");
|
|
Packit Service |
b1ea74 |
bookmarkSettingsChanged(sharedPreferences, "bookmark.username");
|
|
Packit Service |
b1ea74 |
bookmarkSettingsChanged(sharedPreferences, "bookmark.resolution");
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void bookmarkSettingsChanged(SharedPreferences sharedPreferences, String key)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
if (key.equals("bookmark.label") && findPreference(key) != null)
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(sharedPreferences.getString(key, ""));
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.hostname") && findPreference(key) != null)
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(sharedPreferences.getString(key, ""));
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.port") && findPreference(key) != null)
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(String.valueOf(sharedPreferences.getInt(key, -1)));
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.username"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
String username = sharedPreferences.getString(key, "<none>");
|
|
Packit Service |
b1ea74 |
if (username.length() == 0)
|
|
Packit Service |
b1ea74 |
username = "<none>";
|
|
Packit Service |
b1ea74 |
findPreference("bookmark.credentials").setSummary(username);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.resolution") || key.equals("bookmark.colors") ||
|
|
Packit Service |
b1ea74 |
key.equals("bookmark.width") || key.equals("bookmark.height"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
String resolution = sharedPreferences.getString("bookmark.resolution", "800x600");
|
|
Packit Service |
b1ea74 |
// compare english string from resolutions_values_array array,
|
|
Packit Service |
b1ea74 |
// decode to localized
|
|
Packit Service |
b1ea74 |
// text for display
|
|
Packit Service |
b1ea74 |
if (resolution.equals("automatic"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
resolution = getResources().getString(R.string.resolution_automatic);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
if (resolution.equals("custom"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
resolution = getResources().getString(R.string.resolution_custom);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
if (resolution.equals("fitscreen"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
resolution = getResources().getString(R.string.resolution_fit);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
resolution += "@" + sharedPreferences.getInt("bookmark.colors", 16);
|
|
Packit Service |
b1ea74 |
findPreference("bookmark.screen").setSummary(resolution);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void initAdvancedSettings(SharedPreferences sharedPreferences)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
advancedSettingsChanged(sharedPreferences, "bookmark.enable_gateway_settings");
|
|
Packit Service |
b1ea74 |
advancedSettingsChanged(sharedPreferences, "bookmark.enable_3g_settings");
|
|
Packit Service |
b1ea74 |
advancedSettingsChanged(sharedPreferences, "bookmark.security");
|
|
Packit Service |
b1ea74 |
advancedSettingsChanged(sharedPreferences, "bookmark.resolution_3g");
|
|
Packit Service |
b1ea74 |
advancedSettingsChanged(sharedPreferences, "bookmark.remote_program");
|
|
Packit Service |
b1ea74 |
advancedSettingsChanged(sharedPreferences, "bookmark.work_dir");
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void advancedSettingsChanged(SharedPreferences sharedPreferences, String key)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
if (key.equals("bookmark.enable_gateway_settings"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
boolean enabled = sharedPreferences.getBoolean(key, false);
|
|
Packit Service |
b1ea74 |
findPreference("bookmark.gateway_settings").setEnabled(enabled);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.enable_3g_settings"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
boolean enabled = sharedPreferences.getBoolean(key, false);
|
|
Packit Service |
b1ea74 |
findPreference("bookmark.screen_3g").setEnabled(enabled);
|
|
Packit Service |
b1ea74 |
findPreference("bookmark.performance_3g").setEnabled(enabled);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.security"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
ListPreference listPreference = (ListPreference)findPreference(key);
|
|
Packit Service |
b1ea74 |
CharSequence security = listPreference.getEntries()[sharedPreferences.getInt(key, 0)];
|
|
Packit Service |
b1ea74 |
listPreference.setSummary(security);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.resolution_3g") || key.equals("bookmark.colors_3g") ||
|
|
Packit Service |
b1ea74 |
key.equals("bookmark.width_3g") || key.equals("bookmark.height_3g"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
String resolution = sharedPreferences.getString("bookmark.resolution_3g", "800x600");
|
|
Packit Service |
b1ea74 |
if (resolution.equals("automatic"))
|
|
Packit Service |
b1ea74 |
resolution = getResources().getString(R.string.resolution_automatic);
|
|
Packit Service |
b1ea74 |
else if (resolution.equals("custom"))
|
|
Packit Service |
b1ea74 |
resolution = getResources().getString(R.string.resolution_custom);
|
|
Packit Service |
b1ea74 |
resolution += "@" + sharedPreferences.getInt("bookmark.colors_3g", 16);
|
|
Packit Service |
b1ea74 |
findPreference("bookmark.screen_3g").setSummary(resolution);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.remote_program"))
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(sharedPreferences.getString(key, ""));
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.work_dir"))
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(sharedPreferences.getString(key, ""));
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void initCredentialsSettings(SharedPreferences sharedPreferences)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
credentialsSettingsChanged(sharedPreferences, "bookmark.username");
|
|
Packit Service |
b1ea74 |
credentialsSettingsChanged(sharedPreferences, "bookmark.password");
|
|
Packit Service |
b1ea74 |
credentialsSettingsChanged(sharedPreferences, "bookmark.domain");
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void credentialsSettingsChanged(SharedPreferences sharedPreferences, String key)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
if (key.equals("bookmark.username"))
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(sharedPreferences.getString(key, ""));
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.password"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
if (sharedPreferences.getString(key, "").length() == 0)
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(
|
|
Packit Service |
b1ea74 |
getResources().getString(R.string.settings_password_empty));
|
|
Packit Service |
b1ea74 |
else
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(
|
|
Packit Service |
b1ea74 |
getResources().getString(R.string.settings_password_present));
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.domain"))
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(sharedPreferences.getString(key, ""));
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void initScreenSettings(SharedPreferences sharedPreferences)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
screenSettingsChanged(sharedPreferences, "bookmark.colors");
|
|
Packit Service |
b1ea74 |
screenSettingsChanged(sharedPreferences, "bookmark.resolution");
|
|
Packit Service |
b1ea74 |
screenSettingsChanged(sharedPreferences, "bookmark.width");
|
|
Packit Service |
b1ea74 |
screenSettingsChanged(sharedPreferences, "bookmark.height");
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void initScreenSettings3G(SharedPreferences sharedPreferences)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
screenSettingsChanged(sharedPreferences, "bookmark.colors_3g");
|
|
Packit Service |
b1ea74 |
screenSettingsChanged(sharedPreferences, "bookmark.resolution_3g");
|
|
Packit Service |
b1ea74 |
screenSettingsChanged(sharedPreferences, "bookmark.width_3g");
|
|
Packit Service |
b1ea74 |
screenSettingsChanged(sharedPreferences, "bookmark.height_3g");
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void screenSettingsChanged(SharedPreferences sharedPreferences, String key)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
// could happen during initialization because 3g and non-3g settings
|
|
Packit Service |
b1ea74 |
// share this routine - just skip
|
|
Packit Service |
b1ea74 |
if (findPreference(key) == null)
|
|
Packit Service |
b1ea74 |
return;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
if (key.equals("bookmark.colors") || key.equals("bookmark.colors_3g"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
ListPreference listPreference = (ListPreference)findPreference(key);
|
|
Packit Service |
b1ea74 |
listPreference.setSummary(listPreference.getEntry());
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.resolution") || key.equals("bookmark.resolution_3g"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
ListPreference listPreference = (ListPreference)findPreference(key);
|
|
Packit Service |
b1ea74 |
listPreference.setSummary(listPreference.getEntry());
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
String value = listPreference.getValue();
|
|
Packit Service |
b1ea74 |
boolean enabled = value.equalsIgnoreCase("custom");
|
|
Packit Service |
b1ea74 |
if (key.equals("bookmark.resolution"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
findPreference("bookmark.width").setEnabled(enabled);
|
|
Packit Service |
b1ea74 |
findPreference("bookmark.height").setEnabled(enabled);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
findPreference("bookmark.width_3g").setEnabled(enabled);
|
|
Packit Service |
b1ea74 |
findPreference("bookmark.height_3g").setEnabled(enabled);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.width") || key.equals("bookmark.width_3g"))
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(String.valueOf(sharedPreferences.getInt(key, 800)));
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.height") || key.equals("bookmark.height_3g"))
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(String.valueOf(sharedPreferences.getInt(key, 600)));
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void initDebugSettings(SharedPreferences sharedPreferences)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
debugSettingsChanged(sharedPreferences, "bookmark.debug_level");
|
|
Packit Service |
b1ea74 |
debugSettingsChanged(sharedPreferences, "bookmark.async_channel");
|
|
Packit Service |
b1ea74 |
debugSettingsChanged(sharedPreferences, "bookmark.async_update");
|
|
Packit Service |
b1ea74 |
debugSettingsChanged(sharedPreferences, "bookmark.async_input");
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void initGatewaySettings(SharedPreferences sharedPreferences)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
gatewaySettingsChanged(sharedPreferences, "bookmark.gateway_hostname");
|
|
Packit Service |
b1ea74 |
gatewaySettingsChanged(sharedPreferences, "bookmark.gateway_port");
|
|
Packit Service |
b1ea74 |
gatewaySettingsChanged(sharedPreferences, "bookmark.gateway_username");
|
|
Packit Service |
b1ea74 |
gatewaySettingsChanged(sharedPreferences, "bookmark.gateway_password");
|
|
Packit Service |
b1ea74 |
gatewaySettingsChanged(sharedPreferences, "bookmark.gateway_domain");
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void debugSettingsChanged(SharedPreferences sharedPreferences, String key)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
if (key.equals("bookmark.debug_level"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
String level = sharedPreferences.getString(key, "INFO");
|
|
Packit Service |
b1ea74 |
Preference pref = findPreference("bookmark.debug_level");
|
|
Packit Service |
b1ea74 |
pref.setDefaultValue(level);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.async_channel"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
boolean enabled = sharedPreferences.getBoolean(key, false);
|
|
Packit Service |
b1ea74 |
Preference pref = findPreference("bookmark.async_channel");
|
|
Packit Service |
b1ea74 |
pref.setDefaultValue(enabled);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.async_update"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
boolean enabled = sharedPreferences.getBoolean(key, false);
|
|
Packit Service |
b1ea74 |
Preference pref = findPreference("bookmark.async_update");
|
|
Packit Service |
b1ea74 |
pref.setDefaultValue(enabled);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.async_input"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
boolean enabled = sharedPreferences.getBoolean(key, false);
|
|
Packit Service |
b1ea74 |
Preference pref = findPreference("bookmark.async_input");
|
|
Packit Service |
b1ea74 |
pref.setDefaultValue(enabled);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void gatewaySettingsChanged(SharedPreferences sharedPreferences, String key)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
if (key.equals("bookmark.gateway_hostname"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(sharedPreferences.getString(key, ""));
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.gateway_port"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(String.valueOf(sharedPreferences.getInt(key, 443)));
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.gateway_username"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(sharedPreferences.getString(key, ""));
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.gateway_password"))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
if (sharedPreferences.getString(key, "").length() == 0)
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(
|
|
Packit Service |
b1ea74 |
getResources().getString(R.string.settings_password_empty));
|
|
Packit Service |
b1ea74 |
else
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(
|
|
Packit Service |
b1ea74 |
getResources().getString(R.string.settings_password_present));
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else if (key.equals("bookmark.gateway_domain"))
|
|
Packit Service |
b1ea74 |
findPreference(key).setSummary(sharedPreferences.getString(key, ""));
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private boolean verifySettings(SharedPreferences sharedPreferences)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
boolean verifyFailed = false;
|
|
Packit Service |
b1ea74 |
// perform sanity checks on settings
|
|
Packit Service |
b1ea74 |
// Label set
|
|
Packit Service |
b1ea74 |
if (sharedPreferences.getString("bookmark.label", "").length() == 0)
|
|
Packit Service |
b1ea74 |
verifyFailed = true;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// Server and port specified
|
|
Packit Service |
b1ea74 |
if (!verifyFailed && sharedPreferences.getString("bookmark.hostname", "").length() == 0)
|
|
Packit Service |
b1ea74 |
verifyFailed = true;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// Server and port specified
|
|
Packit Service |
b1ea74 |
if (!verifyFailed && sharedPreferences.getInt("bookmark.port", -1) <= 0)
|
|
Packit Service |
b1ea74 |
verifyFailed = true;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// if an error occurred - display toast and return false
|
|
Packit Service |
b1ea74 |
return (!verifyFailed);
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
private void finishAndResetBookmark()
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
bookmark = null;
|
|
Packit Service |
b1ea74 |
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(
|
|
Packit Service |
b1ea74 |
this);
|
|
Packit Service |
b1ea74 |
finish();
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
@Override public void onBackPressed()
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
// only proceed if we are in the main preferences screen
|
|
Packit Service |
b1ea74 |
if (current_preferences != PREFERENCES_BOOKMARK)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
super.onBackPressed();
|
|
Packit Service |
b1ea74 |
getPreferenceManager()
|
|
Packit Service |
b1ea74 |
.getSharedPreferences()
|
|
Packit Service |
b1ea74 |
.unregisterOnSharedPreferenceChangeListener(this);
|
|
Packit Service |
b1ea74 |
return;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
SharedPreferences sharedPreferences = getPreferenceManager().getSharedPreferences();
|
|
Packit Service |
b1ea74 |
if (!verifySettings(sharedPreferences))
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
// ask the user if he wants to cancel or continue editing
|
|
Packit Service |
b1ea74 |
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
|
Packit Service |
b1ea74 |
builder.setTitle(R.string.error_bookmark_incomplete_title)
|
|
Packit Service |
b1ea74 |
.setMessage(R.string.error_bookmark_incomplete)
|
|
Packit Service |
b1ea74 |
.setPositiveButton(R.string.cancel,
|
|
Packit Service |
b1ea74 |
new DialogInterface.OnClickListener() {
|
|
Packit Service |
b1ea74 |
@Override
|
|
Packit Service |
b1ea74 |
public void onClick(DialogInterface dialog, int which)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
finishAndResetBookmark();
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
})
|
|
Packit Service |
b1ea74 |
.setNegativeButton(R.string.cont,
|
|
Packit Service |
b1ea74 |
new DialogInterface.OnClickListener() {
|
|
Packit Service |
b1ea74 |
@Override
|
|
Packit Service |
b1ea74 |
public void onClick(DialogInterface dialog, int which)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
dialog.cancel();
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
})
|
|
Packit Service |
b1ea74 |
.show();
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
return;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
// ask the user if he wants to save or cancel editing if a setting
|
|
Packit Service |
b1ea74 |
// has changed
|
|
Packit Service |
b1ea74 |
if (new_bookmark || settings_changed)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
|
Packit Service |
b1ea74 |
builder.setTitle(R.string.dlg_title_save_bookmark)
|
|
Packit Service |
b1ea74 |
.setMessage(R.string.dlg_save_bookmark)
|
|
Packit Service |
b1ea74 |
.setPositiveButton(
|
|
Packit Service |
b1ea74 |
R.string.yes,
|
|
Packit Service |
b1ea74 |
new DialogInterface.OnClickListener() {
|
|
Packit Service |
b1ea74 |
@Override public void onClick(DialogInterface dialog, int which)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
// read shared prefs back to bookmark
|
|
Packit Service |
b1ea74 |
bookmark.readFromSharedPreferences(
|
|
Packit Service |
b1ea74 |
getPreferenceManager().getSharedPreferences());
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
BookmarkBaseGateway bookmarkGateway;
|
|
Packit Service |
b1ea74 |
if (bookmark.getType() == BookmarkBase.TYPE_MANUAL)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
bookmarkGateway = GlobalApp.getManualBookmarkGateway();
|
|
Packit Service |
b1ea74 |
// remove any history entry for this
|
|
Packit Service |
b1ea74 |
// bookmark
|
|
Packit Service |
b1ea74 |
GlobalApp.getQuickConnectHistoryGateway().removeHistoryItem(
|
|
Packit Service |
b1ea74 |
bookmark.<ManualBookmark>get().getHostname());
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
assert false;
|
|
Packit Service |
b1ea74 |
return;
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// insert or update bookmark and leave
|
|
Packit Service |
b1ea74 |
// activity
|
|
Packit Service |
b1ea74 |
if (bookmark.getId() > 0)
|
|
Packit Service |
b1ea74 |
bookmarkGateway.update(bookmark);
|
|
Packit Service |
b1ea74 |
else
|
|
Packit Service |
b1ea74 |
bookmarkGateway.insert(bookmark);
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
finishAndResetBookmark();
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
})
|
|
Packit Service |
b1ea74 |
.setNegativeButton(R.string.no,
|
|
Packit Service |
b1ea74 |
new DialogInterface.OnClickListener() {
|
|
Packit Service |
b1ea74 |
@Override
|
|
Packit Service |
b1ea74 |
public void onClick(DialogInterface dialog, int which)
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
finishAndResetBookmark();
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
})
|
|
Packit Service |
b1ea74 |
.show();
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
else
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
b1ea74 |
finishAndResetBookmark();
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
b1ea74 |
}
|
|
Packit Service |
fa4841 |
}
|