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 9a2fce8c11c5f2538e781c65b8ff1c7a0f085120..ffe87c6a66da22ddf2559531595e446ac4d5eeaa 100644 --- a/app/src/main/java/de/kuschku/libquassel/localtypes/BacklogFilter.java +++ b/app/src/main/java/de/kuschku/libquassel/localtypes/BacklogFilter.java @@ -23,6 +23,7 @@ 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; @@ -187,6 +188,8 @@ public class BacklogFilter implements UICallback { public void setFilters(int filters) { setFiltersInternal(filters); client.metaDataManager().setHiddendata(client.coreId(), bufferId, filters); + int after = client.metaDataManager().hiddendata(client.coreId(), bufferId); + Log.e("DEBUG", filters + ":" + after); } private void setFiltersInternal(int filters) { 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 03d030be95b8d0c92a5c433562286f33012c2b60..10f3142a6988ebb9a7dd8f79eed3cc4967ef48d6 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 @@ -233,13 +233,12 @@ public class MainActivity extends BoundActivity { public void onConnectionChange(ConnectionChangeEvent.Status status) { if (status == ConnectionChangeEvent.Status.CONNECTED) { - replaceFragment(new ChatFragment()); updateBufferViewConfigs(); context.client().backlogManager().open(this.status.bufferId); accountHeader.setActiveProfile(this.status.bufferViewConfigId, true); + replaceFragment(new ChatFragment()); } else if (status == ConnectionChangeEvent.Status.DISCONNECTED) { Toast.makeText(getApplication(), context.themeUtil().translations.statusDisconnected, Toast.LENGTH_LONG).show(); - reauth(); } } @@ -282,6 +281,7 @@ public class MainActivity extends BoundActivity { } } } + drawerLeft.setSelection(id, false); } private void selectBufferViewConfig(@IntRange(from = -1) int bufferViewConfigId) { diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferItem.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferItem.java index 60514b98f60cf725248eb0463792242ebd6bca3d..dd27587a697273f4990df61aaf45b78037aaf763 100644 --- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferItem.java +++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferItem.java @@ -139,7 +139,7 @@ public class BufferItem extends SecondaryDrawerItem { @Override public long getIdentifier() { - return buffer.getInfo().id() + buffer.getInfo().networkId() << 16; + return buffer.getInfo().id(); } @Override 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 a0b65a947de23b67180d49112e62b7e11c519220..9a21ffcfcb28d20cc3cce9964bb0a24d10f0652c 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 @@ -81,7 +81,11 @@ public class NetworkItem extends PrimaryDrawerItem implements IObservable<Drawer List<IDrawerItem> bufferItems = new ArrayList<>(); for (int id : config.bufferList()) { if (client.bufferManager().byNetwork(network.networkId()).contains(id)) { - bufferItems.add(manager.get(id)); + if (config.allowedBufferTypes() == 0 || + config.allowedBufferTypes() == -1 || + (config.allowedBufferTypes() & client.bufferManager().buffer(id).getInfo().type().id) != 0) + + bufferItems.add(manager.get(id)); } } return bufferItems; diff --git a/app/src/main/java/de/kuschku/util/buffermetadata/BufferMetaDataHelper.java b/app/src/main/java/de/kuschku/util/buffermetadata/BufferMetaDataHelper.java index bfd1e38bc9be547864b8c12ca17c3211dacb09ad..4f77c91bca47891f2dc0c0418e7297c20d2e6b87 100644 --- a/app/src/main/java/de/kuschku/util/buffermetadata/BufferMetaDataHelper.java +++ b/app/src/main/java/de/kuschku/util/buffermetadata/BufferMetaDataHelper.java @@ -82,11 +82,11 @@ public class BufferMetaDataHelper extends SQLiteOpenHelper { public void onCreate(SQLiteDatabase db) { // Why do we use String.format and not prepared statements? Because we can’t bind table or // column names in prepared statements - String statement = String.format("CREATE TABLE %s (%s, %s, %s, %s, PRIMARY KEY (%s, %s), UNIQUE(%s));", + String statement = String.format("CREATE TABLE %s (%s, %s, %s, %s, PRIMARY KEY (%s, %s), UNIQUE(%s, %s));", TABLE_ACCOUNTS, KEY_CORE, KEY_BUFFER, KEY_HIDDEN, KEY_MARKERLINE, KEY_CORE, KEY_BUFFER, - KEY_CORE); + KEY_CORE, KEY_BUFFER); db.execSQL(statement); } @@ -159,6 +159,7 @@ public class BufferMetaDataHelper extends SQLiteOpenHelper { } public int hiddenData(String coreid, int bufferid) { + ensureExisting(coreid, bufferid); Cursor cursor = cursorFindData(coreid); if (cursor.moveToFirst()) { do { 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 d1776edb37aecc05589a2ff1217d60ba5f6d6c62..ad2ecb6ef39d10779d8f70e9bf8dc3bd03659284 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,8 @@ public class IrcFormatHelper { while (channelMatcher.find()) { QIrcChannel channel = client.networkManager().network(message.bufferInfo.networkId()).ircChannel(channelMatcher.group()); Buffer buffer = client.bufferManager().channel(channel); - spans.add(new FutureClickableSpan(new ChannelSpan(client, buffer.getInfo().id()), channelMatcher.start(), channelMatcher.end())); + if (buffer != null) + spans.add(new FutureClickableSpan(new ChannelSpan(client, buffer.getInfo().id()), channelMatcher.start(), channelMatcher.end())); } for (FutureClickableSpan span : spans) { str.setSpan(span.span, span.start, span.end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);