mirror of
https://gitlab.com/openlp/android.git
synced 2024-12-22 20:02:50 +00:00
Clean up and settings fix
This commit is contained in:
parent
13bb8ca00e
commit
47164004b1
@ -1,5 +1,7 @@
|
|||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
|
|
||||||
|
project.archivesBaseName = 'OpenLP'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 21
|
compileSdkVersion 21
|
||||||
buildToolsVersion "21.1.2"
|
buildToolsVersion "21.1.2"
|
||||||
|
@ -20,10 +20,6 @@
|
|||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
|
||||||
android:name=".fragments.SettingsActivity"
|
|
||||||
android:label="@string/title_activity_settings" >
|
|
||||||
</activity>
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".activities.SettingsActivity"
|
android:name=".activities.SettingsActivity"
|
||||||
android:label="@string/title_activity_settings"
|
android:label="@string/title_activity_settings"
|
||||||
@ -32,14 +28,7 @@
|
|||||||
android:name="android.support.PARENT_ACTIVITY"
|
android:name="android.support.PARENT_ACTIVITY"
|
||||||
android:value="org.openlp.android2.OpenLP" />
|
android:value="org.openlp.android2.OpenLP" />
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
|
||||||
android:name=".activities.ConnectionActivity"
|
|
||||||
android:label="@string/title_activity_settings"
|
|
||||||
android:parentActivityName=".OpenLP" >
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.PARENT_ACTIVITY"
|
|
||||||
android:value="org.openlp.android2.OpenLP" />
|
|
||||||
</activity>
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
@ -20,12 +20,15 @@ package org.openlp.android2;
|
|||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
import android.support.v7.app.ActionBarActivity;
|
import android.support.v7.app.ActionBarActivity;
|
||||||
import android.app.ActionBar;
|
import android.app.ActionBar;
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
import android.app.FragmentManager;
|
import android.app.FragmentManager;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
@ -57,6 +60,7 @@ public class OpenLP extends ActionBarActivity
|
|||||||
/**
|
/**
|
||||||
* Used to store the last screen title. For use in {@link #restoreActionBar()}.
|
* Used to store the last screen title. For use in {@link #restoreActionBar()}.
|
||||||
*/
|
*/
|
||||||
|
private final String LOG_TAG = OpenLP.class.getName();
|
||||||
private CharSequence mTitle;
|
private CharSequence mTitle;
|
||||||
private boolean backArrowActive = false;
|
private boolean backArrowActive = false;
|
||||||
private Menu dropdownMenu;
|
private Menu dropdownMenu;
|
||||||
@ -66,6 +70,8 @@ public class OpenLP extends ActionBarActivity
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
|
|
||||||
|
doPreferenceCheck();
|
||||||
|
|
||||||
mNavigationDrawerFragment = (NavigationDrawerFragment)
|
mNavigationDrawerFragment = (NavigationDrawerFragment)
|
||||||
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
|
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
|
||||||
mTitle = getTitle();
|
mTitle = getTitle();
|
||||||
@ -76,6 +82,19 @@ public class OpenLP extends ActionBarActivity
|
|||||||
(DrawerLayout) findViewById(R.id.drawer_layout));
|
(DrawerLayout) findViewById(R.id.drawer_layout));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void doPreferenceCheck() {
|
||||||
|
SharedPreferences sharedPrefs = PreferenceManager
|
||||||
|
.getDefaultSharedPreferences(this);
|
||||||
|
if (sharedPrefs.getString(getString(R.string.key_host), "NONE").equals("NONE")
|
||||||
|
|| sharedPrefs.getString(getString(R.string.key_host), null).equals(null)) {
|
||||||
|
Log.d(LOG_TAG,
|
||||||
|
"URL preference not set. Starting preference activity...");
|
||||||
|
Intent preferenceIntent = new Intent(this, SettingsActivity.class);
|
||||||
|
startActivity(preferenceIntent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNavigationDrawerItemSelected(int position) {
|
public void onNavigationDrawerItemSelected(int position) {
|
||||||
// update the main content by replacing fragments
|
// update the main content by replacing fragments
|
||||||
@ -123,7 +142,7 @@ public class OpenLP extends ActionBarActivity
|
|||||||
actionBar.setDisplayShowTitleEnabled(true);
|
actionBar.setDisplayShowTitleEnabled(true);
|
||||||
actionBar.setTitle(mTitle);
|
actionBar.setTitle(mTitle);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
//noop
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -226,8 +245,7 @@ public class OpenLP extends ActionBarActivity
|
|||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
|
return inflater.inflate(R.layout.fragment_main, container, false);
|
||||||
return rootView;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,427 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
* OpenLP - Open Source Lyrics Projection *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* Copyright (c) 2011-2015 OpenLP Android Developers *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* This program is free software; you can redistribute it and/or modify it *
|
|
||||||
* under the terms of the GNU General Public License as published by the Free *
|
|
||||||
* Software Foundation; version 2 of the License. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT *
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for *
|
|
||||||
* more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License along *
|
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc., 59 *
|
|
||||||
* Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
|
||||||
*******************************************************************************/
|
|
||||||
package org.openlp.android2.activities;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.TreeMap;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.preference.*;
|
|
||||||
import android.text.InputType;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.widget.Toast;
|
|
||||||
import org.openlp.android2.R;
|
|
||||||
|
|
||||||
public class ConnectionActivity extends PreferenceActivity {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
getFragmentManager().beginTransaction()
|
|
||||||
.replace(android.R.id.content, new ConnectionFragment())
|
|
||||||
.commit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class ConnectionFragment extends PreferenceFragment {
|
|
||||||
private final String KEY_PREFERENCE_DISPLAY = "preferenceDisplay";
|
|
||||||
private final String KEY_SERVER_ID = "keyServerId";
|
|
||||||
private final String PREFERENCE_DISPLAY_SERVER = "displayServer";
|
|
||||||
private final String LOG_TAG = ConnectionFragment.class.getName();
|
|
||||||
|
|
||||||
private PreferenceScreen preferenceScreen = null;
|
|
||||||
private boolean resume = true;
|
|
||||||
|
|
||||||
private static String getHostConfigTitleKey(int id) {
|
|
||||||
return HostConfig.KEY_PREFIX + id + ".title";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
addPreferencesFromResource(R.xml.empty_preferences);
|
|
||||||
getPreferenceManager()
|
|
||||||
.setSharedPreferencesName(getString(R.string.keySharedPreferences));
|
|
||||||
preferenceScreen = getPreferenceScreen() == null
|
|
||||||
? getPreferenceManager().createPreferenceScreen(getActivity())
|
|
||||||
: getPreferenceScreen();
|
|
||||||
preferenceScreen.removeAll();
|
|
||||||
String preferenceDisplay = getActivity().getIntent().getStringExtra(KEY_PREFERENCE_DISPLAY);
|
|
||||||
if (preferenceDisplay != null
|
|
||||||
&& preferenceDisplay.equalsIgnoreCase(PREFERENCE_DISPLAY_SERVER)) {
|
|
||||||
constructServerView(getActivity().getIntent().getIntExtra(KEY_SERVER_ID, 1));
|
|
||||||
} else {
|
|
||||||
resume = false;
|
|
||||||
constructOverviewScreen();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void constructOverviewScreen() {
|
|
||||||
getPreferenceScreen().removeAll();
|
|
||||||
Log.i(LOG_TAG, "constructOverviewScreen");
|
|
||||||
Preference configPref = new Preference(getActivity());
|
|
||||||
configPref.setTitle(getString(R.string.connection_available_configurations));
|
|
||||||
configPref.setSummary(getString(R.string.connection_add_by_menu));
|
|
||||||
configPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
|
||||||
int nextId = getNextPrefId(
|
|
||||||
getHostConfigMap(
|
|
||||||
getPreferenceManager()
|
|
||||||
.getSharedPreferences().getAll()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
Preference newPreference = simpleClickablePreferenceFromHostConfig(
|
|
||||||
new HostConfig(
|
|
||||||
getString(R.string.connection_profile_server),
|
|
||||||
nextId));
|
|
||||||
newPreference.setTitle(getString(R.string.connection_profile_new_server));
|
|
||||||
newPreference.setSummary(getString(R.string.connection_profile_not_saved));
|
|
||||||
preferenceScreen.addPreference(newPreference);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
preferenceScreen.addPreference(configPref);
|
|
||||||
List<HostConfig> hostConfigs = getHostConfigs();
|
|
||||||
if (!hostConfigs.isEmpty()) {
|
|
||||||
for (final HostConfig config : getHostConfigs()) {
|
|
||||||
preferenceScreen.addPreference(
|
|
||||||
simpleClickablePreferenceFromHostConfig(config));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void constructServerView(int hostId) {
|
|
||||||
HostConfig hostConfig = hostConfigFromPreferencesForHostId(
|
|
||||||
hostId,
|
|
||||||
getHostConfigMap(
|
|
||||||
getPreferenceManager()
|
|
||||||
.getSharedPreferences()
|
|
||||||
.getAll()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
addPreferenceCategory(preferenceScreen, hostConfig);
|
|
||||||
}
|
|
||||||
|
|
||||||
private Preference simpleClickablePreferenceFromHostConfig(final HostConfig config) {
|
|
||||||
final Preference serverConfig = new Preference(getActivity());
|
|
||||||
serverConfig.setTitle(config.title.getSummary());
|
|
||||||
|
|
||||||
Boolean useSsl = getPreferenceManager()
|
|
||||||
.getSharedPreferences()
|
|
||||||
.getBoolean(config.useSsl.getKey(), false);
|
|
||||||
|
|
||||||
serverConfig.setSummary(String.format(
|
|
||||||
"%s:%s %s",
|
|
||||||
config.hostAddress.getText(),
|
|
||||||
config.hostPort.getText(),
|
|
||||||
useSsl ? "(SSL)" : "")
|
|
||||||
);
|
|
||||||
serverConfig.setOnPreferenceClickListener(
|
|
||||||
new Preference.OnPreferenceClickListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
|
||||||
Intent serverConfigIntent = new Intent(
|
|
||||||
getActivity(),
|
|
||||||
ConnectionActivity.class
|
|
||||||
);
|
|
||||||
serverConfigIntent.putExtra(KEY_PREFERENCE_DISPLAY,
|
|
||||||
PREFERENCE_DISPLAY_SERVER);
|
|
||||||
serverConfigIntent.putExtra(KEY_SERVER_ID, config.id);
|
|
||||||
startActivity(serverConfigIntent);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return serverConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<HostConfig> getHostConfigs() {
|
|
||||||
return hostConfigsFromPreferences(
|
|
||||||
getHostConfigMap(
|
|
||||||
getPreferenceManager()
|
|
||||||
.getSharedPreferences()
|
|
||||||
.getAll()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
private Map<String, ?> getHostConfigMap(Map<String, ?> preferences) {
|
|
||||||
Map<String, Object> configMap = new TreeMap<String, Object>();
|
|
||||||
|
|
||||||
List<String> sortedKeys = new ArrayList<String>(preferences.keySet());
|
|
||||||
Collections.sort(sortedKeys);
|
|
||||||
for (String key : sortedKeys) {
|
|
||||||
if (key.startsWith(HostConfig.KEY_PREFIX)) {
|
|
||||||
configMap.put(key, preferences.get(key));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return configMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<HostConfig> hostConfigsFromPreferences(Map<String, ?> preferences) {
|
|
||||||
List<Integer> hostIds = getHostIds(preferences);
|
|
||||||
List<HostConfig> hostConfigs = new ArrayList<HostConfig>();
|
|
||||||
for (Integer id : hostIds) {
|
|
||||||
hostConfigs.add(hostConfigFromPreferencesForHostId(id, preferences));
|
|
||||||
}
|
|
||||||
return hostConfigs;
|
|
||||||
}
|
|
||||||
|
|
||||||
private HostConfig hostConfigFromPreferencesForHostId(int hostId, Map<String, ?> preferences) {
|
|
||||||
Object titleValue = preferences.get(getHostConfigTitleKey(hostId));
|
|
||||||
String hostTitle = titleValue == null ? getString(R.string.connection_profile_server) : titleValue.toString();
|
|
||||||
HostConfig hostConfig = new HostConfig(
|
|
||||||
hostTitle, hostId
|
|
||||||
);
|
|
||||||
Object hostValueObject = preferences.get(hostConfig.hostAddress.getKey());
|
|
||||||
String hostValue = hostValueObject == null
|
|
||||||
? getString(R.string.hostDefaultValue) : hostValueObject.toString();
|
|
||||||
hostConfig.hostAddress.setText(hostValue);
|
|
||||||
hostConfig.hostAddress.setSummary(hostValue);
|
|
||||||
|
|
||||||
Object portValueObject = preferences.get(hostConfig.hostPort.getKey());
|
|
||||||
String portValue = portValueObject == null
|
|
||||||
? getString(R.string.portDefaultValue) : portValueObject.toString();
|
|
||||||
hostConfig.hostPort.setText(portValue);
|
|
||||||
hostConfig.hostPort.setSummary(portValue);
|
|
||||||
|
|
||||||
Object useridValueObject = preferences.get(hostConfig.userid.getKey());
|
|
||||||
String useridValue = useridValueObject == null
|
|
||||||
? getString(R.string.useridDefaultValue) : useridValueObject.toString();
|
|
||||||
hostConfig.userid.setText(useridValue);
|
|
||||||
hostConfig.userid.setSummary(useridValue);
|
|
||||||
|
|
||||||
Object passwordValueObject = preferences.get(hostConfig.password.getKey());
|
|
||||||
String passwordValue = passwordValueObject == null
|
|
||||||
? getString(R.string.passwordDefaultValue) : passwordValueObject.toString();
|
|
||||||
hostConfig.password.setText(passwordValue);
|
|
||||||
hostConfig.password.setSummary(passwordValue);
|
|
||||||
return hostConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int getNextPrefId(Map<String, ?> preferences) {
|
|
||||||
int max = 0;
|
|
||||||
for (String key : preferences.keySet()) {
|
|
||||||
int prefValue = Integer.valueOf(key.split("\\.")[2]);
|
|
||||||
max = prefValue > max ? prefValue : max;
|
|
||||||
}
|
|
||||||
return max + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<Integer> getHostIds(Map<String, ?> preferences) {
|
|
||||||
Set<Integer> hashSet = new HashSet<Integer>();
|
|
||||||
for (String key : preferences.keySet()) {
|
|
||||||
hashSet.add(Integer.valueOf(key.split("\\.")[2]));
|
|
||||||
}
|
|
||||||
List<Integer> hostIds = new ArrayList<Integer>(hashSet);
|
|
||||||
Collections.sort(hostIds);
|
|
||||||
Log.i(LOG_TAG, "Got HostIds: " + hostIds);
|
|
||||||
return hostIds;
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean addPreferenceCategory(PreferenceScreen preferenceScreen, HostConfig hostConfig) {
|
|
||||||
PreferenceCategory preferenceCategory = new PreferenceCategory(getActivity());
|
|
||||||
preferenceCategory.setTitle(hostConfig.title.getSummary());
|
|
||||||
preferenceCategory.setKey("key.preference.category");
|
|
||||||
preferenceScreen.addPreference(preferenceCategory);
|
|
||||||
preferenceCategory.addPreference(hostConfig.title);
|
|
||||||
preferenceCategory.addPreference(hostConfig.hostAddress);
|
|
||||||
preferenceCategory.addPreference(hostConfig.hostPort);
|
|
||||||
preferenceCategory.addPreference(hostConfig.useSsl);
|
|
||||||
preferenceCategory.addPreference(hostConfig.userid);
|
|
||||||
preferenceCategory.addPreference(hostConfig.password);
|
|
||||||
preferenceCategory.addPreference(hostConfig.remove);
|
|
||||||
preferenceCategory.addPreference(hostConfig.activate);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
if (resume) {
|
|
||||||
Log.i(LOG_TAG, "Resuming...");
|
|
||||||
} else {
|
|
||||||
constructOverviewScreen();
|
|
||||||
Log.i(LOG_TAG, "Not resuming...");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class HostConfig {
|
|
||||||
static final String KEY_PREFIX = "host.config.";
|
|
||||||
final int id;
|
|
||||||
final EditTextPreference title;
|
|
||||||
final EditTextPreference hostAddress;
|
|
||||||
final EditTextPreference hostPort;
|
|
||||||
final CheckBoxPreference useSsl;
|
|
||||||
final EditTextPreference userid;
|
|
||||||
final EditTextPreference password;
|
|
||||||
final Preference remove;
|
|
||||||
final Preference activate;
|
|
||||||
Preference.OnPreferenceChangeListener onPreferenceChangeListener =
|
|
||||||
new Preference.OnPreferenceChangeListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceChange(Preference preference, Object o) {
|
|
||||||
preference.setSummary("" + o);
|
|
||||||
if (preference.getKey().endsWith(".title")) {
|
|
||||||
preferenceScreen
|
|
||||||
.findPreference("key.preference.category")
|
|
||||||
.setTitle("" + o);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
HostConfig(String sTitle, int id) {
|
|
||||||
this.id = id;
|
|
||||||
title = new EditTextPreference(getActivity());
|
|
||||||
title.setSummary(getString(R.string.url));
|
|
||||||
title.getEditText().setHint(getString(R.string.url));
|
|
||||||
title.setTitle(getString(R.string.connection_profile_title));
|
|
||||||
title.setKey(KEY_PREFIX + id + ".title");
|
|
||||||
title.setDefaultValue(getString(R.string.url));
|
|
||||||
title.setSummary(sTitle);
|
|
||||||
title.setDialogTitle(getString(R.string.connection_profile_title));
|
|
||||||
title.setOnPreferenceChangeListener(onPreferenceChangeListener);
|
|
||||||
|
|
||||||
hostAddress = new EditTextPreference(getActivity());
|
|
||||||
hostAddress.setTitle(getString(R.string.url_hint));
|
|
||||||
hostAddress.setKey(KEY_PREFIX + id + ".address");
|
|
||||||
hostAddress.getEditText().setHint(R.string.url_hint);
|
|
||||||
hostAddress.setSummary(getString(R.string.url_hint));
|
|
||||||
hostAddress.setDialogTitle(getString(R.string.url_hint));
|
|
||||||
hostAddress.getEditText().setInputType(InputType.TYPE_TEXT_VARIATION_URI);
|
|
||||||
hostAddress.setOnPreferenceChangeListener(onPreferenceChangeListener);
|
|
||||||
|
|
||||||
hostPort = new EditTextPreference(getActivity());
|
|
||||||
hostPort.setTitle(getString(R.string.port));
|
|
||||||
hostPort.setKey(KEY_PREFIX + id + ".port");
|
|
||||||
hostPort.setSummary(getString(R.string.port));
|
|
||||||
hostPort.setDialogTitle(getString(R.string.port));
|
|
||||||
hostPort.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER);
|
|
||||||
hostPort.setDefaultValue(getString(R.string.portDefaultValue));
|
|
||||||
hostPort.setOnPreferenceChangeListener(onPreferenceChangeListener);
|
|
||||||
|
|
||||||
useSsl = new CheckBoxPreference(getActivity());
|
|
||||||
useSsl.setTitle(getString(R.string.connection_profile_ssl_use));
|
|
||||||
useSsl.setSummary(getString(R.string.connection_profile_ssl_summary));
|
|
||||||
useSsl.setKey(KEY_PREFIX + id + ".usessl");
|
|
||||||
|
|
||||||
userid = new EditTextPreference(getActivity());
|
|
||||||
userid.setSummary(getString(R.string.connection_userid));
|
|
||||||
userid.getEditText().setHint(getString(R.string.connection_userid));
|
|
||||||
userid.setTitle(getString(R.string.connection_userid));
|
|
||||||
userid.setKey(KEY_PREFIX + id + ".userid");
|
|
||||||
userid.setDefaultValue(getString(R.string.useridDefaultValue));
|
|
||||||
userid.setSummary(getString(R.string.useridDefaultValue));
|
|
||||||
userid.setDialogTitle(getString(R.string.connection_userid));
|
|
||||||
userid.setOnPreferenceChangeListener(onPreferenceChangeListener);
|
|
||||||
|
|
||||||
password = new EditTextPreference(getActivity());
|
|
||||||
password.setSummary(getString(R.string.connection_password));
|
|
||||||
password.getEditText().setHint(getString(R.string.connection_password));
|
|
||||||
password.setTitle(getString(R.string.connection_password));
|
|
||||||
password.setKey(KEY_PREFIX + id + ".password");
|
|
||||||
password.setDefaultValue(getString(R.string.passwordDefaultValue));
|
|
||||||
password.setSummary(getString(R.string.passwordDefaultValue));
|
|
||||||
password.setDialogTitle(getString(R.string.connection_password));
|
|
||||||
password.setOnPreferenceChangeListener(onPreferenceChangeListener);
|
|
||||||
|
|
||||||
remove = new Preference(getActivity());
|
|
||||||
remove.setTitle(getString(R.string.connection_profile_remove));
|
|
||||||
remove.setSummary(getString(R.string.connection_profile_remove_summary));
|
|
||||||
remove.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
|
||||||
SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
|
|
||||||
SharedPreferences.Editor editor = prefs.edit();
|
|
||||||
editor.remove(hostAddress.getKey());
|
|
||||||
editor.remove(hostPort.getKey());
|
|
||||||
editor.remove(title.getKey());
|
|
||||||
editor.remove(useSsl.getKey());
|
|
||||||
editor.remove(userid.getKey());
|
|
||||||
editor.remove(password.getKey());
|
|
||||||
editor.commit();
|
|
||||||
getActivity().onBackPressed();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
activate = new Preference(getActivity());
|
|
||||||
activate.setTitle(getString(R.string.connection_profile_activate));
|
|
||||||
activate.setSummary(getString(R.string.connection_profile_summary_activate));
|
|
||||||
activate.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
|
||||||
SharedPreferences preferences = getPreferenceManager().getSharedPreferences();
|
|
||||||
SharedPreferences.Editor editor = preferences.edit();
|
|
||||||
String host = preferences.getString(hostAddress.getKey(),
|
|
||||||
getString(R.string.hostDefaultValue));
|
|
||||||
editor.putString(getString(R.string.keyHost), host);
|
|
||||||
String port = preferences.getString(hostPort.getKey(),
|
|
||||||
getString(R.string.portDefaultValue));
|
|
||||||
editor.putString(getString(R.string.keyPort), port);
|
|
||||||
Boolean bUseSsl = preferences.getBoolean(useSsl.getKey(), false);
|
|
||||||
editor.putBoolean(getString(R.string.key_ssl_use), bUseSsl);
|
|
||||||
String suserid = preferences.getString(userid.getKey(), getString(R.string.useridDefaultValue));
|
|
||||||
editor.putString(getString(R.string.key_userid), suserid);
|
|
||||||
String spassword = preferences.getString(password.getKey(),
|
|
||||||
getString(R.string.passwordDefaultValue));
|
|
||||||
editor.putString(getString(R.string.key_password), spassword);
|
|
||||||
|
|
||||||
editor.putString(
|
|
||||||
getString(R.string.key_profile_selected_title),
|
|
||||||
preferences.getString(
|
|
||||||
title.getKey(),
|
|
||||||
getString(R.string.url)));
|
|
||||||
|
|
||||||
editor.commit();
|
|
||||||
Toast.makeText(getActivity(),
|
|
||||||
String.format(
|
|
||||||
"%s: %s\n[%s:%s] %s",
|
|
||||||
getString(R.string.connection_profile_active_toast),
|
|
||||||
HostConfig.this.title.getText(),
|
|
||||||
host,
|
|
||||||
port,
|
|
||||||
useSsl.isChecked() ? "(SSL)" : ""
|
|
||||||
),
|
|
||||||
Toast.LENGTH_LONG).show();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "HostConfig{" +
|
|
||||||
"id=" + id +
|
|
||||||
", title='" + title + '\'' +
|
|
||||||
", hostAddress=" + hostAddress.getKey() +
|
|
||||||
", hostPort=" + hostPort.getKey() +
|
|
||||||
'}';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,88 +1,220 @@
|
|||||||
/******************************************************************************
|
|
||||||
* OpenLP - Open Source Lyrics Projection *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* Copyright (c) 2011-2015 OpenLP Android Developers *
|
|
||||||
* --------------------------------------------------------------------------- *
|
|
||||||
* This program is free software; you can redistribute it and/or modify it *
|
|
||||||
* under the terms of the GNU General Public License as published by the Free *
|
|
||||||
* Software Foundation; version 2 of the License. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT *
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for *
|
|
||||||
* more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License along *
|
|
||||||
* with this program; if not, write to the Free Software Foundation, Inc., 59 *
|
|
||||||
* Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
|
||||||
*******************************************************************************/
|
|
||||||
package org.openlp.android2.activities;
|
package org.openlp.android2.activities;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.annotation.TargetApi;
|
||||||
import android.content.SharedPreferences;
|
import android.content.Context;
|
||||||
|
import android.content.res.Configuration;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.preference.ListPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.PreferenceActivity;
|
import android.preference.PreferenceActivity;
|
||||||
|
import android.preference.PreferenceCategory;
|
||||||
import android.preference.PreferenceFragment;
|
import android.preference.PreferenceFragment;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
|
|
||||||
import org.openlp.android2.R;
|
import org.openlp.android2.R;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A {@link PreferenceActivity} that presents a set of application settings. On
|
||||||
|
* handset devices, settings are presented as a single list. On tablets,
|
||||||
|
* settings are split by category, with category headers shown to the left of
|
||||||
|
* the list of settings.
|
||||||
|
* <p/>
|
||||||
|
* See <a href="http://developer.android.com/design/patterns/settings.html">
|
||||||
|
* Android Design: Settings</a> for design guidelines and the <a
|
||||||
|
* href="http://developer.android.com/guide/topics/ui/settings.html">Settings
|
||||||
|
* API Guide</a> for more information on developing a Settings UI.
|
||||||
|
*/
|
||||||
public class SettingsActivity extends PreferenceActivity {
|
public class SettingsActivity extends PreferenceActivity {
|
||||||
|
/**
|
||||||
|
* Determines whether to always show the simplified settings UI, where
|
||||||
|
* settings are presented in a single list. When false, settings are shown
|
||||||
|
* as a master/detail two-pane view on tablets. When true, a single pane is
|
||||||
|
* shown on tablets.
|
||||||
|
*/
|
||||||
|
private static final boolean ALWAYS_SIMPLE_PREFS = false;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onPostCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onPostCreate(savedInstanceState);
|
||||||
|
|
||||||
//todo fix this code to work with fragments but not now!
|
setupSimplePreferencesScreen();
|
||||||
//getFragmentManager().beginTransaction()
|
}
|
||||||
// .replace(android.R.id.content, new SettingsFragment())
|
|
||||||
// .commit();
|
|
||||||
|
|
||||||
getPreferenceManager()
|
/**
|
||||||
.setSharedPreferencesName(getString(R.string.keySharedPreferences));
|
* Shows the simplified settings UI if the device configuration if the
|
||||||
|
* device configuration dictates that a simplified, single-pane UI should be
|
||||||
|
* shown.
|
||||||
|
*/
|
||||||
|
private void setupSimplePreferencesScreen() {
|
||||||
|
if (!isSimplePreferences(this)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// In the simplified UI, fragments are not used at all and we instead
|
||||||
|
// use the older PreferenceActivity APIs.
|
||||||
|
|
||||||
|
// Add 'general' preferences.
|
||||||
addPreferencesFromResource(R.xml.pref_general);
|
addPreferencesFromResource(R.xml.pref_general);
|
||||||
final SharedPreferences sharedPreferences = getPreferenceManager()
|
|
||||||
.getSharedPreferences();
|
|
||||||
|
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
// Add 'notifications' preferences, and a corresponding header.
|
||||||
stringBuilder.append(sharedPreferences.getString(
|
PreferenceCategory fakeHeader = new PreferenceCategory(this);
|
||||||
getString(R.string.keyHost),
|
fakeHeader.setTitle(R.string.connection_configuration);
|
||||||
getString(R.string.not_set)));
|
getPreferenceScreen().addPreference(fakeHeader);
|
||||||
stringBuilder.append(":");
|
addPreferencesFromResource(R.xml.pref_notification);
|
||||||
|
|
||||||
Boolean useSsl = sharedPreferences.getBoolean(
|
|
||||||
getString(R.string.key_ssl_use), false);
|
|
||||||
stringBuilder.append(
|
|
||||||
String.format("%s %s",
|
|
||||||
sharedPreferences.getString(
|
|
||||||
getString(R.string.keyPort),
|
|
||||||
getString(R.string.not_set)), useSsl ? "(SSL)" : ""));
|
|
||||||
|
|
||||||
final Preference hostPreference = findPreference(getString(R.string.keyHost));
|
|
||||||
hostPreference.setTitle(
|
|
||||||
getPreferenceManager().getSharedPreferences()
|
|
||||||
.getString(
|
|
||||||
getString(R.string.key_profile_selected_title),
|
|
||||||
getString(R.string.url)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
hostPreference.setSummary(stringBuilder.toString());
|
|
||||||
|
|
||||||
Preference preference = findPreference(getString(R.string.keyHost));
|
|
||||||
preference.setIntent(new Intent(this, ConnectionActivity.class));
|
|
||||||
|
|
||||||
|
// Bind the summaries of EditText/List/Dialog/Ringtone preferences to
|
||||||
|
// their values. When their values change, their summaries are updated
|
||||||
|
// to reflect the new value, per the Android Design guidelines.
|
||||||
|
bindPreferenceSummaryToValue(findPreference("key_text_size"));
|
||||||
|
bindPreferenceSummaryToValue(findPreference("key_connection_timeout"));
|
||||||
|
bindPreferenceSummaryToValue(findPreference("key_host"));
|
||||||
|
bindPreferenceSummaryToValue(findPreference("key_port"));
|
||||||
|
bindPreferenceSummaryToValue(findPreference("key_userid"));
|
||||||
|
bindPreferenceSummaryToValue(findPreference("key_password"));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class SettingsFragment extends PreferenceFragment {
|
/**
|
||||||
@Override
|
* {@inheritDoc}
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
*/
|
||||||
super.onCreate(savedInstanceState);
|
@Override
|
||||||
getPreferenceManager().setSharedPreferencesName(getString(R.string.keySharedPreferences));
|
public boolean onIsMultiPane() {
|
||||||
// Load the preferences from an XML resource
|
return isXLargeTablet(this) && !isSimplePreferences(this);
|
||||||
addPreferencesFromResource(R.xml.pref_general);
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to determine if the device has an extra-large screen. For
|
||||||
|
* example, 10" tablets are extra-large.
|
||||||
|
*/
|
||||||
|
private static boolean isXLargeTablet(Context context) {
|
||||||
|
return (context.getResources().getConfiguration().screenLayout
|
||||||
|
& Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines whether the simplified settings UI should be shown. This is
|
||||||
|
* true if this is forced via {@link #ALWAYS_SIMPLE_PREFS}, or the device
|
||||||
|
* doesn't have newer APIs like {@link PreferenceFragment}, or the device
|
||||||
|
* doesn't have an extra-large screen. In these cases, a single-pane
|
||||||
|
* "simplified" settings UI should be shown.
|
||||||
|
*/
|
||||||
|
private static boolean isSimplePreferences(Context context) {
|
||||||
|
return ALWAYS_SIMPLE_PREFS
|
||||||
|
|| Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB
|
||||||
|
|| !isXLargeTablet(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
||||||
|
public void onBuildHeaders(List<Header> target) {
|
||||||
|
if (!isSimplePreferences(this)) {
|
||||||
|
loadHeadersFromResource(R.xml.pref_headers, target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean isValidFragment (String fragmentName) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A preference value change listener that updates the preference's summary
|
||||||
|
* to reflect its new value.
|
||||||
|
*/
|
||||||
|
private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object value) {
|
||||||
|
String stringValue = value.toString();
|
||||||
|
|
||||||
|
if (preference instanceof ListPreference) {
|
||||||
|
// For list preferences, look up the correct display value in
|
||||||
|
// the preference's 'entries' list.
|
||||||
|
ListPreference listPreference = (ListPreference) preference;
|
||||||
|
int index = listPreference.findIndexOfValue(stringValue);
|
||||||
|
|
||||||
|
// Set the summary to reflect the new value.
|
||||||
|
preference.setSummary(
|
||||||
|
index >= 0
|
||||||
|
? listPreference.getEntries()[index]
|
||||||
|
: null);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// For all other preferences, set the summary to the value's
|
||||||
|
// simple string representation.
|
||||||
|
preference.setSummary(stringValue);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Binds a preference's summary to its value. More specifically, when the
|
||||||
|
* preference's value is changed, its summary (line of text below the
|
||||||
|
* preference title) is updated to reflect the value. The summary is also
|
||||||
|
* immediately updated upon calling this method. The exact display format is
|
||||||
|
* dependent on the type of preference.
|
||||||
|
*
|
||||||
|
* @see #sBindPreferenceSummaryToValueListener
|
||||||
|
*/
|
||||||
|
private static void bindPreferenceSummaryToValue(Preference preference) {
|
||||||
|
// Set the listener to watch for value changes.
|
||||||
|
preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
|
||||||
|
|
||||||
|
// Trigger the listener immediately with the preference's
|
||||||
|
// current value.
|
||||||
|
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference,
|
||||||
|
PreferenceManager
|
||||||
|
.getDefaultSharedPreferences(preference.getContext())
|
||||||
|
.getString(preference.getKey(), ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This fragment shows general preferences only. It is used when the
|
||||||
|
* activity is showing a two-pane settings UI.
|
||||||
|
*/
|
||||||
|
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
||||||
|
public static class GeneralPreferenceFragment extends PreferenceFragment {
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
addPreferencesFromResource(R.xml.pref_general);
|
||||||
|
|
||||||
|
// Bind the summaries of EditText/List/Dialog/Ringtone preferences
|
||||||
|
// to their values. When their values change, their summaries are
|
||||||
|
// updated to reflect the new value, per the Android Design
|
||||||
|
// guidelines.
|
||||||
|
bindPreferenceSummaryToValue(findPreference("key_text_size"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This fragment shows notification preferences only. It is used when the
|
||||||
|
* activity is showing a two-pane settings UI.
|
||||||
|
*/
|
||||||
|
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
||||||
|
public static class NotificationPreferenceFragment extends PreferenceFragment {
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
addPreferencesFromResource(R.xml.pref_notification);
|
||||||
|
|
||||||
|
// Bind the summaries of EditText/List/Dialog/Ringtone preferences
|
||||||
|
// to their values. When their values change, their summaries are
|
||||||
|
// updated to reflect the new value, per the Android Design
|
||||||
|
// guidelines.
|
||||||
|
bindPreferenceSummaryToValue(findPreference("key_connection_timeout"));
|
||||||
|
bindPreferenceSummaryToValue(findPreference("key_host"));
|
||||||
|
bindPreferenceSummaryToValue(findPreference("key_port"));
|
||||||
|
bindPreferenceSummaryToValue(findPreference("key_userid"));
|
||||||
|
bindPreferenceSummaryToValue(findPreference("key_password"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,12 +20,11 @@ package org.openlp.android2.common;
|
|||||||
|
|
||||||
|
|
||||||
import java.security.KeyStore;
|
import java.security.KeyStore;
|
||||||
import java.util.*;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.loopj.android.http.AsyncHttpClient;
|
import com.loopj.android.http.AsyncHttpClient;
|
||||||
import org.apache.http.auth.Credentials;
|
|
||||||
import org.apache.http.auth.UsernamePasswordCredentials;
|
|
||||||
import org.openlp.android2.R;
|
import org.openlp.android2.R;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -42,56 +41,29 @@ public class OpenLPHttpClient {
|
|||||||
this.context = context;
|
this.context = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getPreference(Map preferences, String key, String defaultValue) {
|
|
||||||
if (preferences.containsKey(key)) {
|
|
||||||
return preferences.get(key).toString();
|
|
||||||
} else {
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Integer getPreference(Map preferences, String key, Integer defaultValue) {
|
|
||||||
if (preferences.containsKey(key)) {
|
|
||||||
return Integer.valueOf(preferences.get(key).toString());
|
|
||||||
} else {
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Boolean getPreference(Map preferences, String key, Boolean defaultValue) {
|
|
||||||
if (preferences.containsKey(key)) {
|
|
||||||
return Boolean.valueOf(preferences.get(key).toString());
|
|
||||||
} else {
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAbsoluteUrl(AsyncHttpClient client) {
|
public String getAbsoluteUrl(AsyncHttpClient client) {
|
||||||
|
|
||||||
|
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
|
||||||
String urlBase = getBaseUrl();
|
String urlBase = getBaseUrl();
|
||||||
|
|
||||||
Map<String, ?> preferences = context.getSharedPreferences(context.getString(R.string.keySharedPreferences),
|
Log.d(LOG_TAG, "Base Url set to " + urlBase);
|
||||||
Context.MODE_PRIVATE).getAll();
|
|
||||||
|
|
||||||
String userid = getPreference(preferences, context.getString(R.string.key_userid), "openlp");
|
String userid = sharedPrefs.getString(context.getString(R.string.key_userid), "openlp");
|
||||||
|
|
||||||
String password = getPreference(preferences, context.getString(R.string.key_password), "password");
|
String password = sharedPrefs.getString(context.getString(R.string.key_password), "password");
|
||||||
|
|
||||||
Log.d(LOG_TAG, "Credentials set to " + userid + " : " + password);
|
Log.d(LOG_TAG, "Credentials set to " + userid + " : " + password);
|
||||||
client.setBasicAuth(userid,password);
|
client.setBasicAuth(userid,password);
|
||||||
|
|
||||||
Credentials creds = new UsernamePasswordCredentials(userid, password);
|
|
||||||
|
|
||||||
int connectionTimeout = context.getResources().getInteger(
|
int connectionTimeout = context.getResources().getInteger(
|
||||||
R.integer.connectionTimeoutDefaultValue);
|
R.integer.connectionTimeoutDefaultValue);
|
||||||
|
|
||||||
if (getPreference(preferences, context.getString(R.string.keyEnableCustomTimeout), false)) {
|
if (sharedPrefs.getBoolean(context.getString(R.string.key_enable_custom_timeout), false)) {
|
||||||
Log.d(LOG_TAG, "Overriding Connection and Socket timeouts");
|
Log.d(LOG_TAG, "Overriding Connection and Socket timeouts");
|
||||||
|
|
||||||
connectionTimeout = getPreference(preferences,
|
connectionTimeout = sharedPrefs.getInt(context.getString(R.string.key_connection_timeout),
|
||||||
context.getString(R.string.keyConnectionTimeout),
|
context.getResources().getInteger(R.integer.connectionTimeoutDefaultValue)
|
||||||
context.getResources().getInteger(
|
|
||||||
R.integer.connectionTimeoutDefaultValue)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
client.setTimeout(connectionTimeout);
|
client.setTimeout(connectionTimeout);
|
||||||
@ -104,18 +76,19 @@ public class OpenLPHttpClient {
|
|||||||
client.setSSLSocketFactory(sf);
|
client.setSSLSocketFactory(sf);
|
||||||
}
|
}
|
||||||
catch (Exception e){
|
catch (Exception e){
|
||||||
|
//
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return urlBase;
|
return urlBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getBaseUrl(){
|
public String getBaseUrl(){
|
||||||
Map<String, ?> preferences = context.getSharedPreferences(context.getString(R.string.keySharedPreferences), Context.MODE_PRIVATE).getAll();
|
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
|
||||||
useSSL = getPreference(preferences, context.getString(R.string.key_ssl_use), false);
|
useSSL =sharedPrefs.getBoolean(context.getString(R.string.key_ssl_use), false);
|
||||||
String host = getPreference(preferences, context.getString(R.string.keyHost),
|
String host = sharedPrefs.getString(context.getString(R.string.key_host),
|
||||||
context.getString(R.string.hostDefaultValue));
|
context.getString(R.string.host_default_value));
|
||||||
String port = getPreference(preferences, context.getString(R.string.keyPort), "4316");
|
String port = sharedPrefs.getString(context.getString(R.string.key_port), "4316");
|
||||||
|
|
||||||
return String.format("http%s://%s:%s", useSSL ? "s" : "", host, port);
|
return String.format("http%s://%s:%s", useSSL ? "s" : "", host, port);
|
||||||
|
|
||||||
|
@ -36,8 +36,7 @@ public class AboutFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static AboutFragment newInstance() {
|
public static AboutFragment newInstance() {
|
||||||
AboutFragment fragment = new AboutFragment();
|
return new AboutFragment();
|
||||||
return fragment;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -35,8 +35,7 @@ public class HomeFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static HomeFragment newInstance() {
|
public static HomeFragment newInstance() {
|
||||||
HomeFragment fragment = new HomeFragment();
|
return new HomeFragment();
|
||||||
return fragment;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -33,6 +33,7 @@ import android.widget.ListAdapter;
|
|||||||
import android.widget.SimpleAdapter;
|
import android.widget.SimpleAdapter;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
@ -54,8 +55,7 @@ public class LiveListFragment extends OpenLPFragment {
|
|||||||
private String LOG_TAG = LiveListFragment.class.getName();
|
private String LOG_TAG = LiveListFragment.class.getName();
|
||||||
|
|
||||||
public static LiveListFragment newInstance() {
|
public static LiveListFragment newInstance() {
|
||||||
LiveListFragment fragment = new LiveListFragment();
|
return new LiveListFragment();
|
||||||
return fragment;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -84,22 +84,22 @@ public class LiveListFragment extends OpenLPFragment {
|
|||||||
List<HashMap<String, String>> aList = new ArrayList<HashMap<String, String>>();
|
List<HashMap<String, String>> aList = new ArrayList<HashMap<String, String>>();
|
||||||
selected = 0;
|
selected = 0;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
JSONArray items = new JSONObject(json).getJSONObject("results").getJSONArray("slides");
|
JSONArray items = new JSONObject(json).getJSONObject("results").getJSONArray("slides");
|
||||||
for (int i = 0; i < items.length(); ++i) {
|
for (int i = 0; i < items.length(); ++i) {
|
||||||
JSONObject item = items.getJSONObject(i);
|
JSONObject item = items.getJSONObject(i);
|
||||||
|
|
||||||
HashMap<String, String> hm = new HashMap<String, String>();
|
HashMap<String, String> hm = new HashMap<String, String>();
|
||||||
hm.put("tag", item.getString("tag"));
|
hm.put("tag", item.getString("tag"));
|
||||||
if (item.getString("selected").equals("true")) {
|
if (item.getString("selected").equals("true")) {
|
||||||
selected = i;
|
selected = i;
|
||||||
}
|
|
||||||
hm.put("liveListNormal", Html.fromHtml(item.getString("html")).toString());
|
|
||||||
aList.add(hm);
|
|
||||||
}
|
}
|
||||||
} catch (JSONException e) {
|
hm.put("liveListNormal", Html.fromHtml(item.getString("html")).toString());
|
||||||
e.printStackTrace();
|
aList.add(hm);
|
||||||
}
|
}
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
// Keys used in Hashmap
|
// Keys used in Hashmap
|
||||||
String[] from = {"tag", "liveListNormal", "liveListSelected"};
|
String[] from = {"tag", "liveListNormal", "liveListSelected"};
|
||||||
@ -108,30 +108,30 @@ public class LiveListFragment extends OpenLPFragment {
|
|||||||
int[] to = {R.id.tag, R.id.liveListNormal, R.id.liveListSelected};
|
int[] to = {R.id.tag, R.id.liveListNormal, R.id.liveListSelected};
|
||||||
|
|
||||||
SharedPreferences prefs = context.getSharedPreferences(
|
SharedPreferences prefs = context.getSharedPreferences(
|
||||||
context.getString(R.string.keySharedPreferences),
|
context.getString(R.string.key_shared_preferences),
|
||||||
Context.MODE_PRIVATE);
|
Context.MODE_PRIVATE);
|
||||||
|
|
||||||
final int size = Integer.parseInt(prefs.getString(
|
final int size = Integer.parseInt(prefs.getString(
|
||||||
context.getString(R.string.keyTextSize),
|
context.getString(R.string.key_text_size),
|
||||||
String.valueOf(context.getResources().getInteger(
|
String.valueOf(context.getResources().getInteger(
|
||||||
R.integer.textSizeDefaultValue))));
|
R.integer.textSizeDefaultValue))));
|
||||||
|
|
||||||
// Instantiating an adapter to store each items
|
// Instantiating an adapter to store each items
|
||||||
ListAdapter adapter = new SimpleAdapter(getActivity().getBaseContext(), aList,
|
ListAdapter adapter = new SimpleAdapter(getActivity().getBaseContext(), aList,
|
||||||
R.layout.fragment_livelist, from, to){
|
R.layout.fragment_livelist, from, to) {
|
||||||
public View getView(int position, View convertView, ViewGroup parent) {
|
public View getView(int position, View convertView, ViewGroup parent) {
|
||||||
View view = super.getView(position, convertView, parent);
|
View view = super.getView(position, convertView, parent);
|
||||||
TextView text1 = (TextView) view.findViewById(R.id.tag);
|
TextView text1 = (TextView) view.findViewById(R.id.tag);
|
||||||
text1.setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
|
text1.setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
|
||||||
TextView text2 = (TextView) view.findViewById(R.id.liveListNormal);
|
TextView text2 = (TextView) view.findViewById(R.id.liveListNormal);
|
||||||
text2.setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
|
text2.setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
|
||||||
if (selected == position){
|
if (selected == position) {
|
||||||
text2.setTextColor(Color.parseColor("#000000"));
|
text2.setTextColor(Color.parseColor("#000000"));
|
||||||
text2.setTypeface(null, Typeface.BOLD_ITALIC);
|
text2.setTypeface(null, Typeface.BOLD_ITALIC);
|
||||||
}
|
}
|
||||||
return view;
|
return view;
|
||||||
|
|
||||||
};
|
}
|
||||||
};
|
};
|
||||||
setListAdapter(adapter);
|
setListAdapter(adapter);
|
||||||
getListView().setSelection(selected - 1);
|
getListView().setSelection(selected - 1);
|
||||||
@ -140,7 +140,7 @@ public class LiveListFragment extends OpenLPFragment {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void refreshDisplay(){
|
public void refreshDisplay() {
|
||||||
Log.d(LOG_TAG, "Resuming...");
|
Log.d(LOG_TAG, "Resuming...");
|
||||||
triggerTextRequest(Api.LIVE_TEXT);
|
triggerTextRequest(Api.LIVE_TEXT);
|
||||||
}
|
}
|
||||||
|
@ -27,8 +27,7 @@ public class LiveWebFragment extends WebFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static LiveWebFragment newInstance() {
|
public static LiveWebFragment newInstance() {
|
||||||
LiveWebFragment fragment = new LiveWebFragment();
|
return new LiveWebFragment();
|
||||||
return fragment;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.openlp.android2.fragments;
|
package org.openlp.android2.fragments;
|
||||||
|
|
||||||
|
import android.graphics.drawable.ColorDrawable;
|
||||||
import android.support.v7.app.ActionBarActivity;
|
import android.support.v7.app.ActionBarActivity;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.support.v7.app.ActionBar;
|
import android.support.v7.app.ActionBar;
|
||||||
@ -184,6 +185,7 @@ public class NavigationDrawerFragment extends Fragment {
|
|||||||
ActionBar actionBar = getActionBar();
|
ActionBar actionBar = getActionBar();
|
||||||
actionBar.setDisplayHomeAsUpEnabled(true);
|
actionBar.setDisplayHomeAsUpEnabled(true);
|
||||||
actionBar.setHomeButtonEnabled(true);
|
actionBar.setHomeButtonEnabled(true);
|
||||||
|
actionBar.setBackgroundDrawable(new ColorDrawable(0xFF000000));
|
||||||
|
|
||||||
// ActionBarDrawerToggle ties together the the proper interactions
|
// ActionBarDrawerToggle ties together the the proper interactions
|
||||||
// between the navigation drawer and the action bar app icon.
|
// between the navigation drawer and the action bar app icon.
|
||||||
@ -300,11 +302,6 @@ public class NavigationDrawerFragment extends Fragment {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.getItemId() == R.id.action_example) {
|
|
||||||
Toast.makeText(getActivity(), "Example action.", Toast.LENGTH_SHORT).show();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,11 +161,11 @@ public class ServiceListFragment extends OpenLPFragment {
|
|||||||
int[] to = {R.id.icon, R.id.serviceListText};
|
int[] to = {R.id.icon, R.id.serviceListText};
|
||||||
|
|
||||||
SharedPreferences prefs = context.getSharedPreferences(
|
SharedPreferences prefs = context.getSharedPreferences(
|
||||||
context.getString(R.string.keySharedPreferences),
|
context.getString(R.string.key_shared_preferences),
|
||||||
Context.MODE_PRIVATE);
|
Context.MODE_PRIVATE);
|
||||||
|
|
||||||
final int size = Integer.parseInt(prefs.getString(
|
final int size = Integer.parseInt(prefs.getString(
|
||||||
context.getString(R.string.keyTextSize),
|
context.getString(R.string.key_text_size),
|
||||||
String.valueOf(context.getResources().getInteger(
|
String.valueOf(context.getResources().getInteger(
|
||||||
R.integer.textSizeDefaultValue))));
|
R.integer.textSizeDefaultValue))));
|
||||||
|
|
||||||
|
@ -29,7 +29,6 @@ public class StageWebFragment extends WebFragment {
|
|||||||
|
|
||||||
|
|
||||||
public static StageWebFragment newInstance() {
|
public static StageWebFragment newInstance() {
|
||||||
StageWebFragment fragment = new StageWebFragment();
|
return new StageWebFragment();
|
||||||
return fragment;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
<!-- A DrawerLayout is intended to be used as the top-level content view using match_parent for both width and height to consume the full space available. -->
|
<!-- A DrawerLayout is intended to be used as the top-level content view using match_parent for both width and height to consume the full space available. -->
|
||||||
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent" android:layout_height="match_parent"
|
android:id="@+id/drawer_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
tools:context=".MainActivity">
|
tools:context=".MainActivity">
|
||||||
|
|
||||||
<!-- As the main content view, the view below consumes the entire
|
<!-- As the main content view, the view below consumes the entire
|
||||||
space available using match_parent in both dimensions. -->
|
space available using match_parent in both dimensions. -->
|
||||||
<FrameLayout android:id="@+id/container" android:layout_width="match_parent"
|
<FrameLayout
|
||||||
|
android:id="@+id/container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="match_parent" />
|
||||||
|
|
||||||
<!-- android:layout_gravity="start" tells DrawerLayout to treat
|
<!-- android:layout_gravity="start" tells DrawerLayout to treat
|
||||||
@ -16,9 +20,12 @@
|
|||||||
android:layout_gravity="left" instead. -->
|
android:layout_gravity="left" instead. -->
|
||||||
<!-- The drawer is given a fixed width in dp and extends the full height of
|
<!-- The drawer is given a fixed width in dp and extends the full height of
|
||||||
the container. -->
|
the container. -->
|
||||||
<fragment android:id="@+id/navigation_drawer"
|
<fragment
|
||||||
android:layout_width="@dimen/navigation_drawer_width" android:layout_height="match_parent"
|
android:id="@+id/navigation_drawer"
|
||||||
android:layout_gravity="start" android:name="org.openlp.android2.fragments.NavigationDrawerFragment"
|
android:name="org.openlp.android2.fragments.NavigationDrawerFragment"
|
||||||
|
android:layout_width="@dimen/navigation_drawer_width"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="start"
|
||||||
tools:layout="@layout/fragment_navigation_drawer" />
|
tools:layout="@layout/fragment_navigation_drawer" />
|
||||||
|
|
||||||
</android.support.v4.widget.DrawerLayout>
|
</android.support.v4.widget.DrawerLayout>
|
||||||
|
@ -13,10 +13,11 @@
|
|||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
android:text="@string/enter_alert_text"
|
android:text="@string/enter_alert_text"
|
||||||
android:id="@+id/textView"
|
android:id="@+id/textView"
|
||||||
android:autoText="true"
|
android:inputType="textLongMessage"
|
||||||
android:textStyle="bold|italic"
|
android:textStyle="bold|italic"
|
||||||
android:textSize="40px"
|
android:textSize="40px"
|
||||||
android:height="45dp"/>
|
android:height="45px"/>
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/alertText"
|
android:id="@+id/alertText"
|
||||||
android:layout_width="290dp"
|
android:layout_width="290dp"
|
||||||
|
@ -13,10 +13,9 @@
|
|||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
android:text="@string/display_blank_summary"
|
android:text="@string/display_blank_summary"
|
||||||
android:id="@+id/textView"
|
android:id="@+id/textView"
|
||||||
android:autoText="true"
|
|
||||||
android:textStyle="bold|italic"
|
android:textStyle="bold|italic"
|
||||||
android:textSize="40px"
|
android:textSize="40px"
|
||||||
android:height="45dp"/>
|
android:height="45px"/>
|
||||||
<Button
|
<Button
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
|
|
||||||
<item android:id="@+id/action_example" android:title="@string/action_settings"
|
|
||||||
app:showAsAction="withText|ifRoom" />
|
|
||||||
<item android:id="@+id/action_settings" android:title="@string/action_settings"
|
|
||||||
android:orderInCategory="100" app:showAsAction="never" />
|
|
||||||
</menu>
|
|
@ -5,23 +5,23 @@
|
|||||||
android:visible="false"
|
android:visible="false"
|
||||||
android:icon="@drawable/ic_arrow_back"
|
android:icon="@drawable/ic_arrow_back"
|
||||||
android:title="@string/action_back"
|
android:title="@string/action_back"
|
||||||
app:showAsAction="always" />
|
app:showAsAction="ifRoom" />
|
||||||
<item android:id="@+id/action_blank"
|
<item android:id="@+id/action_blank"
|
||||||
android:checkable="true"
|
android:checkable="true"
|
||||||
android:visible="true"
|
android:visible="true"
|
||||||
android:icon="@drawable/ic_settings_display"
|
android:icon="@drawable/ic_settings_display"
|
||||||
android:title="@string/action_blank"
|
android:title="@string/action_blank"
|
||||||
app:showAsAction="always" />
|
app:showAsAction="ifRoom" />
|
||||||
<item android:id="@+id/action_alert"
|
<item android:id="@+id/action_alert"
|
||||||
android:checkable="true"
|
android:checkable="true"
|
||||||
android:visible="true"
|
android:visible="true"
|
||||||
android:icon="@drawable/ic_alarm_add"
|
android:icon="@drawable/ic_alarm_add"
|
||||||
android:title="@string/action_alert"
|
android:title="@string/action_alert"
|
||||||
app:showAsAction="always" />
|
app:showAsAction="ifRoom" />
|
||||||
<item android:id="@+id/action_refresh"
|
<item android:id="@+id/action_refresh"
|
||||||
android:icon="@drawable/ic_refresh"
|
android:icon="@drawable/ic_refresh"
|
||||||
android:title="@string/action_refresh"
|
android:title="@string/action_refresh"
|
||||||
app:showAsAction="never|withText" />
|
app:showAsAction="ifRoom" />
|
||||||
<item android:id="@+id/action_search"
|
<item android:id="@+id/action_search"
|
||||||
android:icon="@drawable/ic_search"
|
android:icon="@drawable/ic_search"
|
||||||
android:title="@string/action_search"
|
android:title="@string/action_search"
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<!-- STRING -->
|
<!-- STRING -->
|
||||||
<string name="hostDefaultValue">192.168.1.1</string>
|
<string name="host_default_value">192.168.0.1</string>
|
||||||
<string name="portDefaultValue">4316</string>
|
<string name="port_default_value">4316</string>
|
||||||
<string name="ssl.port.default">4317</string>
|
<string name="userid_default_value">userid</string>
|
||||||
<string name="useridDefaultValue">userid</string>
|
<string name="password_default_value">password</string>
|
||||||
<string name="passwordDefaultValue">password</string>
|
|
||||||
|
|
||||||
<!-- INTEGER -->
|
<!-- INTEGER -->
|
||||||
<integer name="connectionTimeoutDefaultValue">3000</integer>
|
<integer name="connectionTimeoutDefaultValue">3000</integer>
|
||||||
|
@ -1,15 +1,12 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<string name="keyEnableCustomTimeout">enableCustomTimeout</string>
|
<string name="key_enable_custom_timeout">key_enable_custom_timeout</string>
|
||||||
<string name="keyBackgroundService">backgroundService</string>
|
<string name="key_connection_timeout">key_connection_timeout</string>
|
||||||
<string name="keyConnectionTimeout">connectionTimeout</string>
|
<string name="key_text_size">key_text_size</string>
|
||||||
<string name="keyDisplayBlankType">blankType</string>
|
<string name="key_host">key_host</string>
|
||||||
<string name="keyTextSize">textSize</string>
|
<string name="key_port">key_port</string>
|
||||||
<string name="keySocketTimeout">socketTimeout</string>
|
<string name="key_userid">key_userid</string>
|
||||||
<string name="keyHost">keyHost</string>
|
<string name="key_password">key_password</string>
|
||||||
<string name="keyPort">keyPort</string>
|
<string name="key_shared_preferences">key_shared_preferences</string>
|
||||||
<string name="key.userid">key.userid</string>
|
<string name="key_ssl_use">key_ssl_use</string>
|
||||||
<string name="key.password">key.password</string>
|
|
||||||
<string name="keySharedPreferences">keySharedPreferences</string>
|
|
||||||
<string name="key.ssl.use">ssl.use</string>
|
|
||||||
<string name="key.profile.selected.title">key.profile.selected.title</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="about_text">Version</string>
|
|
||||||
<string name="about_display_1">OpenLP is free church presentation software</string>
|
<string name="about_display_1">OpenLP is free church presentation software</string>
|
||||||
<string name="about_display_2">Find out more about visit the OpenLP website_</string>
|
<string name="about_display_2">Find out more about visit the OpenLP website_</string>
|
||||||
<string name="about_display_4">Copyright</string>
|
<string name="about_display_4">Copyright</string>
|
||||||
@ -14,33 +13,20 @@
|
|||||||
<string name="action_alert">Alert</string>
|
<string name="action_alert">Alert</string>
|
||||||
<string name="action_back">Back</string>
|
<string name="action_back">Back</string>
|
||||||
<string name="action_blank">Toggle Display</string>
|
<string name="action_blank">Toggle Display</string>
|
||||||
<string name="action_connections">Connections</string>
|
|
||||||
<string name="action_preferences">Preferences</string>
|
<string name="action_preferences">Preferences</string>
|
||||||
<string name="action_refresh">Refresh</string>
|
<string name="action_refresh">Refresh</string>
|
||||||
<string name="action_search">Search</string>
|
<string name="action_search">Search</string>
|
||||||
<string name="app_name">OpenLP</string>
|
<string name="app_name">OpenLP</string>
|
||||||
<string name="cancel">Cancel</string>
|
<string name="cancel">Cancel</string>
|
||||||
<string name="connection_add_by_menu">Tap to add a new profile</string>
|
<string name="connection_configuration">Configure Network</string>
|
||||||
<string name="connection_available_configurations">List of available profiles</string>
|
|
||||||
<string name="connection_password">Password</string>
|
<string name="connection_password">Password</string>
|
||||||
<string name="connection_profile_activate">Save and Activate</string>
|
<string name="connection_profile">Server Details</string>
|
||||||
<string name="connection_profile_active_toast">Active Profile</string>
|
|
||||||
<string name="connection_profile_active">Active Profile - Tap to manage</string>
|
|
||||||
<string name="connection_profile_not_saved">Tap to edit properties</string>
|
|
||||||
<string name="connection_profile_new_server">New Server</string>
|
|
||||||
<string name="connection_profile_remove">Remove</string>
|
|
||||||
<string name="connection_profile_remove_summary">Remove this configuration</string>
|
|
||||||
<string name="connection_profile_server">Server</string>
|
|
||||||
<string name="connection_profile_ssl_use">Use HTTPS</string>
|
<string name="connection_profile_ssl_use">Use HTTPS</string>
|
||||||
<string name="connection_profile_ssl_summary">Specify whether HTTPS should be used</string>
|
<string name="connection_profile_ssl_summary">Specify whether HTTPS should be used</string>
|
||||||
<string name="connection_profile_summary_activate">Tap to set active</string>
|
|
||||||
<string name="connection_profile_title">Profile Title</string>
|
|
||||||
<string name="connection_timeout">Connection Timeout</string>
|
<string name="connection_timeout">Connection Timeout</string>
|
||||||
<string name="connection_timedout">Connection timed out</string>
|
|
||||||
<string name="connection_timeout_summary">Select a value (milliseconds)</string>
|
<string name="connection_timeout_summary">Select a value (milliseconds)</string>
|
||||||
<string name="connection_userid">Userid</string>
|
<string name="connection_userid">Userid</string>
|
||||||
<string name="custom_timeout">Set Custom Timeout</string>
|
<string name="custom_timeout">Set Custom Timeout</string>
|
||||||
<string name="custom_timeouts_summary">Check to modify timeout settings</string>
|
|
||||||
<string name="display_blank_summary">Select the required blank type</string>
|
<string name="display_blank_summary">Select the required blank type</string>
|
||||||
<string name="display_desktop">Blank display to Desktop</string>
|
<string name="display_desktop">Blank display to Desktop</string>
|
||||||
<string name="display_reset">Reset Display</string>
|
<string name="display_reset">Reset Display</string>
|
||||||
@ -55,15 +41,14 @@
|
|||||||
<string name="navigation_drawer_open">Open navigation drawer</string>
|
<string name="navigation_drawer_open">Open navigation drawer</string>
|
||||||
<string name="navigation_drawer_close">Close navigation drawer</string>
|
<string name="navigation_drawer_close">Close navigation drawer</string>
|
||||||
<string name="none">None</string>
|
<string name="none">None</string>
|
||||||
<string name="not_set">Not set</string>
|
|
||||||
<string name="port">Port</string>
|
<string name="port">Port</string>
|
||||||
<string name="process">Process</string>
|
<string name="process">Process</string>
|
||||||
<string name="service_list">Service List</string>
|
<string name="service_list">Service List</string>
|
||||||
<string name="stage_view">Stage View</string>
|
<string name="stage_view">Stage View</string>
|
||||||
<string name="text_size_type">Set Display Text Size</string>
|
<string name="text_size_type">Display Text Size</string>
|
||||||
<string name="text_size">Select display text size</string>
|
<string name="text_size">Select display text size</string>
|
||||||
<string name="text_size_summary">Change the Service text size</string>
|
<string name="text_size_summary">Change the Service text size</string>
|
||||||
<string name="url">Server</string>
|
<string name="title_activity_settings">Settings</string>
|
||||||
<string name="url_hint">Hostname or IP</string>
|
<string name="url_hint">Hostname or IP</string>
|
||||||
<string name="unable">Unable to process request - check network settings</string>
|
<string name="unable">Unable to process request - check network settings</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
<resources>
|
|
||||||
<string name="title_activity_settings">Settings</string>
|
|
||||||
|
|
||||||
<!-- Strings related to Settings -->
|
|
||||||
|
|
||||||
<!-- Example General settings -->
|
|
||||||
<string name="pref_header_general">General</string>
|
|
||||||
|
|
||||||
<string name="pref_title_social_recommendations">Enable social recommendations</string>
|
|
||||||
<string name="pref_description_social_recommendations">Recommendations for people to contact
|
|
||||||
based on your message history
|
|
||||||
</string>
|
|
||||||
|
|
||||||
<string name="pref_title_display_name">Display name</string>
|
|
||||||
<string name="pref_default_display_name">John Smith</string>
|
|
||||||
|
|
||||||
<string name="pref_title_add_friends_to_messages">Add friends to messages</string>
|
|
||||||
<string-array name="pref_example_list_titles">
|
|
||||||
<item>Always</item>
|
|
||||||
<item>When possible</item>
|
|
||||||
<item>Never</item>
|
|
||||||
</string-array>
|
|
||||||
<string-array name="pref_example_list_values">
|
|
||||||
<item>1</item>
|
|
||||||
<item>0</item>
|
|
||||||
<item>-1</item>
|
|
||||||
</string-array>
|
|
||||||
|
|
||||||
<!-- Example settings for Data & Sync -->
|
|
||||||
<string name="pref_header_data_sync">Data & sync</string>
|
|
||||||
|
|
||||||
<string name="pref_title_sync_frequency">Sync frequency</string>
|
|
||||||
<string-array name="pref_sync_frequency_titles">
|
|
||||||
<item>15 minutes</item>
|
|
||||||
<item>30 minutes</item>
|
|
||||||
<item>1 hour</item>
|
|
||||||
<item>3 hours</item>
|
|
||||||
<item>6 hours</item>
|
|
||||||
<item>Never</item>
|
|
||||||
</string-array>
|
|
||||||
<string-array name="pref_sync_frequency_values">
|
|
||||||
<item>15</item>
|
|
||||||
<item>30</item>
|
|
||||||
<item>60</item>
|
|
||||||
<item>180</item>
|
|
||||||
<item>360</item>
|
|
||||||
<item>-1</item>
|
|
||||||
</string-array>
|
|
||||||
|
|
||||||
<string name="pref_title_system_sync_settings">System sync settings</string>
|
|
||||||
|
|
||||||
<!-- Example settings for Notifications -->
|
|
||||||
<string name="pref_header_notifications">Notifications</string>
|
|
||||||
|
|
||||||
<string name="pref_title_new_message_notifications">New message notifications</string>
|
|
||||||
|
|
||||||
<string name="pref_title_ringtone">Ringtone</string>
|
|
||||||
<string name="pref_ringtone_silent">Silent</string>
|
|
||||||
|
|
||||||
<string name="pref_title_vibrate">Vibrate</string>
|
|
||||||
</resources>
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<PreferenceScreen
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
>
|
|
||||||
|
|
||||||
</PreferenceScreen>
|
|
@ -1,21 +0,0 @@
|
|||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
|
|
||||||
<!-- NOTE: Hide buttons to simplify the UI. Users can touch outside the dialog to
|
|
||||||
dismiss it. -->
|
|
||||||
<!-- NOTE: ListPreference's summary should be set to its value by the activity code. -->
|
|
||||||
<ListPreference
|
|
||||||
android:key="sync_frequency"
|
|
||||||
android:title="@string/pref_title_sync_frequency"
|
|
||||||
android:entries="@array/pref_sync_frequency_titles"
|
|
||||||
android:entryValues="@array/pref_sync_frequency_values"
|
|
||||||
android:defaultValue="180"
|
|
||||||
android:negativeButtonText="@null"
|
|
||||||
android:positiveButtonText="@null" />
|
|
||||||
|
|
||||||
<!-- This preference simply launches an intent when selected. Use this UI sparingly, per
|
|
||||||
design guidelines. -->
|
|
||||||
<Preference android:title="@string/pref_title_system_sync_settings">
|
|
||||||
<intent android:action="android.settings.SYNC_SETTINGS" />
|
|
||||||
</Preference>
|
|
||||||
|
|
||||||
</PreferenceScreen>
|
|
@ -1,41 +1,11 @@
|
|||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<PreferenceCategory
|
|
||||||
android:title="@string/connection_profile_active"
|
<ListPreference
|
||||||
android:key="category.server">
|
android:key="key_text_size"
|
||||||
<Preference
|
android:defaultValue="@integer/textSizeDefaultValue"
|
||||||
android:title="@string/url"
|
android:entries="@array/textSizeValueEntries"
|
||||||
android:key="@string/keyHost"
|
android:entryValues="@array/textSizeValues"
|
||||||
android:hint="@string/url_hint"
|
android:summary="@string/text_size_summary"
|
||||||
android:inputType="textUri"
|
android:title="@string/text_size" />
|
||||||
android:editable="false"
|
|
||||||
android:name="@string/url"/>
|
|
||||||
</PreferenceCategory>
|
|
||||||
<PreferenceCategory
|
|
||||||
android:key="pref_key_test_size_setting"
|
|
||||||
android:title="@string/text_size_type">
|
|
||||||
<ListPreference
|
|
||||||
android:defaultValue="@integer/textSizeDefaultValue"
|
|
||||||
android:entries="@array/textSizeValueEntries"
|
|
||||||
android:entryValues="@array/textSizeValues"
|
|
||||||
android:key="@string/keyTextSize"
|
|
||||||
android:summary="@string/text_size_summary"
|
|
||||||
android:title="@string/text_size" />
|
|
||||||
</PreferenceCategory>
|
|
||||||
<PreferenceCategory
|
|
||||||
android:key="pref_key_custom_timeout_setting"
|
|
||||||
android:title="@string/custom_timeout">
|
|
||||||
<CheckBoxPreference
|
|
||||||
android:key="@string/keyEnableCustomTimeout"
|
|
||||||
android:summary="@string/custom_timeouts_summary"
|
|
||||||
android:title="@string/enable_custom_timeouts" />
|
|
||||||
<ListPreference
|
|
||||||
android:defaultValue="@integer/connectionTimeoutDefaultValue"
|
|
||||||
android:dependency="@string/keyEnableCustomTimeout"
|
|
||||||
android:entries="@array/socketValueEntries"
|
|
||||||
android:entryValues="@array/socketValues"
|
|
||||||
android:key="@string/keyConnectionTimeout"
|
|
||||||
android:summary="@string/connection_timeout_summary"
|
|
||||||
android:title="@string/connection_timeout" />
|
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@ -3,15 +3,12 @@
|
|||||||
<!-- These settings headers are only used on tablets. -->
|
<!-- These settings headers are only used on tablets. -->
|
||||||
|
|
||||||
<header
|
<header
|
||||||
android:fragment="org.openlp.android2.fragments.SettingsActivity$GeneralPreferenceFragment"
|
android:fragment="org.openlp.android2.activities.SettingsActivity$GeneralPreferenceFragment"
|
||||||
android:title="@string/pref_header_general" />
|
android:title="@string/text_size_type" />
|
||||||
|
|
||||||
<header
|
<header
|
||||||
android:fragment="org.openlp.android2.fragments.SettingsActivity$NotificationPreferenceFragment"
|
android:fragment="org.openlp.android2.activities.SettingsActivity$NotificationPreferenceFragment"
|
||||||
android:title="@string/pref_header_notifications" />
|
android:title="@string/connection_configuration" />
|
||||||
|
|
||||||
<header
|
|
||||||
android:fragment="org.openlp.android2.fragments.SettingsActivity$DataSyncPreferenceFragment"
|
|
||||||
android:title="@string/pref_header_data_sync" />
|
|
||||||
|
|
||||||
</preference-headers>
|
</preference-headers>
|
||||||
|
@ -1,27 +1,59 @@
|
|||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
<!-- A 'parent' preference, which enables/disables child preferences (below)
|
<PreferenceCategory
|
||||||
when checked/unchecked. -->
|
android:key="pref_key_custom_timeout_setting"
|
||||||
<CheckBoxPreference
|
android:title="@string/custom_timeout">
|
||||||
android:key="notifications_new_message"
|
<CheckBoxPreference
|
||||||
android:title="@string/pref_title_new_message_notifications"
|
android:key="@string/key_enable_custom_timeout"
|
||||||
android:defaultValue="true" />
|
android:title="@string/enable_custom_timeouts" />
|
||||||
|
<ListPreference
|
||||||
|
android:key="@string/key_connection_timeout"
|
||||||
|
android:defaultValue="@integer/connectionTimeoutDefaultValue"
|
||||||
|
android:dependency="@string/key_enable_custom_timeout"
|
||||||
|
android:entries="@array/socketValueEntries"
|
||||||
|
android:entryValues="@array/socketValues"
|
||||||
|
android:summary="@string/connection_timeout_summary"
|
||||||
|
android:title="@string/connection_timeout" />
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
<!-- Allows the user to choose a ringtone in the 'notification' category. -->
|
<PreferenceCategory
|
||||||
<!-- NOTE: This preference will be enabled only when the checkbox above is checked. -->
|
android:title="@string/connection_profile">
|
||||||
<!-- NOTE: RingtonePreference's summary should be set to its value by the activity code. -->
|
|
||||||
<RingtonePreference
|
|
||||||
android:dependency="notifications_new_message"
|
|
||||||
android:key="notifications_new_message_ringtone"
|
|
||||||
android:title="@string/pref_title_ringtone"
|
|
||||||
android:ringtoneType="notification"
|
|
||||||
android:defaultValue="content://settings/system/notification_sound" />
|
|
||||||
|
|
||||||
<!-- NOTE: This preference will be enabled only when the checkbox above is checked. -->
|
<EditTextPreference
|
||||||
<CheckBoxPreference
|
android:key="@string/key_host"
|
||||||
android:dependency="notifications_new_message"
|
android:title="@string/url_hint"
|
||||||
android:key="notifications_new_message_vibrate"
|
android:summary="@string/url_hint"
|
||||||
android:title="@string/pref_title_vibrate"
|
android:defaultValue="@string/host_default_value"
|
||||||
android:defaultValue="true" />
|
android:inputType="textUri" />
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:key="@string/key_port"
|
||||||
|
android:title="@string/port"
|
||||||
|
android:summary="@string/port"
|
||||||
|
android:defaultValue="@string/port_default_value"
|
||||||
|
android:inputType="number" />
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="@string/key_ssl_use"
|
||||||
|
android:title="@string/connection_profile_ssl_use"
|
||||||
|
android:summary="@string/connection_profile_ssl_summary"
|
||||||
|
android:defaultValue="false" />
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:key="@string/key_userid"
|
||||||
|
android:title="@string/connection_userid"
|
||||||
|
android:summary="@string/userid_default_value"
|
||||||
|
android:defaultValue="@string/userid_default_value"
|
||||||
|
android:inputType="textNoSuggestions" />
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:key="@string/key_password"
|
||||||
|
android:title="@string/connection_password"
|
||||||
|
android:summary="@string/password_default_value"
|
||||||
|
android:defaultValue="@string/password_default_value"
|
||||||
|
android:inputType="textVisiblePassword" />
|
||||||
|
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
Loading…
Reference in New Issue
Block a user