diff --git a/app/build.gradle b/app/build.gradle index 18449596d247f0ab72aba9ca5530b0978f347375..4fc5bbab8c28529d4b557034da7af0a3ceea5783 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -156,6 +156,7 @@ dependencies { compile('com.mikepenz:materialdrawer:5.0.3@aar') { transitive = true } compile('com.github.afollestad.material-dialogs:core:0.8.5.3@aar') { transitive = true } compile('com.github.afollestad.material-dialogs:commons:0.8.5.3@aar') { transitive = true } + compile 'com.afollestad:material-cab:0.1.12' // ORM apt "com.github.Raizlabs.DBFlow:dbflow-processor:3.1.1" diff --git a/app/src/main/java/de/kuschku/libquassel/client/BufferManager.java b/app/src/main/java/de/kuschku/libquassel/client/BufferManager.java index 749bc98ef395e8fa8f871fc1021fb6ea574c3712..3befa33e06b6818749d4096147a824834f6e48f8 100644 --- a/app/src/main/java/de/kuschku/libquassel/client/BufferManager.java +++ b/app/src/main/java/de/kuschku/libquassel/client/BufferManager.java @@ -24,7 +24,6 @@ package de.kuschku.libquassel.client; import android.support.annotation.IntRange; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.util.Log; import java.util.HashMap; import java.util.HashSet; @@ -41,7 +40,6 @@ import de.kuschku.libquassel.localtypes.buffers.ChannelBuffer; import de.kuschku.libquassel.localtypes.buffers.QueryBuffer; import de.kuschku.libquassel.localtypes.buffers.StatusBuffer; import de.kuschku.libquassel.primitives.types.BufferInfo; -import de.kuschku.libquassel.syncables.types.impl.Network; import de.kuschku.libquassel.syncables.types.interfaces.QBufferViewConfig; import de.kuschku.libquassel.syncables.types.interfaces.QIrcChannel; import de.kuschku.libquassel.syncables.types.interfaces.QIrcUser; diff --git a/app/src/main/java/de/kuschku/libquassel/client/Client.java b/app/src/main/java/de/kuschku/libquassel/client/Client.java index e11005cd4727528c043b818197cf91952c60e16f..0e236662a9e5a9682c0673abe09231a0d56d274d 100644 --- a/app/src/main/java/de/kuschku/libquassel/client/Client.java +++ b/app/src/main/java/de/kuschku/libquassel/client/Client.java @@ -100,6 +100,7 @@ public class Client extends AClient { private ConnectionChangeEvent.Status connectionStatus; private BufferMetaDataManager metaDataManager; private String coreId; + private int r = 1; public Client(@NonNull BusProvider provider, @NonNull BacklogStorage backlogStorage, @NonNull BufferMetaDataManager metaDataManager, String coreId) { this.coreId = coreId; @@ -439,7 +440,6 @@ public class Client extends AClient { this.globalNetworkConfig = globalNetworkConfig; } - @NonNull public BacklogStorage backlogStorage() { return backlogStorage; @@ -492,6 +492,4 @@ public class Client extends AClient { public String coreId() { return coreId; } - - private int r = 1; } diff --git a/app/src/main/java/de/kuschku/libquassel/localtypes/BacklogFilter.java b/app/src/main/java/de/kuschku/libquassel/localtypes/BacklogFilter.java index b12ba76f2ab7dc0c5a3f2497d6b3e1f4360a770f..681f413f1d57da3a8554b4046d68cf1f7b625886 100644 --- a/app/src/main/java/de/kuschku/libquassel/localtypes/BacklogFilter.java +++ b/app/src/main/java/de/kuschku/libquassel/localtypes/BacklogFilter.java @@ -23,7 +23,6 @@ package de.kuschku.libquassel.localtypes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.util.Log; import org.joda.time.DateTime; import org.joda.time.DateTimeUtils; @@ -36,7 +35,6 @@ import de.kuschku.libquassel.client.Client; import de.kuschku.libquassel.message.Message; import de.kuschku.libquassel.primitives.types.BufferInfo; import de.kuschku.libquassel.syncables.types.interfaces.QNetwork; -import de.kuschku.util.irc.IrcUserUtils; import de.kuschku.util.observables.callbacks.UICallback; import de.kuschku.util.observables.lists.ObservableComparableSortedList; @@ -53,9 +51,9 @@ public class BacklogFilter implements UICallback { @NonNull private final Set<Message.Type> filteredTypes = new HashSet<>(); + private final EventBus bus = new EventBus(); @Nullable private CharSequence searchQuery; - private final EventBus bus = new EventBus(); @Nullable private DateTime earliestMessage; diff --git a/app/src/main/java/de/kuschku/libquassel/localtypes/orm/ConnectedDatabase.java b/app/src/main/java/de/kuschku/libquassel/localtypes/orm/ConnectedDatabase.java index b2205a9292181fdbc3fc8fd22df64ce668f3390e..eec59165d0d9622f0e8cae9567d60df2f124a5b4 100644 --- a/app/src/main/java/de/kuschku/libquassel/localtypes/orm/ConnectedDatabase.java +++ b/app/src/main/java/de/kuschku/libquassel/localtypes/orm/ConnectedDatabase.java @@ -1,3 +1,24 @@ +/* + * 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.libquassel.localtypes.orm; import com.raizlabs.android.dbflow.annotation.Database; diff --git a/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/BufferTypeConverter.java b/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/BufferTypeConverter.java index 6ce2477934b559484f8befbf12996dc1c81e385c..8bfa78dfbff01de325599e64b53a9edfcb4897cc 100644 --- a/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/BufferTypeConverter.java +++ b/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/BufferTypeConverter.java @@ -1,3 +1,24 @@ +/* + * 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.libquassel.localtypes.orm.converters; import com.raizlabs.android.dbflow.converter.TypeConverter; diff --git a/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/DateTimeConverter.java b/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/DateTimeConverter.java index 280ac445cfb6d3fb3a6dc08781a050a0c749165f..31ee0fdd89264a3e369739e4a381cf8dc5b4c788 100644 --- a/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/DateTimeConverter.java +++ b/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/DateTimeConverter.java @@ -1,3 +1,24 @@ +/* + * 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.libquassel.localtypes.orm.converters; import com.raizlabs.android.dbflow.converter.TypeConverter; diff --git a/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/MessageFlagsConverter.java b/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/MessageFlagsConverter.java index b3f1d9b18cc224ed01cdec05800fa5e32df50f06..6ae99fa3f66cc1a66e77e183efe16f8e26baea4b 100644 --- a/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/MessageFlagsConverter.java +++ b/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/MessageFlagsConverter.java @@ -1,3 +1,24 @@ +/* + * 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.libquassel.localtypes.orm.converters; import com.raizlabs.android.dbflow.converter.TypeConverter; diff --git a/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/MessageTypeConverter.java b/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/MessageTypeConverter.java index 3327777ff9a67a458013af74b34a4959ce48e12b..54da6310730b5c35333c22397ffacd0c57d8a65a 100644 --- a/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/MessageTypeConverter.java +++ b/app/src/main/java/de/kuschku/libquassel/localtypes/orm/converters/MessageTypeConverter.java @@ -1,3 +1,24 @@ +/* + * 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.libquassel.localtypes.orm.converters; import com.raizlabs.android.dbflow.converter.TypeConverter; diff --git a/app/src/main/java/de/kuschku/libquassel/message/Message.java b/app/src/main/java/de/kuschku/libquassel/message/Message.java index 3534ac91882f4b02d8c82da1649f9df1153934d8..a95e8daf1b953401ab2df82676c72bfe8c02a86c 100644 --- a/app/src/main/java/de/kuschku/libquassel/message/Message.java +++ b/app/src/main/java/de/kuschku/libquassel/message/Message.java @@ -23,6 +23,7 @@ package de.kuschku.libquassel.message; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.util.Log; import com.raizlabs.android.dbflow.annotation.Column; import com.raizlabs.android.dbflow.annotation.ForeignKey; @@ -62,6 +63,18 @@ public class Message extends BaseModel implements ContentComparable<Message> { @Column public String content; + public static Message create(int id, DateTime time, Type type, Flags flags, BufferInfo bufferInfo, String sender, String content) { + Message message = new Message(); + message.id = id; + message.time = time; + message.type = type; + message.flags = flags; + message.bufferInfo = bufferInfo; + message.sender = sender; + message.content = content; + return message; + } + @NonNull @Override public String toString() { @@ -99,18 +112,6 @@ public class Message extends BaseModel implements ContentComparable<Message> { return this.time.compareTo(another.time); } - public static Message create(int id, DateTime time, Type type, Flags flags, BufferInfo bufferInfo, String sender, String content) { - Message message = new Message(); - message.id = id; - message.time = time; - message.type = type; - message.flags = flags; - message.bufferInfo = bufferInfo; - message.sender = sender; - message.content = content; - return message; - } - public enum Type { Plain(0x00001), Notice(0x00002), @@ -227,6 +228,7 @@ public class Message extends BaseModel implements ContentComparable<Message> { output.deleteCharAt(output.length() - 1); output.deleteCharAt(output.length() - 1); output.append("]"); + output.append(flags); return output.toString(); } diff --git a/app/src/main/java/de/kuschku/libquassel/primitives/types/BufferInfo.java b/app/src/main/java/de/kuschku/libquassel/primitives/types/BufferInfo.java index 473325e5a6e82288b609d1a788aad3863ec87aef..12ae3b4ff0ee3e6f9fb9ec1f74cc0916824b4199 100644 --- a/app/src/main/java/de/kuschku/libquassel/primitives/types/BufferInfo.java +++ b/app/src/main/java/de/kuschku/libquassel/primitives/types/BufferInfo.java @@ -22,12 +22,10 @@ package de.kuschku.libquassel.primitives.types; import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import com.raizlabs.android.dbflow.annotation.Column; import com.raizlabs.android.dbflow.annotation.PrimaryKey; import com.raizlabs.android.dbflow.annotation.Table; -import com.raizlabs.android.dbflow.converter.TypeConverter; import com.raizlabs.android.dbflow.structure.BaseModel; import de.kuschku.libquassel.localtypes.orm.ConnectedDatabase; @@ -49,6 +47,16 @@ public class BufferInfo extends BaseModel { @Column public String name; + public static BufferInfo create(int id, int networkId, Type type, int groupId, String name) { + BufferInfo info = new BufferInfo(); + info.id = id; + info.networkId = networkId; + info.type = type; + info.groupId = groupId; + info.name = name; + return info; + } + @NonNull @Override public String toString() { @@ -61,16 +69,6 @@ public class BufferInfo extends BaseModel { '}'; } - public static BufferInfo create(int id, int networkId, Type type, int groupId, String name) { - BufferInfo info = new BufferInfo(); - info.id = id; - info.networkId = networkId; - info.type = type; - info.groupId = groupId; - info.name = name; - return info; - } - public enum Type { INVALID(0x00), STATUS(0x01), diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/serializers/IrcUserSerializer.java b/app/src/main/java/de/kuschku/libquassel/syncables/serializers/IrcUserSerializer.java index 7ff0ab26228c6c7ec4a977017dd2105b0d2f357b..2c0f6b396c83dfbae405b3c5e18304e4be6316da 100644 --- a/app/src/main/java/de/kuschku/libquassel/syncables/serializers/IrcUserSerializer.java +++ b/app/src/main/java/de/kuschku/libquassel/syncables/serializers/IrcUserSerializer.java @@ -96,7 +96,7 @@ public class IrcUserSerializer implements ObjectSerializer<IrcUser> { (String) map.get("suserHost").data, (String) map.get("nick").data, (String) map.get("realName").data, - (map.get("account") == null) ? "": (String) map.get("account").data, + (map.get("account") == null) ? "" : (String) map.get("account").data, (String) map.get("awayMessage").data, (DateTime) map.get("loginTime").data, (boolean) map.get("encrypted").data, diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/serializers/NetworkSerializer.java b/app/src/main/java/de/kuschku/libquassel/syncables/serializers/NetworkSerializer.java index 20bf3c4fde1c4c88e062430b300decdc10cc46f5..0acbfd0ee6a167c2dbe8090d43a3520f1307301d 100644 --- a/app/src/main/java/de/kuschku/libquassel/syncables/serializers/NetworkSerializer.java +++ b/app/src/main/java/de/kuschku/libquassel/syncables/serializers/NetworkSerializer.java @@ -47,9 +47,9 @@ import de.kuschku.libquassel.syncables.types.interfaces.QIrcUser; @SuppressWarnings({"unchecked", "ConstantConditions"}) public class NetworkSerializer implements ObjectSerializer<Network> { + public static final DateTime UNIX_EPOCH = new DateTime(0L); @NonNull private static final NetworkSerializer serializer = new NetworkSerializer(); - public static final DateTime UNIX_EPOCH = new DateTime(0L); private NetworkSerializer() { } diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/BacklogManager.java b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/BacklogManager.java index 218528838ad031c5506290a2b10cfecdb0958da1..dd3cac3459ae35871fab3010d6ebe03beb28c20f 100644 --- a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/BacklogManager.java +++ b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/BacklogManager.java @@ -23,7 +23,6 @@ package de.kuschku.libquassel.syncables.types.impl; import android.support.annotation.IntRange; import android.support.annotation.NonNull; -import android.util.Log; import com.raizlabs.android.dbflow.sql.language.SQLite; diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/BufferViewConfig.java b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/BufferViewConfig.java index e21f21901223d5ba27d3152ad6ae0c0a8907c10e..6167a752717eded2ff681bfb5eefc9be2824d379 100644 --- a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/BufferViewConfig.java +++ b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/BufferViewConfig.java @@ -22,7 +22,6 @@ package de.kuschku.libquassel.syncables.types.impl; import android.support.annotation.NonNull; -import android.util.Log; import java.util.Collections; import java.util.List; diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IgnoreListManager.java b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IgnoreListManager.java index 288e7249f3d80d7bfa392317ae88b78d882fd526..5a4bb36fb7f2afd871eecb8281b0d43708b5ed96 100644 --- a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IgnoreListManager.java +++ b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IgnoreListManager.java @@ -23,7 +23,6 @@ package de.kuschku.libquassel.syncables.types.impl; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.util.Log; import java.util.ArrayList; import java.util.Arrays; @@ -163,6 +162,11 @@ public class IgnoreListManager extends AIgnoreListManager<IgnoreListManager> { client.setIgnoreListManager(this); } + @Override + public String toString() { + return String.valueOf(ignoreList); + } + public class IgnoreListItem { private final IgnoreType type; @NonNull @@ -235,9 +239,4 @@ public class IgnoreListManager extends AIgnoreListManager<IgnoreListManager> { '}'; } } - - @Override - public String toString() { - return String.valueOf(ignoreList); - } } diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IrcChannel.java b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IrcChannel.java index 0bbf2d0f79274614edf16bab3cda57da158c73a2..d8aaa270eb5838fe826126b1b6dfa16fb76c05d1 100644 --- a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IrcChannel.java +++ b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IrcChannel.java @@ -39,7 +39,6 @@ import de.kuschku.libquassel.BusProvider; import de.kuschku.libquassel.client.Client; import de.kuschku.libquassel.events.ConnectionChangeEvent; import de.kuschku.libquassel.localtypes.buffers.ChannelBuffer; -import de.kuschku.libquassel.primitives.types.BufferInfo; import de.kuschku.libquassel.primitives.types.QVariant; import de.kuschku.libquassel.syncables.serializers.IrcChannelSerializer; import de.kuschku.libquassel.syncables.types.abstracts.AIrcChannel; diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IrcUser.java b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IrcUser.java index c00da699fa9f44445ba3c181131f841af47b2aec..084fe1b093662e5eb564d4d2b1e6b8830b9d990c 100644 --- a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IrcUser.java +++ b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/IrcUser.java @@ -23,7 +23,6 @@ package de.kuschku.libquassel.syncables.types.impl; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.support.v7.widget.LinearLayoutCompat; import android.util.SparseArray; import org.joda.time.DateTime; diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/Network.java b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/Network.java index 41fda6a571a15142830dd4ae9e6ee607f951a121..f32f15a2ae16cd4d00928fbad993c78781938d30 100644 --- a/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/Network.java +++ b/app/src/main/java/de/kuschku/libquassel/syncables/types/impl/Network.java @@ -23,7 +23,6 @@ package de.kuschku.libquassel.syncables.types.impl; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.util.Log; import java.util.ArrayList; import java.util.Arrays; @@ -37,7 +36,6 @@ import java.util.Observer; import de.kuschku.libquassel.BusProvider; import de.kuschku.libquassel.client.Client; import de.kuschku.libquassel.events.ConnectionChangeEvent; -import de.kuschku.libquassel.localtypes.buffers.ChannelBuffer; import de.kuschku.libquassel.localtypes.buffers.StatusBuffer; import de.kuschku.libquassel.objects.types.NetworkServer; import de.kuschku.libquassel.primitives.types.QVariant; @@ -778,7 +776,6 @@ public class Network extends ANetwork<Network> implements Observer { } - @Override public void _update() { super._update(); diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/types/interfaces/QBacklogManager.java b/app/src/main/java/de/kuschku/libquassel/syncables/types/interfaces/QBacklogManager.java index dcbadf2895187a7071695d83fffcc4e10e77f606..aaad6894e5ca5446d1f4e957dc59abbd5f20429e 100644 --- a/app/src/main/java/de/kuschku/libquassel/syncables/types/interfaces/QBacklogManager.java +++ b/app/src/main/java/de/kuschku/libquassel/syncables/types/interfaces/QBacklogManager.java @@ -66,7 +66,9 @@ public interface QBacklogManager<T extends QSyncableObject<T>> extends QSyncable ObservableComparableSortedList<Message> filtered(int id); void setOpen(int bufferId); + void open(int bufferId); + int open(); void receiveBacklog(Message msg); diff --git a/app/src/main/java/de/kuschku/libquassel/syncables/types/interfaces/QIrcChannel.java b/app/src/main/java/de/kuschku/libquassel/syncables/types/interfaces/QIrcChannel.java index e4129a152f2a666f65296d72127f212dea735d3c..4eb088f0cf95b937b3684813bd528668436ef4c5 100644 --- a/app/src/main/java/de/kuschku/libquassel/syncables/types/interfaces/QIrcChannel.java +++ b/app/src/main/java/de/kuschku/libquassel/syncables/types/interfaces/QIrcChannel.java @@ -25,7 +25,6 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import java.util.List; -import java.util.Set; import de.kuschku.libquassel.client.Client; import de.kuschku.libquassel.syncables.Synced; diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.java b/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.java index b4494939cb74f6f3b1c04fa31a38a36b299ef19f..54ebdc7f3d3161f9d7b0df67f55d1e84339f4d22 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/service/QuasselService.java @@ -74,9 +74,11 @@ public class QuasselService extends Service { public void addCallback(Consumer<ClientBackgroundThread> consumer) { consumers.add(consumer); } + public void removeCallback(Consumer<ClientBackgroundThread> consumer) { consumers.remove(consumer); } + private void notify(ClientBackgroundThread thread) { for (Consumer<ClientBackgroundThread> consumer : consumers) { consumer.apply(thread); diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/LoginActivity.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/LoginActivity.java index 36ad8cf3fb2aa0c0de56e218caf1ade103458a36..6ea7870fb48f694b1aa3b42c1ddc6cd1a92896fb 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/LoginActivity.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/LoginActivity.java @@ -26,8 +26,6 @@ import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; -import com.raizlabs.android.dbflow.config.FlowManager; - import de.kuschku.libquassel.localtypes.orm.ConnectedDatabase; import de.kuschku.quasseldroid_ng.ui.chat.MainActivity; import de.kuschku.quasseldroid_ng.ui.chat.util.ServiceHelper; 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 a6557621f5b7f37f640a564f8d53189011b749bc..ea37f4ce9eaa8ee3c68f72a83c08e3560e075de2 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 @@ -39,7 +39,7 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.SearchView; import android.support.v7.widget.Toolbar; -import android.util.Log; +import android.view.ActionMode; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -72,6 +72,7 @@ import de.kuschku.libquassel.syncables.types.interfaces.QIrcChannel; import de.kuschku.libquassel.syncables.types.interfaces.QIrcUser; import de.kuschku.quasseldroid_ng.R; import de.kuschku.quasseldroid_ng.service.ClientBackgroundThread; +import de.kuschku.quasseldroid_ng.ui.chat.drawer.ActionModeHandler; import de.kuschku.quasseldroid_ng.ui.chat.drawer.BufferViewConfigAdapter; import de.kuschku.quasseldroid_ng.ui.chat.fragment.ChatFragment; import de.kuschku.quasseldroid_ng.ui.chat.fragment.LoadingFragment; @@ -83,7 +84,6 @@ import de.kuschku.util.certificates.CertificateUtils; import de.kuschku.util.certificates.SQLiteCertificateManager; import de.kuschku.util.servicebound.BoundActivity; import rx.android.schedulers.AndroidSchedulers; -import rx.functions.Action1; import static de.kuschku.util.AndroidAssert.assertNotNull; @@ -148,6 +148,7 @@ public class MainActivity extends BoundActivity { drawerLayout.closeDrawer(GravityCompat.START); } }); + chatListAdapter.setActionModeHandler(new ActionModeHandler(this, R.id.cab_stub)); chatListAdapter.setRecyclerView(chatList); chatList.setItemAnimator(new DefaultItemAnimator()); chatList.setLayoutManager(new LinearLayoutManager(this)); @@ -160,8 +161,30 @@ public class MainActivity extends BoundActivity { switch (item.getItemId()) { case R.id.action_show_all: { item.setChecked(chatListAdapter.toggleShowAll()); - } break; + } + break; case R.id.action_manage_chat_lists: { + chatListToolbar.startActionMode(new ActionMode.Callback() { + @Override + public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { + return false; + } + + @Override + public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) { + return false; + } + + @Override + public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) { + return false; + } + + @Override + public void onDestroyActionMode(ActionMode actionMode) { + + } + }); } } return false; diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/ActionModeHandler.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/ActionModeHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..7a790a1b26a49ba61955e12f784efb0b1cfe5e0b --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/ActionModeHandler.java @@ -0,0 +1,116 @@ +/* + * 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.ui.chat.drawer; + +import android.support.annotation.IdRes; +import android.support.v7.app.AppCompatActivity; +import android.view.Menu; +import android.view.MenuItem; + +import com.afollestad.materialcab.MaterialCab; + +import java.util.HashSet; +import java.util.Set; + +import de.kuschku.libquassel.localtypes.buffers.Buffer; +import de.kuschku.quasseldroid_ng.R; + +public class ActionModeHandler implements MaterialCab.Callback { + private final AppCompatActivity activity; + private final MaterialCab cab; + private Set<Buffer> selectedChildren = new HashSet<>(); + private Set<NetworkItem> selectedParents = new HashSet<>(); + private Menu actionModeMenu; + + public ActionModeHandler(AppCompatActivity activity, @IdRes int stub) { + this.activity = activity; + cab = new MaterialCab(activity, stub); + } + + public boolean isActive() { + return cab.isActive(); + } + + + public void start() { + //cab.start(this); + } + + public void toggle(Buffer buffer) { + /* + if (selectedChildren.contains(buffer)) + selectedChildren.remove(buffer); + else + selectedChildren.add(buffer); + + updateSelectionType(); + */ + } + + public void toggle(NetworkItem item) { + /* + if (selectedParents.contains(item)) + selectedParents.remove(item); + else + selectedParents.add(item); + + updateSelectionType(); + */ + } + + public boolean isChecked(Buffer buffer) { + return selectedChildren.contains(buffer); + } + + public boolean isChecked(NetworkItem network) { + return selectedParents.contains(network); + } + + private void updateSelectionType() { + if (actionModeMenu != null) { + actionModeMenu.setGroupVisible(R.id.context_group_buffer, !selectedChildren.isEmpty() && selectedParents.isEmpty()); + actionModeMenu.setGroupVisible(R.id.context_group_network, !selectedParents.isEmpty() && selectedChildren.isEmpty()); + } + } + + @Override + public boolean onCabCreated(MaterialCab cab, Menu menu) { + menu.clear(); + activity.getMenuInflater().inflate(R.menu.context_buffer_network, menu); + actionModeMenu = menu; + updateSelectionType(); + return true; + } + + @Override + public boolean onCabItemClicked(MenuItem item) { + return false; + } + + @Override + public boolean onCabFinished(MaterialCab cab) { + actionModeMenu = null; + selectedChildren.clear(); + selectedParents.clear(); + return true; + } +} diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewConfigAdapter.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewConfigAdapter.java index a9209676644ee3e6e6db2214309f1f6112c198c3..88903608ad0a629f9984ca57b0ee4c25238f1fd2 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewConfigAdapter.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewConfigAdapter.java @@ -44,7 +44,7 @@ import de.kuschku.util.observables.callbacks.ElementCallback; import de.kuschku.util.observables.callbacks.UICallback; import de.kuschku.util.observables.lists.ObservableSortedList; -public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkViewHolder, BufferViewHolder> implements OnBufferClickListener { +public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkViewHolder, BufferViewHolder> implements OnBufferClickListener, OnBufferLongClickListener { private final AppContext context; private final ObservableSortedList<NetworkItem> items; private final Map<QNetwork, NetworkItem> itemMap = new WeakHashMap<>(); @@ -74,17 +74,7 @@ public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkVi } }; - public void notifyChildItemInserted(NetworkItem parentItem, int childPosition) { - super.notifyChildItemInserted(items.indexOf(parentItem), childPosition); - } - - public void notifyChildItemRemoved(NetworkItem parentItem, int childPosition) { - super.notifyChildItemRemoved(items.indexOf(parentItem), childPosition); - } - - public void notifyChildItemChanged(NetworkItem parentItem, int childPosition) { - super.notifyChildItemChanged(items.indexOf(parentItem), childPosition); - } + private ActionModeHandler actionModeHandler; private BufferViewConfigAdapter(AppContext context, ObservableSortedList<NetworkItem> items) { super(items); @@ -163,6 +153,18 @@ public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkVi return new BufferViewConfigAdapter(context, networkItems); } + public void notifyChildItemInserted(NetworkItem parentItem, int childPosition) { + super.notifyChildItemInserted(items.indexOf(parentItem), childPosition); + } + + public void notifyChildItemRemoved(NetworkItem parentItem, int childPosition) { + super.notifyChildItemRemoved(items.indexOf(parentItem), childPosition); + } + + public void notifyChildItemChanged(NetworkItem parentItem, int childPosition) { + super.notifyChildItemChanged(items.indexOf(parentItem), childPosition); + } + @Override public NetworkViewHolder onCreateParentViewHolder(ViewGroup parentViewGroup) { LayoutInflater inflater = LayoutInflater.from(parentViewGroup.getContext()); @@ -183,14 +185,22 @@ public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkVi @Override public void onBindChildViewHolder(BufferViewHolder childViewHolder, int position, Object childListItem) { bufferViewHolderMap.remove(childViewHolder.id); - childViewHolder.bind(this, (Buffer) childListItem); + Buffer buffer = (Buffer) childListItem; + childViewHolder.bind(this, this, buffer); bufferViewHolderMap.put(childViewHolder.id, childViewHolder); + childViewHolder.setSelected(context.client().backlogManager().open() == childViewHolder.id); + childViewHolder.setChecked(actionModeHandler.isChecked(buffer)); } @Override public void onClick(Buffer buffer) { - if (bufferClickListener != null) { - bufferClickListener.onClick(buffer); + if (actionModeHandler.isActive()) { + actionModeHandler.toggle(buffer); + bufferViewHolderMap.get(buffer.getInfo().id).setChecked(actionModeHandler.isChecked(buffer)); + } else { + if (bufferClickListener != null) { + bufferClickListener.onClick(buffer); + } } } @@ -243,10 +253,6 @@ public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkVi } } - public void setSelection(int from, int to) { - - } - public void setOpen(int id) { BufferViewHolder old = bufferViewHolderMap.get(open); if (old != null) old.setSelected(false); @@ -274,4 +280,18 @@ public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkVi showAll.set(!before); return !before; } + + @Override + public boolean onLongClick(Buffer buffer) { + if (!actionModeHandler.isActive()) + actionModeHandler.start(); + + actionModeHandler.toggle(buffer); + bufferViewHolderMap.get(buffer.getInfo().id).setChecked(actionModeHandler.isChecked(buffer)); + return false; + } + + public void setActionModeHandler(ActionModeHandler actionModeHandler) { + this.actionModeHandler = actionModeHandler; + } } diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewHolder.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewHolder.java index 2723807f2372aec183ba9b8c75ec974a56bfca59..2a342af270876e678a9f676b20d813e16ad455e0 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewHolder.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewHolder.java @@ -41,7 +41,6 @@ import java.util.Locale; import butterknife.Bind; import butterknife.ButterKnife; -import de.kuschku.libquassel.events.BufferChangeEvent; import de.kuschku.libquassel.localtypes.buffers.Buffer; import de.kuschku.libquassel.localtypes.buffers.ChannelBuffer; import de.kuschku.libquassel.localtypes.buffers.QueryBuffer; @@ -73,14 +72,18 @@ public class BufferViewHolder extends ChildViewHolder { private StateListDrawable background; + private boolean selected = false; + private boolean checked = false; + public BufferViewHolder(AppContext context, View itemView) { super(itemView); ButterKnife.bind(this, itemView); this.context = context; - context.provider().event.registerSticky(this); background = new StateListDrawable(); background.addState(new int[]{android.R.attr.state_selected}, new ColorDrawable(context.themeUtil().res.colorSelected)); + background.addState(new int[]{android.R.attr.state_checked}, new ColorDrawable(context.themeUtil().res.colorSelected)); + background.addState(new int[]{android.R.attr.state_checked, android.R.attr.state_selected}, new ColorDrawable(context.themeUtil().res.colorSelected)); background.addState(new int[0], UIUtils.getSelectableBackground(itemView.getContext())); } @@ -89,7 +92,7 @@ public class BufferViewHolder extends ChildViewHolder { return R.layout.widget_buffer; } - public void bind(OnBufferClickListener listener, Buffer buffer) { + public void bind(OnBufferClickListener listener, OnBufferLongClickListener longClickListener, Buffer buffer) { if (status != null) status.removeOnPropertyChangedCallback(callback); status = buffer.getStatus(); @@ -99,7 +102,9 @@ public class BufferViewHolder extends ChildViewHolder { viewIntBinder.bindTextColor(name, colorFromActivityStatus(buffer)); setDescription(context.deserializer().formatString(getDescription(buffer))); setBadge(0); + itemView.setOnClickListener(v -> listener.onClick(buffer)); + itemView.setOnLongClickListener(v -> longClickListener.onLongClick(buffer)); itemView.setBackground(background); @@ -114,8 +119,6 @@ public class BufferViewHolder extends ChildViewHolder { } }; status.addOnPropertyChangedCallback(callback); - - setSelected(); } @NonNull @@ -132,12 +135,26 @@ public class BufferViewHolder extends ChildViewHolder { }; } - private void setSelected() { - setSelected(context.client().backlogManager().open() == id); + public boolean isSelected() { + return selected; } public void setSelected(boolean selected) { - itemView.setSelected(selected); + this.selected = selected; + updateSelectionState(); + } + + public boolean isChecked() { + return checked; + } + + public void setChecked(boolean checked) { + this.checked = checked; + updateSelectionState(); + } + + private void updateSelectionState() { + itemView.setSelected(selected || checked); } private void setIcon(AppContext context, BufferInfo.Type type, ObservableField<BufferInfo.BufferStatus> status) { @@ -181,8 +198,4 @@ public class BufferViewHolder extends ChildViewHolder { } return null; } - - public void onEventMainThread(BufferChangeEvent event) { - setSelected(); - } } diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/NetworkItem.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/NetworkItem.java index 848998de725f123bafa2f08ab5b2b40d47731c56..68399e4a859439a497684a01d8de1434965bb2b1 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/NetworkItem.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/NetworkItem.java @@ -22,7 +22,6 @@ package de.kuschku.quasseldroid_ng.ui.chat.drawer; import android.databinding.Observable; -import android.util.Log; import com.bignerdranch.expandablerecyclerview.Model.ParentListItem; diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/OnBufferLongClickListener.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/OnBufferLongClickListener.java new file mode 100644 index 0000000000000000000000000000000000000000..559e9d97a1246e10ded0e0b77139472c48209e22 --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/OnBufferLongClickListener.java @@ -0,0 +1,28 @@ +/* + * 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.ui.chat.drawer; + +import de.kuschku.libquassel.localtypes.buffers.Buffer; + +public interface OnBufferLongClickListener { + boolean onLongClick(Buffer buffer); +} diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/fragment/ChatFragment.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/fragment/ChatFragment.java index 1f4cee76aa107008b3cfdcef117860d02c000c04..d6e7bf9f3aa76b1a676e70f1f0d100c94823c55d 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/fragment/ChatFragment.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/fragment/ChatFragment.java @@ -27,7 +27,6 @@ import android.support.design.widget.FloatingActionButton; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -103,7 +102,7 @@ public class ChatFragment extends BoundFragment { int scrollOffsetFromBottom = recyclerView.computeVerticalScrollRange() - recyclerView.computeVerticalScrollOffset() - recyclerViewMeasuredHeight; boolean isMoreThanOneScreenFromBottom = scrollOffsetFromBottom > recyclerViewMeasuredHeight; boolean smartVisibility = scrollDown.getVisibility() == View.VISIBLE || isMoreThanOneScreenFromBottom; - scrollDown.setVisibility((canScrollDown && isScrollingDown && smartVisibility) ? View.VISIBLE : View.GONE); + scrollDown.setVisibility((canScrollDown && isScrollingDown && smartVisibility) ? View.VISIBLE : View.GONE); } }); diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/util/ServiceHelper.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/util/ServiceHelper.java index 4f1f8ea06a3d1df02efb8e81959ec2334044e2eb..d99a5174e9f565ca16436c254b9f203b30e8245c 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/util/ServiceHelper.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/util/ServiceHelper.java @@ -39,7 +39,8 @@ public class ServiceHelper { /** * Connects to an already running QuasselService - * @param context The context in which the service is running + * + * @param context The context in which the service is running * @param connection The connection to which it should be bound */ public static void connectToService(Context context, ServiceConnection connection) { @@ -49,7 +50,8 @@ public class ServiceHelper { /** * Connects to an already running QuasselService - * @param context The context in which the service is running + * + * @param context The context in which the service is running * @param connection The connection which should be disconnected */ public static void disconnect(Context context, ServiceConnection connection) { @@ -58,6 +60,7 @@ public class ServiceHelper { /** * Starts a new QuasselService, if not yet running. + * * @param context The context in which it should run */ public static void startServiceIfNotRunning(Context context) { diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/AccountSelectActivity.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/AccountSelectActivity.java index bba27567a72d9a40261c387086606df9fd3794be..fb126b55e2a19cf46ef7ecfd7324586798c608e2 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/AccountSelectActivity.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/AccountSelectActivity.java @@ -38,31 +38,11 @@ import de.kuschku.quasseldroid_ng.ui.setup.slides.AccountSelectSlide; import de.kuschku.quasseldroid_ng.ui.setup.slides.SlideFragment; public class AccountSelectActivity extends AppCompatActivity { - private SlidePagerAdapter slidePagerAdapter; - @Bind(R.id.view_pager) ViewPager viewPager; - @Bind(R.id.btn) FloatingActionButton btn; - - private class SlidePagerAdapter extends FragmentPagerAdapter { - private SlideFragment item = new AccountSelectSlide(); - - public SlidePagerAdapter(FragmentManager fm) { - super(fm); - } - - @Override - public SlideFragment getItem(int position) { - return item; - } - - @Override - public int getCount() { - return 1; - } - } + private SlidePagerAdapter slidePagerAdapter; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -91,4 +71,22 @@ public class AccountSelectActivity extends AppCompatActivity { btn.setVisibility(validity ? View.VISIBLE : View.GONE); slidePagerAdapter.notifyDataSetChanged(); } + + private class SlidePagerAdapter extends FragmentPagerAdapter { + private SlideFragment item = new AccountSelectSlide(); + + public SlidePagerAdapter(FragmentManager fm) { + super(fm); + } + + @Override + public SlideFragment getItem(int position) { + return item; + } + + @Override + public int getCount() { + return 1; + } + } } diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSelectSlide.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSelectSlide.java index a786c05887c0befd8fc73f735ae8ff796581e6e5..2fb2e12dc88a8bb31439fda095ca788c0aff53b4 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSelectSlide.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSelectSlide.java @@ -55,7 +55,7 @@ public class AccountSelectSlide extends SlideFragment implements AccountItem.OnD @Override public Bundle getData(Bundle in) { - AccountItem item = (AccountItem) findAny(fastAdapter.getSelectedItems()).get(); + AccountItem item = (AccountItem) findAny(fastAdapter.getSelectedItems()).get(); in.putString("account", item.account.id.toString()); return in; } diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSetupCoreSlide.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSetupCoreSlide.java index 92745729bcf43fd5f9347006980f769c91028ff0..9fa726126bbd3736d91f328e2f67c91ca93a5c6f 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSetupCoreSlide.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSetupCoreSlide.java @@ -36,16 +36,29 @@ import butterknife.ButterKnife; import de.kuschku.quasseldroid_ng.R; public class AccountSetupCoreSlide extends SlideFragment { - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - @Bind(R.id.host) AppCompatEditText hostField; - @Bind(R.id.port) AppCompatEditText portField; + TextWatcher watcher = new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + updateValidity(); + } + + @Override + public void afterTextChanged(Editable s) { + } + }; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } @Override protected View onCreateContent(LayoutInflater inflater, ViewGroup container, @Nullable Bundle savedInstanceState) { @@ -100,19 +113,4 @@ public class AccountSetupCoreSlide extends SlideFragment { String hostText = hostField.getText().toString(); return !hostText.isEmpty(); } - - TextWatcher watcher = new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - updateValidity(); - } - - @Override - public void afterTextChanged(Editable s) { - } - }; } diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSetupNameSlide.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSetupNameSlide.java index b50ae81d6527da31afaabe2c448c1fc7e9149f9f..c6eaaa34c9d7cd8f6f24ab3c4de9def8e431538b 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSetupNameSlide.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSetupNameSlide.java @@ -36,14 +36,28 @@ import butterknife.ButterKnife; import de.kuschku.quasseldroid_ng.R; public class AccountSetupNameSlide extends SlideFragment { + @Bind(R.id.name) + AppCompatEditText nameField; + TextWatcher watcher = new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + updateValidity(); + } + + @Override + public void afterTextChanged(Editable s) { + } + }; + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); } - @Bind(R.id.name) - AppCompatEditText nameField; - @Override protected View onCreateContent(LayoutInflater inflater, ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.slide_account_name, container, false); @@ -82,19 +96,4 @@ public class AccountSetupNameSlide extends SlideFragment { String hostText = nameField.getText().toString(); return !hostText.isEmpty(); } - - TextWatcher watcher = new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - updateValidity(); - } - - @Override - public void afterTextChanged(Editable s) { - } - }; } diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSetupUserSlide.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSetupUserSlide.java index c6b77f179eda08de4b5ceba3a827dccdda8b5e89..d740d9e5d0e4812b2d3f562f866995ccca8b088d 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSetupUserSlide.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/AccountSetupUserSlide.java @@ -36,16 +36,29 @@ import butterknife.ButterKnife; import de.kuschku.quasseldroid_ng.R; public class AccountSetupUserSlide extends SlideFragment { - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - @Bind(R.id.user) AppCompatEditText userField; - @Bind(R.id.pass) AppCompatEditText passField; + TextWatcher watcher = new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + } + + @Override + public void afterTextChanged(Editable s) { + updateValidity(); + } + }; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } @Override public View onCreateContent(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { @@ -95,19 +108,4 @@ public class AccountSetupUserSlide extends SlideFragment { String hostText = passField.getText().toString(); return !hostText.isEmpty(); } - - TextWatcher watcher = new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - } - - @Override - public void afterTextChanged(Editable s) { - updateValidity(); - } - }; } diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/SlideFragment.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/SlideFragment.java index a0f460dc66bcdce5adc30a669e31a46c1b1aff70..e37960ce73554e58ec572cb28ed3ca56712433a7 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/SlideFragment.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/setup/slides/SlideFragment.java @@ -43,15 +43,19 @@ public abstract class SlideFragment extends Fragment { public abstract boolean isValid(); + public void addChangeListener(ValidUpdateCallback callback) { callbacks.add(callback); } + public void removeChangeListener(ValidUpdateCallback callback) { callbacks.remove(callback); } + protected void updateValidity() { updateValidity(isValid()); } + protected void updateValidity(boolean validity) { for (ValidUpdateCallback callback : callbacks) { callback.updateValidity(validity); @@ -70,6 +74,7 @@ public abstract class SlideFragment extends Fragment { return view; } + protected abstract View onCreateContent(LayoutInflater inflater, ViewGroup container, @Nullable Bundle savedInstanceState); @StringRes diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/theme/ThemeUtil.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/theme/ThemeUtil.java index 818c1a9d6f3fcf8e8001df19f3f7b87e935b3631..84520269965f8fbb72aea1088753326fd4546ef3 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/theme/ThemeUtil.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/theme/ThemeUtil.java @@ -369,7 +369,6 @@ public class ThemeUtil { public String chanMode_FORWARD_DESCRIPTION; - public String chanModeToDescription(ChanMode mode) { switch (mode) { case RESTRICT_TOPIC: @@ -705,11 +704,6 @@ public class ThemeUtil { public CharSequence formatPlain(@NonNull CharSequence nick, @NonNull CharSequence message) { return SpanFormatter.format(messagePlain, nick, message); } - - @NonNull - public CharSequence formatTopic(@NonNull CharSequence nick, @NonNull CharSequence channel, @NonNull CharSequence message) { - return SpanFormatter.format(messageTopic, nick, channel, message); - } } public static class Colors { @@ -795,7 +789,7 @@ public class ThemeUtil { @ColorInt public int colorTintHighlight; - @AutoColor(R.attr.material_drawer_selected) + @AutoColor(R.attr.colorControlHighlight) @ColorInt public int colorSelected; diff --git a/app/src/main/java/de/kuschku/util/ReflectionUtils.java b/app/src/main/java/de/kuschku/util/ReflectionUtils.java index adf1907f7a3a38842d23d60e74f5770fde60f031..57f53b531fac9f225af58a7819c13d80f9556893 100644 --- a/app/src/main/java/de/kuschku/util/ReflectionUtils.java +++ b/app/src/main/java/de/kuschku/util/ReflectionUtils.java @@ -23,7 +23,6 @@ package de.kuschku.util; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.util.Log; import com.google.common.primitives.Primitives; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/IrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/IrcModeProvider.java index ef05df887a037fd81f686fdc3ac7545d7dbf377e..afc4c58e2fd450ad9602cb1982a19b9a76a8491a 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/IrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/IrcModeProvider.java @@ -25,7 +25,10 @@ import java.util.Set; public interface IrcModeProvider { ChanMode modeFromChar(char mode); + char charFromMode(ChanMode mode); + int matchQuality(Set<Character> modes); + Set<ChanMode> modesFromString(String chanModes); } diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/IrcModeProviderFactory.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/IrcModeProviderFactory.java index 836dd0513d32cf79d3966333510c8f5fbf0c34db..620d766b1840c8c561901dcc2e9ff8cfb6e6c80e 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/IrcModeProviderFactory.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/IrcModeProviderFactory.java @@ -55,7 +55,7 @@ public class IrcModeProviderFactory { private static Set<Character> toModeSet(String chanModes) { if (chanModes == null) chanModes = ""; - String replaced = chanModes.replaceAll(",",""); + String replaced = chanModes.replaceAll(",", ""); Set<Character> modeSet = new HashSet<>(); for (char c : replaced.toCharArray()) { modeSet.add(c); diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/BewareIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/BewareIrcModeProvider.java index c38a114053675ab5c93aa85794735182a2662a5c..a4492474d33eb2ccccf5a037f96658aa38865daa 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/BewareIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/BewareIrcModeProvider.java @@ -57,16 +57,26 @@ public class BewareIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'C': return BLOCK_CTCP; - case 'c': return BLOCK_COLOR; - case 'i': return ONLY_INVITE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'p': return PARANOID; - case 's': return UNLISTED; - case 't': return RESTRICT_TOPIC; + case 'C': + return BLOCK_CTCP; + case 'c': + return BLOCK_COLOR; + case 'i': + return ONLY_INVITE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'p': + return PARANOID; + case 's': + return UNLISTED; + case 't': + return RESTRICT_TOPIC; case 'b': return BAN; @@ -81,16 +91,26 @@ public class BewareIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case BLOCK_CTCP: return 'C'; - case BLOCK_COLOR: return 'c'; - case ONLY_INVITE: return 'i'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case PARANOID: return 'p'; - case UNLISTED: return 's'; - case RESTRICT_TOPIC: return 't'; + case BLOCK_CTCP: + return 'C'; + case BLOCK_COLOR: + return 'c'; + case ONLY_INVITE: + return 'i'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case PARANOID: + return 'p'; + case UNLISTED: + return 's'; + case RESTRICT_TOPIC: + return 't'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/CharybdisIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/CharybdisIrcModeProvider.java index 788f0024427c7c32f61b7c35ceda70d831d48113..c53b0320894bedff29d6b5131c7bc6e7bb1c1ced 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/CharybdisIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/CharybdisIrcModeProvider.java @@ -65,28 +65,50 @@ public class CharybdisIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'A': return ONLY_ADMIN; - case 'C': return BLOCK_CTCP; - case 'F': return ALLOW_FORWARD; - case 'O': return ONLY_OPER; - case 'P': return PERMANENT; - case 'Q': return BLOCK_FORWARDING; - case 'S': return ONLY_SSL; - case 'T': return BLOCK_NOTICE; - case 'c': return BLOCK_COLOR; - case 'f': return FORWARD; - case 'g': return ALLOW_INVITE; - case 'i': return ONLY_INVITE; - case 'j': return JOIN_THROTTLE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'p': return PARANOID; - case 'r': return BLOCK_UNIDENTIFIED; - case 's': return UNLISTED; - case 't': return RESTRICT_TOPIC; - case 'z': return REDUCED_MODERATION; + case 'A': + return ONLY_ADMIN; + case 'C': + return BLOCK_CTCP; + case 'F': + return ALLOW_FORWARD; + case 'O': + return ONLY_OPER; + case 'P': + return PERMANENT; + case 'Q': + return BLOCK_FORWARDING; + case 'S': + return ONLY_SSL; + case 'T': + return BLOCK_NOTICE; + case 'c': + return BLOCK_COLOR; + case 'f': + return FORWARD; + case 'g': + return ALLOW_INVITE; + case 'i': + return ONLY_INVITE; + case 'j': + return JOIN_THROTTLE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'p': + return PARANOID; + case 'r': + return BLOCK_UNIDENTIFIED; + case 's': + return UNLISTED; + case 't': + return RESTRICT_TOPIC; + case 'z': + return REDUCED_MODERATION; case 'b': return BAN; @@ -103,28 +125,50 @@ public class CharybdisIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case ONLY_ADMIN: return 'A'; - case BLOCK_CTCP: return 'C'; - case ALLOW_FORWARD: return 'F'; - case ONLY_OPER: return 'O'; - case PERMANENT: return 'P'; - case BLOCK_FORWARDING: return 'Q'; - case ONLY_SSL: return 'S'; - case BLOCK_NOTICE: return 'T'; - case BLOCK_COLOR: return 'c'; - case FORWARD: return 'f'; - case ALLOW_INVITE: return 'g'; - case ONLY_INVITE: return 'i'; - case JOIN_THROTTLE: return 'j'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case PARANOID: return 'p'; - case BLOCK_UNIDENTIFIED: return 'r'; - case UNLISTED: return 's'; - case RESTRICT_TOPIC: return 't'; - case REDUCED_MODERATION: return 'z'; + case ONLY_ADMIN: + return 'A'; + case BLOCK_CTCP: + return 'C'; + case ALLOW_FORWARD: + return 'F'; + case ONLY_OPER: + return 'O'; + case PERMANENT: + return 'P'; + case BLOCK_FORWARDING: + return 'Q'; + case ONLY_SSL: + return 'S'; + case BLOCK_NOTICE: + return 'T'; + case BLOCK_COLOR: + return 'c'; + case FORWARD: + return 'f'; + case ALLOW_INVITE: + return 'g'; + case ONLY_INVITE: + return 'i'; + case JOIN_THROTTLE: + return 'j'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case PARANOID: + return 'p'; + case BLOCK_UNIDENTIFIED: + return 'r'; + case UNLISTED: + return 's'; + case RESTRICT_TOPIC: + return 't'; + case REDUCED_MODERATION: + return 'z'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/DalIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/DalIrcModeProvider.java index fa4b49dbd9e295b9beda3f9a736ad965b67d30ea..34a7798c14e3cfd9102cafbdcfbae98d49466533 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/DalIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/DalIrcModeProvider.java @@ -58,22 +58,38 @@ public class DalIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'A': return AUDITORIUM; - case 'M': return QUIET_UNIDENTIFIED; - case 'O': return ONLY_OPER; - case 'R': return BLOCK_UNIDENTIFIED; - case 'S': return ONLY_SSL; - case 'c': return BLOCK_COLOR; - case 'i': return ONLY_INVITE; - case 'j': return JOIN_THROTTLE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'p': return PARANOID; - case 'r': return REGISTERED; - case 's': return UNLISTED; - case 't': return RESTRICT_TOPIC; + case 'A': + return AUDITORIUM; + case 'M': + return QUIET_UNIDENTIFIED; + case 'O': + return ONLY_OPER; + case 'R': + return BLOCK_UNIDENTIFIED; + case 'S': + return ONLY_SSL; + case 'c': + return BLOCK_COLOR; + case 'i': + return ONLY_INVITE; + case 'j': + return JOIN_THROTTLE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'p': + return PARANOID; + case 'r': + return REGISTERED; + case 's': + return UNLISTED; + case 't': + return RESTRICT_TOPIC; case 'b': return BAN; @@ -88,22 +104,38 @@ public class DalIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case AUDITORIUM: return 'A'; - case QUIET_UNIDENTIFIED: return 'M'; - case ONLY_OPER: return 'O'; - case BLOCK_UNIDENTIFIED: return 'R'; - case ONLY_SSL: return 'S'; - case BLOCK_COLOR: return 'c'; - case ONLY_INVITE: return 'i'; - case JOIN_THROTTLE: return 'j'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case PARANOID: return 'p'; - case REGISTERED: return 'r'; - case UNLISTED: return 's'; - case RESTRICT_TOPIC: return 't'; + case AUDITORIUM: + return 'A'; + case QUIET_UNIDENTIFIED: + return 'M'; + case ONLY_OPER: + return 'O'; + case BLOCK_UNIDENTIFIED: + return 'R'; + case ONLY_SSL: + return 'S'; + case BLOCK_COLOR: + return 'c'; + case ONLY_INVITE: + return 'i'; + case JOIN_THROTTLE: + return 'j'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case PARANOID: + return 'p'; + case REGISTERED: + return 'r'; + case UNLISTED: + return 's'; + case RESTRICT_TOPIC: + return 't'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/DancerIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/DancerIrcModeProvider.java index 5b6e898a9e50d89ee80e9c5e8b4f6a85b8e75b71..37c0014c12cf20674fb8358ca65ccd3ad097301c 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/DancerIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/DancerIrcModeProvider.java @@ -56,20 +56,34 @@ public class DancerIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'J': return JOIN_THROTTLE; - case 'P': return PERMANENT; - case 'Q': return BLOCK_FORWARDING; - case 'R': return QUIET_UNIDENTIFIED; - case 'c': return BLOCK_COLOR; - case 'g': return ALLOW_INVITE; - case 'i': return ONLY_INVITE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'r': return BLOCK_UNIDENTIFIED; - case 's': return UNLISTED; - case 'z': return REDUCED_MODERATION; + case 'J': + return JOIN_THROTTLE; + case 'P': + return PERMANENT; + case 'Q': + return BLOCK_FORWARDING; + case 'R': + return QUIET_UNIDENTIFIED; + case 'c': + return BLOCK_COLOR; + case 'g': + return ALLOW_INVITE; + case 'i': + return ONLY_INVITE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'r': + return BLOCK_UNIDENTIFIED; + case 's': + return UNLISTED; + case 'z': + return REDUCED_MODERATION; case 'b': return BAN; @@ -84,20 +98,34 @@ public class DancerIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case JOIN_THROTTLE: return 'J'; - case PERMANENT: return 'P'; - case BLOCK_FORWARDING: return 'Q'; - case QUIET_UNIDENTIFIED: return 'R'; - case BLOCK_COLOR: return 'c'; - case ALLOW_INVITE: return 'g'; - case ONLY_INVITE: return 'i'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case BLOCK_UNIDENTIFIED: return 'r'; - case UNLISTED: return 's'; - case REDUCED_MODERATION: return 'z'; + case JOIN_THROTTLE: + return 'J'; + case PERMANENT: + return 'P'; + case BLOCK_FORWARDING: + return 'Q'; + case QUIET_UNIDENTIFIED: + return 'R'; + case BLOCK_COLOR: + return 'c'; + case ALLOW_INVITE: + return 'g'; + case ONLY_INVITE: + return 'i'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case BLOCK_UNIDENTIFIED: + return 'r'; + case UNLISTED: + return 's'; + case REDUCED_MODERATION: + return 'z'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/FqIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/FqIrcModeProvider.java index 0a2edf5aaea5aacddcae1912aa634f308627df62..26bd287737635840b7be9a7565a1ae7ce581680c 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/FqIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/FqIrcModeProvider.java @@ -57,22 +57,38 @@ public class FqIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'M': return QUIET_UNIDENTIFIED; - case 'O': return ONLY_OPER; - case 'R': return BLOCK_UNIDENTIFIED; - case 'S': return ONLY_SSL; - case 'c': return BLOCK_COLOR; - case 'i': return ONLY_INVITE; - case 'j': return JOIN_THROTTLE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'p': return PARANOID; - case 'q': return BLOCK_UNIDENTIFIED; - case 'r': return REGISTERED; - case 's': return UNLISTED; - case 't': return RESTRICT_TOPIC; + case 'M': + return QUIET_UNIDENTIFIED; + case 'O': + return ONLY_OPER; + case 'R': + return BLOCK_UNIDENTIFIED; + case 'S': + return ONLY_SSL; + case 'c': + return BLOCK_COLOR; + case 'i': + return ONLY_INVITE; + case 'j': + return JOIN_THROTTLE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'p': + return PARANOID; + case 'q': + return BLOCK_UNIDENTIFIED; + case 'r': + return REGISTERED; + case 's': + return UNLISTED; + case 't': + return RESTRICT_TOPIC; case 'b': return BAN; @@ -87,21 +103,36 @@ public class FqIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case QUIET_UNIDENTIFIED: return 'M'; - case ONLY_OPER: return 'O'; - case ONLY_SSL: return 'S'; - case BLOCK_COLOR: return 'c'; - case ONLY_INVITE: return 'i'; - case JOIN_THROTTLE: return 'j'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case PARANOID: return 'p'; - case BLOCK_UNIDENTIFIED: return 'q'; - case REGISTERED: return 'r'; - case UNLISTED: return 's'; - case RESTRICT_TOPIC: return 't'; + case QUIET_UNIDENTIFIED: + return 'M'; + case ONLY_OPER: + return 'O'; + case ONLY_SSL: + return 'S'; + case BLOCK_COLOR: + return 'c'; + case ONLY_INVITE: + return 'i'; + case JOIN_THROTTLE: + return 'j'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case PARANOID: + return 'p'; + case BLOCK_UNIDENTIFIED: + return 'q'; + case REGISTERED: + return 'r'; + case UNLISTED: + return 's'; + case RESTRICT_TOPIC: + return 't'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/HybridIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/HybridIrcModeProvider.java index f259714201aadcf51356dd38866b1a984c1b0ac4..b444f42f53f0c807974d70def26d0864424d3b80 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/HybridIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/HybridIrcModeProvider.java @@ -56,20 +56,34 @@ public class HybridIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'M': return QUIET_UNIDENTIFIED; - case 'O': return ONLY_OPER; - case 'R': return BLOCK_UNIDENTIFIED; - case 'S': return ONLY_SSL; - case 'c': return BLOCK_COLOR; - case 'i': return ONLY_INVITE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'p': return PARANOID; - case 'r': return REGISTERED; - case 's': return UNLISTED; - case 't': return RESTRICT_TOPIC; + case 'M': + return QUIET_UNIDENTIFIED; + case 'O': + return ONLY_OPER; + case 'R': + return BLOCK_UNIDENTIFIED; + case 'S': + return ONLY_SSL; + case 'c': + return BLOCK_COLOR; + case 'i': + return ONLY_INVITE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'p': + return PARANOID; + case 'r': + return REGISTERED; + case 's': + return UNLISTED; + case 't': + return RESTRICT_TOPIC; case 'b': return BAN; @@ -84,20 +98,34 @@ public class HybridIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case QUIET_UNIDENTIFIED: return 'M'; - case ONLY_OPER: return 'O'; - case BLOCK_UNIDENTIFIED: return 'R'; - case ONLY_SSL: return 'S'; - case BLOCK_COLOR: return 'c'; - case ONLY_INVITE: return 'i'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case PARANOID: return 'p'; - case REGISTERED: return 'r'; - case UNLISTED: return 's'; - case RESTRICT_TOPIC: return 't'; + case QUIET_UNIDENTIFIED: + return 'M'; + case ONLY_OPER: + return 'O'; + case BLOCK_UNIDENTIFIED: + return 'R'; + case ONLY_SSL: + return 'S'; + case BLOCK_COLOR: + return 'c'; + case ONLY_INVITE: + return 'i'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case PARANOID: + return 'p'; + case REGISTERED: + return 'r'; + case UNLISTED: + return 's'; + case RESTRICT_TOPIC: + return 't'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/HyperionIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/HyperionIrcModeProvider.java index 28c2c12d4c0177441e1c5afa506891db189a180e..630b8331b07158b7b1eac5edf527a963756f8903 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/HyperionIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/HyperionIrcModeProvider.java @@ -54,18 +54,30 @@ public class HyperionIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'Q': return BLOCK_FORWARDING; - case 'R': return QUIET_UNIDENTIFIED; - case 'c': return BLOCK_COLOR; - case 'g': return ALLOW_INVITE; - case 'i': return ONLY_INVITE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'r': return BLOCK_UNIDENTIFIED; - case 's': return UNLISTED; - case 'z': return REDUCED_MODERATION; + case 'Q': + return BLOCK_FORWARDING; + case 'R': + return QUIET_UNIDENTIFIED; + case 'c': + return BLOCK_COLOR; + case 'g': + return ALLOW_INVITE; + case 'i': + return ONLY_INVITE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'r': + return BLOCK_UNIDENTIFIED; + case 's': + return UNLISTED; + case 'z': + return REDUCED_MODERATION; case 'b': return BAN; @@ -80,18 +92,30 @@ public class HyperionIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case BLOCK_FORWARDING: return 'Q'; - case QUIET_UNIDENTIFIED: return 'R'; - case BLOCK_COLOR: return 'c'; - case ALLOW_INVITE: return 'g'; - case ONLY_INVITE: return 'i'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case BLOCK_UNIDENTIFIED: return 'r'; - case UNLISTED: return 's'; - case REDUCED_MODERATION: return 'z'; + case BLOCK_FORWARDING: + return 'Q'; + case QUIET_UNIDENTIFIED: + return 'R'; + case BLOCK_COLOR: + return 'c'; + case ALLOW_INVITE: + return 'g'; + case ONLY_INVITE: + return 'i'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case BLOCK_UNIDENTIFIED: + return 'r'; + case UNLISTED: + return 's'; + case REDUCED_MODERATION: + return 'z'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/InspireIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/InspireIrcModeProvider.java index 98a7d6f035f97c165f075e63bfe49c5f91bde9c4..b1e81b465bad4c748cefe0c0826953fbafa7db84 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/InspireIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/InspireIrcModeProvider.java @@ -71,35 +71,64 @@ public class InspireIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'A': return ALLOW_INVITE; - case 'B': return BLOCK_CAPS; - case 'C': return BLOCK_CTCP; - case 'D': return HIDE_JOINS; - case 'G': return CENSOR; - case 'K': return BLOCK_KNOCK; - case 'L': return FORWARD; - case 'M': return QUIET_UNIDENTIFIED; - case 'N': return BLOCK_NICKCHANGE; - case 'O': return ONLY_OPER; - case 'P': return PERMANENT; - case 'Q': return BLOCK_KICK; - case 'R': return BLOCK_UNIDENTIFIED; - case 'S': return STRIP_COLOR; - case 'T': return BLOCK_NOTICE; - case 'c': return BLOCK_COLOR; - case 'f': return ANTIFLOOD; - case 'i': return ONLY_INVITE; - case 'j': return JOIN_THROTTLE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'p': return PARANOID; - case 'r': return REGISTERED; - case 's': return UNLISTED; - case 't': return RESTRICT_TOPIC; - case 'u': return AUDITORIUM; - case 'z': return ONLY_SSL; + case 'A': + return ALLOW_INVITE; + case 'B': + return BLOCK_CAPS; + case 'C': + return BLOCK_CTCP; + case 'D': + return HIDE_JOINS; + case 'G': + return CENSOR; + case 'K': + return BLOCK_KNOCK; + case 'L': + return FORWARD; + case 'M': + return QUIET_UNIDENTIFIED; + case 'N': + return BLOCK_NICKCHANGE; + case 'O': + return ONLY_OPER; + case 'P': + return PERMANENT; + case 'Q': + return BLOCK_KICK; + case 'R': + return BLOCK_UNIDENTIFIED; + case 'S': + return STRIP_COLOR; + case 'T': + return BLOCK_NOTICE; + case 'c': + return BLOCK_COLOR; + case 'f': + return ANTIFLOOD; + case 'i': + return ONLY_INVITE; + case 'j': + return JOIN_THROTTLE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'p': + return PARANOID; + case 'r': + return REGISTERED; + case 's': + return UNLISTED; + case 't': + return RESTRICT_TOPIC; + case 'u': + return AUDITORIUM; + case 'z': + return ONLY_SSL; case 'b': return BAN; @@ -114,35 +143,64 @@ public class InspireIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case ALLOW_INVITE: return 'A'; - case BLOCK_CAPS: return 'B'; - case BLOCK_CTCP: return 'C'; - case HIDE_JOINS: return 'D'; - case CENSOR: return 'G'; - case BLOCK_KNOCK: return 'K'; - case FORWARD: return 'L'; - case QUIET_UNIDENTIFIED: return 'M'; - case BLOCK_NICKCHANGE: return 'N'; - case ONLY_OPER: return 'O'; - case PERMANENT: return 'P'; - case BLOCK_KICK: return 'Q'; - case BLOCK_UNIDENTIFIED: return 'R'; - case STRIP_COLOR: return 'S'; - case BLOCK_NOTICE: return 'T'; - case BLOCK_COLOR: return 'c'; - case ANTIFLOOD: return 'f'; - case ONLY_INVITE: return 'i'; - case JOIN_THROTTLE: return 'j'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case PARANOID: return 'p'; - case REGISTERED: return 'r'; - case UNLISTED: return 's'; - case RESTRICT_TOPIC: return 't'; - case AUDITORIUM: return 'u'; - case ONLY_SSL: return 'z'; + case ALLOW_INVITE: + return 'A'; + case BLOCK_CAPS: + return 'B'; + case BLOCK_CTCP: + return 'C'; + case HIDE_JOINS: + return 'D'; + case CENSOR: + return 'G'; + case BLOCK_KNOCK: + return 'K'; + case FORWARD: + return 'L'; + case QUIET_UNIDENTIFIED: + return 'M'; + case BLOCK_NICKCHANGE: + return 'N'; + case ONLY_OPER: + return 'O'; + case PERMANENT: + return 'P'; + case BLOCK_KICK: + return 'Q'; + case BLOCK_UNIDENTIFIED: + return 'R'; + case STRIP_COLOR: + return 'S'; + case BLOCK_NOTICE: + return 'T'; + case BLOCK_COLOR: + return 'c'; + case ANTIFLOOD: + return 'f'; + case ONLY_INVITE: + return 'i'; + case JOIN_THROTTLE: + return 'j'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case PARANOID: + return 'p'; + case REGISTERED: + return 'r'; + case UNLISTED: + return 's'; + case RESTRICT_TOPIC: + return 't'; + case AUDITORIUM: + return 'u'; + case ONLY_SSL: + return 'z'; } return ' '; } diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/NeoIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/NeoIrcModeProvider.java index 7e4a27f82f8d2467cdfe7eb4d8b3deb5acfdede8..0ed1d4584004fe45b79bea3d602f9dbfeeb200d2 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/NeoIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/NeoIrcModeProvider.java @@ -58,22 +58,38 @@ public class NeoIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'M': return QUIET_UNIDENTIFIED; - case 'N': return BLOCK_NICKCHANGE; - case 'O': return ONLY_OPER; - case 'P': return PERMANENT; - case 'Q': return BLOCK_KICK; - case 'R': return BLOCK_UNIDENTIFIED; - case 'V': return DISABLE_INVITE; - case 'i': return ONLY_INVITE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'r': return REGISTERED; - case 's': return UNLISTED; - case 't': return RESTRICT_TOPIC; - case 'z': return ONLY_SSL; + case 'M': + return QUIET_UNIDENTIFIED; + case 'N': + return BLOCK_NICKCHANGE; + case 'O': + return ONLY_OPER; + case 'P': + return PERMANENT; + case 'Q': + return BLOCK_KICK; + case 'R': + return BLOCK_UNIDENTIFIED; + case 'V': + return DISABLE_INVITE; + case 'i': + return ONLY_INVITE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'r': + return REGISTERED; + case 's': + return UNLISTED; + case 't': + return RESTRICT_TOPIC; + case 'z': + return ONLY_SSL; case 'b': return BAN; @@ -88,22 +104,38 @@ public class NeoIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case QUIET_UNIDENTIFIED: return 'M'; - case BLOCK_NICKCHANGE: return 'N'; - case ONLY_OPER: return 'O'; - case PERMANENT: return 'P'; - case BLOCK_KICK: return 'Q'; - case BLOCK_UNIDENTIFIED: return 'R'; - case DISABLE_INVITE: return 'V'; - case ONLY_INVITE: return 'i'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case REGISTERED: return 'r'; - case UNLISTED: return 's'; - case RESTRICT_TOPIC: return 't'; - case ONLY_SSL: return 'z'; + case QUIET_UNIDENTIFIED: + return 'M'; + case BLOCK_NICKCHANGE: + return 'N'; + case ONLY_OPER: + return 'O'; + case PERMANENT: + return 'P'; + case BLOCK_KICK: + return 'Q'; + case BLOCK_UNIDENTIFIED: + return 'R'; + case DISABLE_INVITE: + return 'V'; + case ONLY_INVITE: + return 'i'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case REGISTERED: + return 'r'; + case UNLISTED: + return 's'; + case RESTRICT_TOPIC: + return 't'; + case ONLY_SSL: + return 'z'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/NightstarIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/NightstarIrcModeProvider.java index 2d7ce77775b5e0208e83c5082675507997a5e67c..648ecfdb7787d82bd4634b0a45f8b9b7909496c2 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/NightstarIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/NightstarIrcModeProvider.java @@ -57,16 +57,26 @@ public class NightstarIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'C': return BLOCK_COLOR; - case 'i': return ONLY_INVITE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'p': return PARANOID; - case 'r': return REGISTERED; - case 's': return UNLISTED; - case 't': return RESTRICT_TOPIC; + case 'C': + return BLOCK_COLOR; + case 'i': + return ONLY_INVITE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'p': + return PARANOID; + case 'r': + return REGISTERED; + case 's': + return UNLISTED; + case 't': + return RESTRICT_TOPIC; case 'b': return BAN; @@ -81,16 +91,26 @@ public class NightstarIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case BLOCK_COLOR: return 'C'; - case ONLY_INVITE: return 'i'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case PARANOID: return 'p'; - case REGISTERED: return 'r'; - case UNLISTED: return 's'; - case RESTRICT_TOPIC: return 't'; + case BLOCK_COLOR: + return 'C'; + case ONLY_INVITE: + return 'i'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case PARANOID: + return 'p'; + case REGISTERED: + return 'r'; + case UNLISTED: + return 's'; + case RESTRICT_TOPIC: + return 't'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/RfcIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/RfcIrcModeProvider.java index 67e8062b544e1836d7131bff47ff09e3758df751..01bf730b29e879832807d24afc8bc87c6866d687 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/RfcIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/RfcIrcModeProvider.java @@ -50,14 +50,22 @@ public class RfcIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'p': return PARANOID; - case 's': return UNLISTED; - case 'i': return ONLY_INVITE; - case 't': return RESTRICT_TOPIC; - case 'n': return BLOCK_EXTERNAL; - case 'm': return MODERATED; - case 'l': return LIMIT; - case 'k': return PASSWORD; + case 'p': + return PARANOID; + case 's': + return UNLISTED; + case 'i': + return ONLY_INVITE; + case 't': + return RESTRICT_TOPIC; + case 'n': + return BLOCK_EXTERNAL; + case 'm': + return MODERATED; + case 'l': + return LIMIT; + case 'k': + return PASSWORD; case 'b': return BAN; @@ -72,14 +80,22 @@ public class RfcIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case PARANOID: return 'p'; - case UNLISTED: return 's'; - case ONLY_INVITE: return 'i'; - case RESTRICT_TOPIC: return 't'; - case BLOCK_EXTERNAL: return 'n'; - case MODERATED: return 'm'; - case LIMIT: return 'l'; - case PASSWORD: return 'k'; + case PARANOID: + return 'p'; + case UNLISTED: + return 's'; + case ONLY_INVITE: + return 'i'; + case RESTRICT_TOPIC: + return 't'; + case BLOCK_EXTERNAL: + return 'n'; + case MODERATED: + return 'm'; + case LIMIT: + return 'l'; + case PASSWORD: + return 'k'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/ShadowIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/ShadowIrcModeProvider.java index 54af40869f224365b3eb7d2fc342db3c14e15795..a03b7b1bc122b0ded3258eb85bb0846f31724804 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/ShadowIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/ShadowIrcModeProvider.java @@ -69,33 +69,60 @@ public class ShadowIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'A': return ONLY_ADMIN; - case 'C': return BLOCK_CTCP; - case 'D': return BLOCK_ACTION; - case 'E': return BLOCK_KICK; - case 'F': return ALLOW_FORWARD; - case 'G': return BLOCK_CAPS; - case 'J': return BLOCK_AUTOREJOIN; - case 'K': return BLOCK_REPEAT; - case 'O': return ONLY_OPER; - case 'P': return PERMANENT; - case 'Q': return BLOCK_FORWARDING; - case 'S': return ONLY_SSL; - case 'T': return BLOCK_NOTICE; - case 'c': return STRIP_COLOR; - case 'd': return BLOCK_NICKCHANGE; - case 'g': return ALLOW_INVITE; - case 'i': return ONLY_INVITE; - case 'j': return JOIN_THROTTLE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'p': return PARANOID; - case 'r': return BLOCK_UNIDENTIFIED; - case 's': return UNLISTED; - case 't': return RESTRICT_TOPIC; - case 'z': return REDUCED_MODERATION; + case 'A': + return ONLY_ADMIN; + case 'C': + return BLOCK_CTCP; + case 'D': + return BLOCK_ACTION; + case 'E': + return BLOCK_KICK; + case 'F': + return ALLOW_FORWARD; + case 'G': + return BLOCK_CAPS; + case 'J': + return BLOCK_AUTOREJOIN; + case 'K': + return BLOCK_REPEAT; + case 'O': + return ONLY_OPER; + case 'P': + return PERMANENT; + case 'Q': + return BLOCK_FORWARDING; + case 'S': + return ONLY_SSL; + case 'T': + return BLOCK_NOTICE; + case 'c': + return STRIP_COLOR; + case 'd': + return BLOCK_NICKCHANGE; + case 'g': + return ALLOW_INVITE; + case 'i': + return ONLY_INVITE; + case 'j': + return JOIN_THROTTLE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'p': + return PARANOID; + case 'r': + return BLOCK_UNIDENTIFIED; + case 's': + return UNLISTED; + case 't': + return RESTRICT_TOPIC; + case 'z': + return REDUCED_MODERATION; case 'b': return BAN; @@ -110,33 +137,60 @@ public class ShadowIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case ONLY_ADMIN: return 'A'; - case BLOCK_CTCP: return 'C'; - case BLOCK_ACTION: return 'D'; - case BLOCK_KICK: return 'E'; - case ALLOW_FORWARD: return 'F'; - case BLOCK_CAPS: return 'G'; - case BLOCK_AUTOREJOIN: return 'J'; - case BLOCK_REPEAT: return 'K'; - case ONLY_OPER: return 'O'; - case PERMANENT: return 'P'; - case BLOCK_FORWARDING: return 'Q'; - case ONLY_SSL: return 'S'; - case BLOCK_NOTICE: return 'T'; - case STRIP_COLOR: return 'c'; - case BLOCK_NICKCHANGE: return 'd'; - case ALLOW_INVITE: return 'g'; - case ONLY_INVITE: return 'i'; - case JOIN_THROTTLE: return 'j'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case PARANOID: return 'p'; - case BLOCK_UNIDENTIFIED: return 'r'; - case UNLISTED: return 's'; - case RESTRICT_TOPIC: return 't'; - case REDUCED_MODERATION: return 'z'; + case ONLY_ADMIN: + return 'A'; + case BLOCK_CTCP: + return 'C'; + case BLOCK_ACTION: + return 'D'; + case BLOCK_KICK: + return 'E'; + case ALLOW_FORWARD: + return 'F'; + case BLOCK_CAPS: + return 'G'; + case BLOCK_AUTOREJOIN: + return 'J'; + case BLOCK_REPEAT: + return 'K'; + case ONLY_OPER: + return 'O'; + case PERMANENT: + return 'P'; + case BLOCK_FORWARDING: + return 'Q'; + case ONLY_SSL: + return 'S'; + case BLOCK_NOTICE: + return 'T'; + case STRIP_COLOR: + return 'c'; + case BLOCK_NICKCHANGE: + return 'd'; + case ALLOW_INVITE: + return 'g'; + case ONLY_INVITE: + return 'i'; + case JOIN_THROTTLE: + return 'j'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case PARANOID: + return 'p'; + case BLOCK_UNIDENTIFIED: + return 'r'; + case UNLISTED: + return 's'; + case RESTRICT_TOPIC: + return 't'; + case REDUCED_MODERATION: + return 'z'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/SolidIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/SolidIrcModeProvider.java index e33255f68daacf8870b423f8797d9bb4318802e0..92bc806c711e6b1f2b0d2a1507a640df1a7c87d8 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/SolidIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/SolidIrcModeProvider.java @@ -66,30 +66,54 @@ public class SolidIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'B': return BLOCK_CAPS; - case 'C': return BLOCK_CTCP; - case 'G': return CENSOR; - case 'K': return BLOCK_KNOCK; - case 'M': return QUIET_UNIDENTIFIED; - case 'N': return BLOCK_NICKCHANGE; - case 'P': return PERMANENT; - case 'Q': return BLOCK_KICK; - case 'R': return BLOCK_UNIDENTIFIED; - case 'S': return STRIP_COLOR; - case 'T': return BLOCK_NOTICE; - case 'V': return DISABLE_INVITE; - case 'c': return BLOCK_COLOR; - case 'f': return ANTIFLOOD; - case 'i': return ONLY_INVITE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'p': return PARANOID; - case 's': return UNLISTED; - case 't': return RESTRICT_TOPIC; - case 'u': return AUDITORIUM; - case 'z': return ONLY_SSL; + case 'B': + return BLOCK_CAPS; + case 'C': + return BLOCK_CTCP; + case 'G': + return CENSOR; + case 'K': + return BLOCK_KNOCK; + case 'M': + return QUIET_UNIDENTIFIED; + case 'N': + return BLOCK_NICKCHANGE; + case 'P': + return PERMANENT; + case 'Q': + return BLOCK_KICK; + case 'R': + return BLOCK_UNIDENTIFIED; + case 'S': + return STRIP_COLOR; + case 'T': + return BLOCK_NOTICE; + case 'V': + return DISABLE_INVITE; + case 'c': + return BLOCK_COLOR; + case 'f': + return ANTIFLOOD; + case 'i': + return ONLY_INVITE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'p': + return PARANOID; + case 's': + return UNLISTED; + case 't': + return RESTRICT_TOPIC; + case 'u': + return AUDITORIUM; + case 'z': + return ONLY_SSL; case 'b': return BAN; @@ -104,30 +128,54 @@ public class SolidIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case BLOCK_CAPS: return 'B'; - case BLOCK_CTCP: return 'C'; - case CENSOR: return 'G'; - case BLOCK_KNOCK: return 'K'; - case QUIET_UNIDENTIFIED: return 'M'; - case BLOCK_NICKCHANGE: return 'N'; - case PERMANENT: return 'P'; - case BLOCK_KICK: return 'Q'; - case BLOCK_UNIDENTIFIED: return 'R'; - case STRIP_COLOR: return 'S'; - case BLOCK_NOTICE: return 'T'; - case DISABLE_INVITE: return 'V'; - case BLOCK_COLOR: return 'c'; - case ANTIFLOOD: return 'f'; - case ONLY_INVITE: return 'i'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case PARANOID: return 'p'; - case UNLISTED: return 's'; - case RESTRICT_TOPIC: return 't'; - case AUDITORIUM: return 'u'; - case ONLY_SSL: return 'z'; + case BLOCK_CAPS: + return 'B'; + case BLOCK_CTCP: + return 'C'; + case CENSOR: + return 'G'; + case BLOCK_KNOCK: + return 'K'; + case QUIET_UNIDENTIFIED: + return 'M'; + case BLOCK_NICKCHANGE: + return 'N'; + case PERMANENT: + return 'P'; + case BLOCK_KICK: + return 'Q'; + case BLOCK_UNIDENTIFIED: + return 'R'; + case STRIP_COLOR: + return 'S'; + case BLOCK_NOTICE: + return 'T'; + case DISABLE_INVITE: + return 'V'; + case BLOCK_COLOR: + return 'c'; + case ANTIFLOOD: + return 'f'; + case ONLY_INVITE: + return 'i'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case PARANOID: + return 'p'; + case UNLISTED: + return 's'; + case RESTRICT_TOPIC: + return 't'; + case AUDITORIUM: + return 'u'; + case ONLY_SSL: + return 'z'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/UndernetIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/UndernetIrcModeProvider.java index 0dca5c0a620719f4659c430fbfa6f0bac816acac..3f378790a8d350063d6307f7c35227ac08606657 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/UndernetIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/UndernetIrcModeProvider.java @@ -55,14 +55,22 @@ public class UndernetIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'i': return ONLY_INVITE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'p': return PARANOID; - case 's': return UNLISTED; - case 't': return RESTRICT_TOPIC; + case 'i': + return ONLY_INVITE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'p': + return PARANOID; + case 's': + return UNLISTED; + case 't': + return RESTRICT_TOPIC; case 'b': return BAN; @@ -77,14 +85,22 @@ public class UndernetIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case ONLY_INVITE: return 'i'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case PARANOID: return 'p'; - case UNLISTED: return 's'; - case RESTRICT_TOPIC: return 't'; + case ONLY_INVITE: + return 'i'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case PARANOID: + return 'p'; + case UNLISTED: + return 's'; + case RESTRICT_TOPIC: + return 't'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/UnrealIrcModeProvider.java b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/UnrealIrcModeProvider.java index deffc9a8e9bb156dbdf87a46fc27aa098f63489b..184716b9777a6d9231ad14495bd2209df508173d 100644 --- a/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/UnrealIrcModeProvider.java +++ b/app/src/main/java/de/kuschku/util/irc/chanmodes/impl/UnrealIrcModeProvider.java @@ -68,32 +68,58 @@ public class UnrealIrcModeProvider extends AbstractIrcModeProvider { @Override public ChanMode modeFromChar(char mode) { switch (mode) { - case 'C': return BLOCK_CTCP; - case 'F': return FORWARD; - case 'G': return CENSOR; - case 'K': return BLOCK_KNOCK; - case 'M': return QUIET_UNIDENTIFIED; - case 'N': return BLOCK_NICKCHANGE; - case 'O': return ONLY_OPER; - case 'P': return PERMANENT; - case 'Q': return BLOCK_KICK; - case 'R': return BLOCK_UNIDENTIFIED; - case 'S': return STRIP_COLOR; - case 'T': return BLOCK_NOTICE; - case 'V': return DISABLE_INVITE; - case 'Z': return IS_SECURE; - case 'c': return BLOCK_COLOR; - case 'f': return ANTIFLOOD; - case 'i': return ONLY_INVITE; - case 'k': return PASSWORD; - case 'l': return LIMIT; - case 'm': return MODERATED; - case 'n': return BLOCK_EXTERNAL; - case 'p': return PARANOID; - case 'r': return REGISTERED; - case 's': return UNLISTED; - case 't': return RESTRICT_TOPIC; - case 'z': return ONLY_SSL; + case 'C': + return BLOCK_CTCP; + case 'F': + return FORWARD; + case 'G': + return CENSOR; + case 'K': + return BLOCK_KNOCK; + case 'M': + return QUIET_UNIDENTIFIED; + case 'N': + return BLOCK_NICKCHANGE; + case 'O': + return ONLY_OPER; + case 'P': + return PERMANENT; + case 'Q': + return BLOCK_KICK; + case 'R': + return BLOCK_UNIDENTIFIED; + case 'S': + return STRIP_COLOR; + case 'T': + return BLOCK_NOTICE; + case 'V': + return DISABLE_INVITE; + case 'Z': + return IS_SECURE; + case 'c': + return BLOCK_COLOR; + case 'f': + return ANTIFLOOD; + case 'i': + return ONLY_INVITE; + case 'k': + return PASSWORD; + case 'l': + return LIMIT; + case 'm': + return MODERATED; + case 'n': + return BLOCK_EXTERNAL; + case 'p': + return PARANOID; + case 'r': + return REGISTERED; + case 's': + return UNLISTED; + case 't': + return RESTRICT_TOPIC; + case 'z': + return ONLY_SSL; case 'b': return BAN; @@ -108,32 +134,58 @@ public class UnrealIrcModeProvider extends AbstractIrcModeProvider { @Override public char charFromMode(ChanMode mode) { switch (mode) { - case BLOCK_CTCP: return 'C'; - case FORWARD: return 'F'; - case CENSOR: return 'G'; - case BLOCK_KNOCK: return 'K'; - case QUIET_UNIDENTIFIED: return 'M'; - case BLOCK_NICKCHANGE: return 'N'; - case ONLY_OPER: return 'O'; - case PERMANENT: return 'P'; - case BLOCK_KICK: return 'Q'; - case BLOCK_UNIDENTIFIED: return 'R'; - case STRIP_COLOR: return 'S'; - case BLOCK_NOTICE: return 'T'; - case DISABLE_INVITE: return 'V'; - case IS_SECURE: return 'Z'; - case BLOCK_COLOR: return 'c'; - case ANTIFLOOD: return 'f'; - case ONLY_INVITE: return 'i'; - case PASSWORD: return 'k'; - case LIMIT: return 'l'; - case MODERATED: return 'm'; - case BLOCK_EXTERNAL: return 'n'; - case PARANOID: return 'p'; - case REGISTERED: return 'r'; - case UNLISTED: return 's'; - case RESTRICT_TOPIC: return 't'; - case ONLY_SSL: return 'z'; + case BLOCK_CTCP: + return 'C'; + case FORWARD: + return 'F'; + case CENSOR: + return 'G'; + case BLOCK_KNOCK: + return 'K'; + case QUIET_UNIDENTIFIED: + return 'M'; + case BLOCK_NICKCHANGE: + return 'N'; + case ONLY_OPER: + return 'O'; + case PERMANENT: + return 'P'; + case BLOCK_KICK: + return 'Q'; + case BLOCK_UNIDENTIFIED: + return 'R'; + case STRIP_COLOR: + return 'S'; + case BLOCK_NOTICE: + return 'T'; + case DISABLE_INVITE: + return 'V'; + case IS_SECURE: + return 'Z'; + case BLOCK_COLOR: + return 'c'; + case ANTIFLOOD: + return 'f'; + case ONLY_INVITE: + return 'i'; + case PASSWORD: + return 'k'; + case LIMIT: + return 'l'; + case MODERATED: + return 'm'; + case BLOCK_EXTERNAL: + return 'n'; + case PARANOID: + return 'p'; + case REGISTERED: + return 'r'; + case UNLISTED: + return 's'; + case RESTRICT_TOPIC: + return 't'; + case ONLY_SSL: + return 'z'; case BAN: return 'b'; diff --git a/app/src/main/java/de/kuschku/util/irc/format/IrcFormatHelper.java b/app/src/main/java/de/kuschku/util/irc/format/IrcFormatHelper.java index dd1f64cb938d2322f083e2e086380195dadc7c99..970ad40309f0b54046725340a57c83e35266dc50 100644 --- a/app/src/main/java/de/kuschku/util/irc/format/IrcFormatHelper.java +++ b/app/src/main/java/de/kuschku/util/irc/format/IrcFormatHelper.java @@ -94,7 +94,7 @@ public class IrcFormatHelper { SpannableString str = new SpannableString(context.deserializer().formatString(text)); Matcher urlMatcher = urlPattern.matcher(str); while (urlMatcher.find()) { - spans.add(new FutureClickableSpan(new CustomURLSpan(urlMatcher.group(1)), urlMatcher.start(), urlMatcher.start()+urlMatcher.group(1).length())); + spans.add(new FutureClickableSpan(new CustomURLSpan(urlMatcher.group(1)), urlMatcher.start(), urlMatcher.start() + urlMatcher.group(1).length())); } Matcher channelMatcher = channelPattern.matcher(str); while (channelMatcher.find()) { diff --git a/app/src/main/java/de/kuschku/util/regex/SmartRegEx.java b/app/src/main/java/de/kuschku/util/regex/SmartRegEx.java index 82b326f5e099a1778f54046155e4b34acb2df966..21a79ba11825882eed6524ee21bb6e9a89123d24 100644 --- a/app/src/main/java/de/kuschku/util/regex/SmartRegEx.java +++ b/app/src/main/java/de/kuschku/util/regex/SmartRegEx.java @@ -66,13 +66,13 @@ public class SmartRegEx { return Pattern.compile(GlobTransformer.convertGlobToRegex(glob), flags); } - public enum Syntax { - WILDCARD, - REGEX - } - @Override public String toString() { return rule; } + + public enum Syntax { + WILDCARD, + REGEX + } } diff --git a/app/src/main/java/de/kuschku/util/servicebound/BoundActivity.java b/app/src/main/java/de/kuschku/util/servicebound/BoundActivity.java index c397874162e203dc66bba64e08f9e268ca5f1ad8..3729fca0994ff41dccd56afa7f1e646350c8772a 100644 --- a/app/src/main/java/de/kuschku/util/servicebound/BoundActivity.java +++ b/app/src/main/java/de/kuschku/util/servicebound/BoundActivity.java @@ -39,9 +39,9 @@ import de.kuschku.util.accounts.Account; public abstract class BoundActivity extends AppCompatActivity { protected AppContext context = new AppContext(); + protected QuasselService.LocalBinder binder; @StyleRes private int themeId; - protected QuasselService.LocalBinder binder; private ServiceConnection connection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { diff --git a/app/src/main/res/layout-w720dp/activity_main.xml b/app/src/main/res/layout-w720dp/activity_main.xml index ed2eaaafb4f6c812a0b8d961a690d72da0ebf2cc..e12fab0053708a334b27ffefe480416c4da7fff0 100644 --- a/app/src/main/res/layout-w720dp/activity_main.xml +++ b/app/src/main/res/layout-w720dp/activity_main.xml @@ -35,33 +35,45 @@ android:layout_height="match_parent" android:orientation="vertical"> - <android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" + <FrameLayout android:layout_width="match_parent" - android:layout_height="wrap_content" - android:theme="?attr/actionBarTheme"> + android:layout_height="wrap_content"> - <android.support.v7.widget.Toolbar - android:id="@+id/chatListToolbar" + <android.support.design.widget.AppBarLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" - android:layout_height="?attr/actionBarSize" - android:background="?attr/colorPrimary" - app:popupTheme="@style/AppTheme.PopupOverlay"> + android:layout_height="wrap_content" + android:theme="?attr/actionBarTheme"> + + <android.support.v7.widget.Toolbar + android:id="@+id/chatListToolbar" + android:layout_width="match_parent" + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorPrimary" + app:popupTheme="@style/AppTheme.PopupOverlay"> + + <android.support.v7.widget.AppCompatSpinner + android:id="@+id/chatListSpinner" + android:layout_width="fill_parent" + android:layout_height="match_parent" + app:popupTheme="@style/AppTheme.PopupOverlay"/> - <android.support.v7.widget.AppCompatSpinner - android:id="@+id/chatListSpinner" - android:layout_width="fill_parent" - android:layout_height="match_parent" - app:popupTheme="@style/AppTheme.PopupOverlay" /> + </android.support.v7.widget.Toolbar> - </android.support.v7.widget.Toolbar> + </android.support.design.widget.AppBarLayout> + + <ViewStub + android:id="@+id/cab_stub" + android:layout_width="match_parent" + android:layout_height="?actionBarSize"/> - </android.support.design.widget.AppBarLayout> + </FrameLayout> <android.support.v7.widget.RecyclerView android:id="@+id/chatList" android:layout_width="match_parent" - android:layout_height="match_parent" /> + android:layout_height="match_parent"/> </LinearLayout> @@ -70,12 +82,12 @@ android:layout_height="match_parent" android:orientation="vertical"> - <include layout="@layout/widget_actionbar" /> + <include layout="@layout/widget_actionbar"/> <FrameLayout android:id="@+id/content_host" android:layout_width="match_parent" - android:layout_height="match_parent" /> + android:layout_height="match_parent"/> </LinearLayout> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 00183c8bf93c4e79c77a9ab7f45a9c94f4bbe6f1..bab2182d40c4176badb7027438575b4a426f42c5 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -21,25 +21,25 @@ --> <android.support.v4.widget.DrawerLayout 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" - android:id="@+id/drawer_layout" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="?attr/colorBackground" - tools:context=".ui.chat.MainActivity"> + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/drawer_layout" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="?attr/colorBackground" + tools:context=".ui.chat.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> - <include layout="@layout/widget_actionbar" /> + <include layout="@layout/widget_actionbar"/> <FrameLayout android:id="@+id/content_host" android:layout_width="match_parent" - android:layout_height="match_parent" /> + android:layout_height="match_parent"/> </LinearLayout> @@ -54,35 +54,47 @@ android:layout_height="match_parent" android:orientation="vertical"> - <android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" + <FrameLayout android:layout_width="match_parent" - android:layout_height="wrap_content" - android:theme="?attr/actionBarTheme"> + android:layout_height="wrap_content"> - <android.support.v7.widget.Toolbar - android:id="@+id/chatListToolbar" + <android.support.design.widget.AppBarLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" - android:layout_height="?attr/actionBarSize" - android:background="?attr/colorPrimary" - android:theme="?attr/actionBarTheme" - app:popupTheme="@style/AppTheme.PopupOverlay"> - - <android.support.v7.widget.AppCompatSpinner - android:id="@+id/chatListSpinner" - android:layout_width="fill_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" + android:theme="?attr/actionBarTheme"> + + <android.support.v7.widget.Toolbar + android:id="@+id/chatListToolbar" + android:layout_width="match_parent" + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorPrimary" android:theme="?attr/actionBarTheme" - app:popupTheme="@style/AppTheme.PopupOverlay" /> + app:popupTheme="@style/AppTheme.PopupOverlay"> - </android.support.v7.widget.Toolbar> + <android.support.v7.widget.AppCompatSpinner + android:id="@+id/chatListSpinner" + android:layout_width="fill_parent" + android:layout_height="match_parent" + android:theme="?attr/actionBarTheme" + app:popupTheme="@style/AppTheme.PopupOverlay"/> - </android.support.design.widget.AppBarLayout> + </android.support.v7.widget.Toolbar> + + </android.support.design.widget.AppBarLayout> + + <ViewStub + android:id="@+id/cab_stub" + android:layout_width="match_parent" + android:layout_height="?actionBarSize"/> + + </FrameLayout> <android.support.v7.widget.RecyclerView android:id="@+id/chatList" android:layout_width="match_parent" - android:layout_height="match_parent" /> + android:layout_height="match_parent"/> </LinearLayout> diff --git a/app/src/main/res/menu/context_buffer_network.xml b/app/src/main/res/menu/context_buffer_network.xml new file mode 100644 index 0000000000000000000000000000000000000000..5f46ee365b9783740e4984edd9403b40bb2d66e9 --- /dev/null +++ b/app/src/main/res/menu/context_buffer_network.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ 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/>. + --> + +<menu xmlns:android="http://schemas.android.com/apk/res/android"> + <group + android:id="@+id/context_group_network"> + <item + android:id="@+id/context_menu_connect" + android:title="@string/action_connect"/> + <item + android:id="@+id/context_menu_disconnect" + android:title="@string/action_disconnect"/> + </group> + <group + android:id="@+id/context_group_buffer"> + <item + android:id="@+id/context_menu_join" + android:title="@string/action_join"/> + <item + android:id="@+id/context_menu_part" + android:title="@string/action_part"/> + <item + android:id="@+id/context_menu_delete" + android:title="@string/action_delete"/> + <item + android:id="@+id/context_menu_unhide" + android:title="@string/action_unhide"/> + <item + android:id="@+id/context_menu_hide_temp" + android:title="@string/action_hide_temp"/> + <item + android:id="@+id/context_menu_hide_perm" + android:title="@string/action_hide_perm"/> + </group> +</menu> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ea87b3df1a60f4a2cf7269996e7e93751a08176d..f7778fbf8cbe5abc5c65483650beb2c608f21299 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -87,4 +87,18 @@ <string name="action_manage_chat_lists">Manage Chat Lists</string> <string name="action_show_hidden">Show Hidden</string> <string name="action_join_channel">Join Channel</string> + + <string name="action_connect">Connect</string> + <string name="action_disconnect">Disconnect</string> + + <string name="action_join">Join</string> + <string name="action_part">Part</string> + <string name="action_delete">Delete</string> + + <string name="action_hidden_display">Show hidden Buffers</string> + <string name="action_hidden_hide">Hide hidden Buffers</string> + + <string name="action_unhide">Make Visible</string> + <string name="action_hide_temp">Hide Temporarily</string> + <string name="action_hide_perm">Hide Permanently</string> </resources>