From df979c04414c1f94b65a301ba07e7edcffbe8ba7 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Fri, 12 Feb 2016 21:46:51 +0100 Subject: [PATCH] Fixed some compile time errors by including the previous aspm preferences --- .../quasseldroid_ng/ui/chat/MainActivity.java | 7 +- .../quasseldroid_ng/ui/chat/Settings.java | 6 +- .../util/accounts/AccountManager.java | 2 - .../AbstractPreferenceElement.java | 75 +++++++++++++++++++ .../util/preferences/BooleanPreference.java | 40 ++++++++++ .../util/preferences/FloatPreference.java | 40 ++++++++++ .../util/preferences/IntPreference.java | 40 ++++++++++ .../util/preferences/LongPreference.java | 40 ++++++++++ .../util/preferences/OnChangeListener.java | 26 +++++++ .../util/preferences/PreferenceElement.java | 34 +++++++++ .../util/preferences/StringPreference.java | 40 ++++++++++ 11 files changed, 339 insertions(+), 11 deletions(-) create mode 100644 app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/AbstractPreferenceElement.java create mode 100644 app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/BooleanPreference.java create mode 100644 app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/FloatPreference.java create mode 100644 app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/IntPreference.java create mode 100644 app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/LongPreference.java create mode 100644 app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/OnChangeListener.java create mode 100644 app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/PreferenceElement.java create mode 100644 app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/StringPreference.java diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/MainActivity.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/MainActivity.java index 88bfaa700..a6d46c706 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/MainActivity.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/MainActivity.java @@ -34,23 +34,18 @@ import com.mikepenz.materialdrawer.AccountHeader; import com.mikepenz.materialdrawer.AccountHeaderBuilder; import com.mikepenz.materialdrawer.Drawer; -import aspm.annotations.BooleanPreference; -import aspm.annotations.IntPreference; -import aspm.annotations.PreferenceWrapper; -import aspm.annotations.StringPreference; import butterknife.Bind; import butterknife.ButterKnife; import de.kuschku.libquassel.events.ConnectionChangeEvent; import de.kuschku.libquassel.events.GeneralErrorEvent; -import de.kuschku.quasseldroid_ng.BuildConfig; import de.kuschku.quasseldroid_ng.R; import de.kuschku.quasseldroid_ng.service.ClientBackgroundThread; -import de.kuschku.quasseldroid_ng.util.BoundActivity; import de.kuschku.quasseldroid_ng.ui.chat.fragment.ChatFragment; import de.kuschku.quasseldroid_ng.ui.chat.fragment.LoadingFragment; import de.kuschku.quasseldroid_ng.ui.chat.util.ActivityImplFactory; import de.kuschku.quasseldroid_ng.ui.chat.util.ILayoutHelper; import de.kuschku.quasseldroid_ng.ui.chat.util.Status; +import de.kuschku.quasseldroid_ng.util.BoundActivity; import de.kuschku.quasseldroid_ng.util.accounts.AccountManager; import static de.kuschku.util.AndroidAssert.assertNotNull; diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/Settings.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/Settings.java index 0d3e09c2b..27d9b66ac 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/Settings.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/Settings.java @@ -24,9 +24,9 @@ package de.kuschku.quasseldroid_ng.ui.chat; import android.content.Context; import android.content.SharedPreferences; -import aspm.BooleanPreference; -import aspm.IntPreference; -import aspm.StringPreference; +import de.kuschku.quasseldroid_ng.util.preferences.BooleanPreference; +import de.kuschku.quasseldroid_ng.util.preferences.IntPreference; +import de.kuschku.quasseldroid_ng.util.preferences.StringPreference; import de.kuschku.util.backports.Objects; public class Settings { diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/accounts/AccountManager.java b/app/src/main/java/de/kuschku/quasseldroid_ng/util/accounts/AccountManager.java index 5aa436af0..127359db6 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/util/accounts/AccountManager.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/accounts/AccountManager.java @@ -26,8 +26,6 @@ import android.content.Context; import java.util.Set; import java.util.UUID; -import aspm.StringPreference; - public class AccountManager { AccountManagerHelper helper; diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/AbstractPreferenceElement.java b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/AbstractPreferenceElement.java new file mode 100644 index 000000000..32f257b2e --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/AbstractPreferenceElement.java @@ -0,0 +1,75 @@ +/* + * QuasselDroid - Quassel client for Android + * Copyright (C) 2016 Janne Koschinski + * Copyright (C) 2016 Ken Børge Viktil + * Copyright (C) 2016 Magnus Fjell + * Copyright (C) 2016 Martin Sandsmark <martin.sandsmark@kde.org> + * + * 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, either version 3 of the License, or (at your option) + * any later version. + * + * 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, see <http://www.gnu.org/licenses/>. + */ + +package de.kuschku.quasseldroid_ng.util.preferences; + +import android.content.SharedPreferences; + +import java.util.HashSet; +import java.util.Set; + +public abstract class AbstractPreferenceElement<T> implements PreferenceElement<T>, OnChangeListener<T> { + private final Set<OnChangeListener<T>> listeners = new HashSet<>(); + protected SharedPreferences pref; + protected SharedPreferences.Editor edit; + protected String key; + protected T defValue; + + public AbstractPreferenceElement(SharedPreferences pref, String key, T defValue) { + this.pref = pref; + this.key = key; + this.defValue = defValue; + } + + public void change() { + change(get()); + } + + public void change(T value) { + for (OnChangeListener<T> listener : listeners) + listener.change(value); + } + + public void addChangeListener(OnChangeListener<T> listener) { + listeners.add(listener); + } + + public void removeChangeListener(OnChangeListener<T> listener) { + listeners.remove(listener); + } + + protected abstract void put(T value); + + public void batch(SharedPreferences.Editor edit) { + if (this.edit != null) this.edit.commit(); + this.edit = edit; + } + + public T get() { + return or(defValue); + } + + public void set(T value) { + edit = pref.edit(); + put(value); + edit.commit(); + } +} diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/BooleanPreference.java b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/BooleanPreference.java new file mode 100644 index 000000000..0d0b0ce33 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/BooleanPreference.java @@ -0,0 +1,40 @@ +/* + * QuasselDroid - Quassel client for Android + * Copyright (C) 2016 Janne Koschinski + * Copyright (C) 2016 Ken Børge Viktil + * Copyright (C) 2016 Magnus Fjell + * Copyright (C) 2016 Martin Sandsmark <martin.sandsmark@kde.org> + * + * 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, either version 3 of the License, or (at your option) + * any later version. + * + * 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, see <http://www.gnu.org/licenses/>. + */ + +package de.kuschku.quasseldroid_ng.util.preferences; + +import android.content.SharedPreferences; + +public class BooleanPreference extends AbstractPreferenceElement<Boolean> { + public BooleanPreference(SharedPreferences pref, String key, Boolean init) { + super(pref, key, init); + } + + @Override + protected void put(Boolean value) { + edit.putBoolean(key, value); + } + + @Override + public Boolean or(Boolean defValue) { + return pref.getBoolean(key, defValue); + } +} diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/FloatPreference.java b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/FloatPreference.java new file mode 100644 index 000000000..7e6a44fe7 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/FloatPreference.java @@ -0,0 +1,40 @@ +/* + * QuasselDroid - Quassel client for Android + * Copyright (C) 2016 Janne Koschinski + * Copyright (C) 2016 Ken Børge Viktil + * Copyright (C) 2016 Magnus Fjell + * Copyright (C) 2016 Martin Sandsmark <martin.sandsmark@kde.org> + * + * 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, either version 3 of the License, or (at your option) + * any later version. + * + * 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, see <http://www.gnu.org/licenses/>. + */ + +package de.kuschku.quasseldroid_ng.util.preferences; + +import android.content.SharedPreferences; + +public class FloatPreference extends AbstractPreferenceElement<Float> { + public FloatPreference(SharedPreferences pref, String key, Float init) { + super(pref, key, init); + } + + @Override + protected void put(Float value) { + edit.putFloat(key, value); + } + + @Override + public Float or(Float defValue) { + return pref.getFloat(key, defValue); + } +} diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/IntPreference.java b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/IntPreference.java new file mode 100644 index 000000000..f598b3096 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/IntPreference.java @@ -0,0 +1,40 @@ +/* + * QuasselDroid - Quassel client for Android + * Copyright (C) 2016 Janne Koschinski + * Copyright (C) 2016 Ken Børge Viktil + * Copyright (C) 2016 Magnus Fjell + * Copyright (C) 2016 Martin Sandsmark <martin.sandsmark@kde.org> + * + * 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, either version 3 of the License, or (at your option) + * any later version. + * + * 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, see <http://www.gnu.org/licenses/>. + */ + +package de.kuschku.quasseldroid_ng.util.preferences; + +import android.content.SharedPreferences; + +public class IntPreference extends AbstractPreferenceElement<Integer> { + public IntPreference(SharedPreferences pref, String key, Integer defValue) { + super(pref, key, defValue); + } + + @Override + protected void put(Integer value) { + edit.putInt(key, value); + } + + @Override + public Integer or(Integer defValue) { + return pref.getInt(key, defValue); + } +} diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/LongPreference.java b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/LongPreference.java new file mode 100644 index 000000000..ad51dd392 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/LongPreference.java @@ -0,0 +1,40 @@ +/* + * QuasselDroid - Quassel client for Android + * Copyright (C) 2016 Janne Koschinski + * Copyright (C) 2016 Ken Børge Viktil + * Copyright (C) 2016 Magnus Fjell + * Copyright (C) 2016 Martin Sandsmark <martin.sandsmark@kde.org> + * + * 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, either version 3 of the License, or (at your option) + * any later version. + * + * 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, see <http://www.gnu.org/licenses/>. + */ + +package de.kuschku.quasseldroid_ng.util.preferences; + +import android.content.SharedPreferences; + +public class LongPreference extends AbstractPreferenceElement<Long> { + public LongPreference(SharedPreferences pref, String key, Long defValue) { + super(pref, key, defValue); + } + + @Override + protected void put(Long value) { + edit.putLong(key, value); + } + + @Override + public Long or(Long defValue) { + return pref.getLong(key, defValue); + } +} diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/OnChangeListener.java b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/OnChangeListener.java new file mode 100644 index 000000000..80554b99b --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/OnChangeListener.java @@ -0,0 +1,26 @@ +/* + * QuasselDroid - Quassel client for Android + * Copyright (C) 2016 Janne Koschinski + * Copyright (C) 2016 Ken Børge Viktil + * Copyright (C) 2016 Magnus Fjell + * Copyright (C) 2016 Martin Sandsmark <martin.sandsmark@kde.org> + * + * 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, either version 3 of the License, or (at your option) + * any later version. + * + * 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, see <http://www.gnu.org/licenses/>. + */ + +package de.kuschku.quasseldroid_ng.util.preferences; + +public interface OnChangeListener<T> { + void change(T value); +} diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/PreferenceElement.java b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/PreferenceElement.java new file mode 100644 index 000000000..68897a345 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/PreferenceElement.java @@ -0,0 +1,34 @@ +/* + * QuasselDroid - Quassel client for Android + * Copyright (C) 2016 Janne Koschinski + * Copyright (C) 2016 Ken Børge Viktil + * Copyright (C) 2016 Magnus Fjell + * Copyright (C) 2016 Martin Sandsmark <martin.sandsmark@kde.org> + * + * 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, either version 3 of the License, or (at your option) + * any later version. + * + * 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, see <http://www.gnu.org/licenses/>. + */ + +package de.kuschku.quasseldroid_ng.util.preferences; + +public interface PreferenceElement<T> { + void addChangeListener(OnChangeListener<T> listener); + + void removeChangeListener(OnChangeListener<T> listener); + + T get(); + + T or(T otherwise); + + void set(T value); +} diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/StringPreference.java b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/StringPreference.java new file mode 100644 index 000000000..0221090b9 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/util/preferences/StringPreference.java @@ -0,0 +1,40 @@ +/* + * QuasselDroid - Quassel client for Android + * Copyright (C) 2016 Janne Koschinski + * Copyright (C) 2016 Ken Børge Viktil + * Copyright (C) 2016 Magnus Fjell + * Copyright (C) 2016 Martin Sandsmark <martin.sandsmark@kde.org> + * + * 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, either version 3 of the License, or (at your option) + * any later version. + * + * 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, see <http://www.gnu.org/licenses/>. + */ + +package de.kuschku.quasseldroid_ng.util.preferences; + +import android.content.SharedPreferences; + +public class StringPreference extends AbstractPreferenceElement<String> { + public StringPreference(SharedPreferences pref, String key, String init) { + super(pref, key, init); + } + + @Override + protected void put(String value) { + edit.putString(key, value); + } + + @Override + public String or(String defValue) { + return pref.getString(key, defValue); + } +} -- GitLab