aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan Hansberry <hansberry@google.com>2015-09-15 13:45:26 -0700
committerRyan Hansberry <hansberry@google.com>2015-09-15 13:45:26 -0700
commitf264b2856e981ef1a61c3af80022ab22af87e0b3 (patch)
tree80343fbcadc52fcc45a443e4530dbd25318e6ba0
parentd4c1626e228050cc02c4a92e0cda567ae31b6d8d (diff)
downloadconnectbot-f264b2856e981ef1a61c3af80022ab22af87e0b3.tar.gz
connectbot-f264b2856e981ef1a61c3af80022ab22af87e0b3.tar.bz2
connectbot-f264b2856e981ef1a61c3af80022ab22af87e0b3.zip
Switched to using SwitchCompat instead of PreferenceSwitch in order to support pre-APIv14.
Big thanks to: https://plus.sandbox.google.com/+ChristianGollner/posts/badausxo1J6
-rw-r--r--app/src/main/java/org/connectbot/SwitchCompatPreference.java51
-rw-r--r--app/src/main/res/layout/switch_compat_preference_layout.xml30
-rw-r--r--app/src/main/res/values/styles.xml4
-rw-r--r--app/src/main/res/xml/preferences.xml39
4 files changed, 111 insertions, 13 deletions
diff --git a/app/src/main/java/org/connectbot/SwitchCompatPreference.java b/app/src/main/java/org/connectbot/SwitchCompatPreference.java
new file mode 100644
index 0000000..b93dcab
--- /dev/null
+++ b/app/src/main/java/org/connectbot/SwitchCompatPreference.java
@@ -0,0 +1,51 @@
+/*
+ * ConnectBot: simple, powerful, open-source SSH client for Android
+ * Copyright 2015 Kenny Root, Jeffrey Sharkey
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.connectbot;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.os.Build;
+import android.preference.CheckBoxPreference;
+import android.util.AttributeSet;
+
+public class SwitchCompatPreference extends CheckBoxPreference {
+
+ public SwitchCompatPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+ public SwitchCompatPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init();
+ }
+
+ public SwitchCompatPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public SwitchCompatPreference(Context context) {
+ super(context);
+ init();
+ }
+
+ private void init() {
+ setWidgetLayoutResource(R.layout.switch_compat_preference_layout);
+ }
+}
diff --git a/app/src/main/res/layout/switch_compat_preference_layout.xml b/app/src/main/res/layout/switch_compat_preference_layout.xml
new file mode 100644
index 0000000..89deeb0
--- /dev/null
+++ b/app/src/main/res/layout/switch_compat_preference_layout.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ ConnectBot: simple, powerful, open-source SSH client for Android
+ ~ Copyright 2015 Kenny Root, Jeffrey Sharkey
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<android.support.v7.widget.SwitchCompat
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@android:id/checkbox"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@null"
+ android:clickable="false"
+ android:focusable="false"
+ android:theme="@style/SwitchCompatTheme"
+ app:showText="false"
+ /> \ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 39dc628..b73a4a6 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -69,4 +69,8 @@
<style name="ListItemSecondLineText.Blue" parent="ListItemSecondLineText">
<item name="android:textColor">@color/blue</item>
</style>
+
+ <style name="SwitchCompatTheme" parent="Theme.AppCompat">
+ <item name="colorAccent">@color/accent</item>
+ </style>
</resources>
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index d04119f..ecddd71 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -20,21 +20,24 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="memkeys"
android:title="@string/pref_memkeys_title"
android:summary="@string/pref_memkeys_summary"
android:defaultValue="true"
/>
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="connPersist"
android:title="@string/pref_conn_persist_title"
android:summary="@string/pref_conn_persist_summary"
android:defaultValue="true"
/>
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="wifilock"
android:title="@string/pref_wifilock_title"
android:summary="@string/pref_wifilock_summary"
@@ -75,28 +78,32 @@
android:defaultValue="Default"
/>
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="titlebarhide"
android:title="@string/pref_titlebarhide_title"
android:summary="@string/pref_titlebarhide_summary"
android:defaultValue="false"
/>
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="fullscreen"
android:title="@string/pref_fullscreen_title"
android:summary="@string/pref_fullscreen_summary"
android:defaultValue="false"
/>
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="volumefont"
android:title="@string/pref_volumefont_title"
android:summary="@string/pref_volumefont_summary"
android:defaultValue="true"
/>
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="keepalive"
android:title="@string/pref_keepalive_title"
android:summary="@string/pref_keepalive_summary"
@@ -107,14 +114,16 @@
<PreferenceCategory
android:title="@string/pref_keyboard_category">
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="shiftfkeys"
android:title="@string/pref_shiftfkeys_title"
android:summary="@string/pref_shiftfkeys_summary"
android:defaultValue="false"
/>
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="ctrlfkeys"
android:title="@string/pref_ctrlfkeys_title"
android:summary="@string/pref_ctrlfkeys_summary"
@@ -148,7 +157,8 @@
android:defaultValue="Ctrl+A then Space"
/>
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="bumpyarrows"
android:title="@string/pref_bumpyarrows_title"
android:summary="@string/pref_bumpyarrows_summary"
@@ -159,7 +169,8 @@
<PreferenceCategory
android:title="@string/pref_bell_category">
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="bell"
android:title="@string/pref_bell_title"
android:defaultValue="true"
@@ -170,13 +181,15 @@
android:title="@string/pref_bell_volume_title"
/>
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="bellVibrate"
android:title="@string/pref_bell_vibrate_title"
android:defaultValue="true"
/>
- <SwitchPreference
+ <CheckBoxPreference
+ android:widgetLayout="@layout/switch_compat_preference_layout"
android:key="bellNotification"
android:title="@string/pref_bell_notification_title"
android:summary="@string/pref_bell_notification_summary"