Skip to content
Snippets Groups Projects
Commit 269e63d3 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Fixed a few bugs

parent e18e1c49
No related branches found
No related tags found
No related merge requests found
...@@ -81,7 +81,7 @@ public class BacklogFilter implements UICallback { ...@@ -81,7 +81,7 @@ public class BacklogFilter implements UICallback {
private void updateRemove() { private void updateRemove() {
for (Message message : unfiltered) { for (Message message : unfiltered) {
if (filterItem(message)) { if (filterItem(message) && filtered.contains(message)) {
String simpleName = getClass().getSimpleName(); String simpleName = getClass().getSimpleName();
Log.e(simpleName, "Filtered: "+message); Log.e(simpleName, "Filtered: "+message);
filtered.remove(message); filtered.remove(message);
...@@ -91,7 +91,7 @@ public class BacklogFilter implements UICallback { ...@@ -91,7 +91,7 @@ public class BacklogFilter implements UICallback {
private void updateAdd() { private void updateAdd() {
for (Message message : unfiltered) { for (Message message : unfiltered) {
if (!filterItem(message)) { if (!filterItem(message) && !filtered.contains(message)) {
String simpleName = getClass().getSimpleName(); String simpleName = getClass().getSimpleName();
Log.e(simpleName, "Unfiltered: "+message); Log.e(simpleName, "Unfiltered: "+message);
filtered.add(message); filtered.add(message);
......
...@@ -119,8 +119,6 @@ public class DatastreamPeer implements RemotePeer { ...@@ -119,8 +119,6 @@ public class DatastreamPeer implements RemotePeer {
} }
public void onEventBackgroundThread(@NonNull SyncFunction func) { public void onEventBackgroundThread(@NonNull SyncFunction func) {
assertNotNull(func);
assertNotNull(connection.getOutputExecutor()); assertNotNull(connection.getOutputExecutor());
connection.getOutputExecutor().submit(new OutputRunnable<>( connection.getOutputExecutor().submit(new OutputRunnable<>(
VariantVariantListSerializer.<SyncFunction>get(), VariantVariantListSerializer.<SyncFunction>get(),
...@@ -129,9 +127,6 @@ public class DatastreamPeer implements RemotePeer { ...@@ -129,9 +127,6 @@ public class DatastreamPeer implements RemotePeer {
} }
public void onEventBackgroundThread(@NonNull RpcCallFunction func) { public void onEventBackgroundThread(@NonNull RpcCallFunction func) {
assertNotNull(func);
Log.e("TEST", String.valueOf(func));
assertNotNull(connection.getOutputExecutor()); assertNotNull(connection.getOutputExecutor());
connection.getOutputExecutor().submit(new OutputRunnable<>( connection.getOutputExecutor().submit(new OutputRunnable<>(
VariantVariantListSerializer.<RpcCallFunction>get(), VariantVariantListSerializer.<RpcCallFunction>get(),
...@@ -140,8 +135,6 @@ public class DatastreamPeer implements RemotePeer { ...@@ -140,8 +135,6 @@ public class DatastreamPeer implements RemotePeer {
} }
public void onEventBackgroundThread(@NonNull InitRequestFunction func) { public void onEventBackgroundThread(@NonNull InitRequestFunction func) {
assertNotNull(func);
assertNotNull(connection.getOutputExecutor()); assertNotNull(connection.getOutputExecutor());
connection.getOutputExecutor().submit(new OutputRunnable<>( connection.getOutputExecutor().submit(new OutputRunnable<>(
VariantVariantListSerializer.<InitRequestFunction>get(), VariantVariantListSerializer.<InitRequestFunction>get(),
...@@ -150,8 +143,6 @@ public class DatastreamPeer implements RemotePeer { ...@@ -150,8 +143,6 @@ public class DatastreamPeer implements RemotePeer {
} }
public void onEventBackgroundThread(@NonNull InitDataFunction func) { public void onEventBackgroundThread(@NonNull InitDataFunction func) {
assertNotNull(func);
assertNotNull(connection.getOutputExecutor()); assertNotNull(connection.getOutputExecutor());
connection.getOutputExecutor().submit(new OutputRunnable<>( connection.getOutputExecutor().submit(new OutputRunnable<>(
VariantVariantListSerializer.<InitDataFunction>get(), VariantVariantListSerializer.<InitDataFunction>get(),
...@@ -160,8 +151,6 @@ public class DatastreamPeer implements RemotePeer { ...@@ -160,8 +151,6 @@ public class DatastreamPeer implements RemotePeer {
} }
public void onEventBackgroundThread(@NonNull Heartbeat func) { public void onEventBackgroundThread(@NonNull Heartbeat func) {
assertNotNull(func);
assertNotNull(connection.getOutputExecutor()); assertNotNull(connection.getOutputExecutor());
connection.getOutputExecutor().submit(new OutputRunnable<>( connection.getOutputExecutor().submit(new OutputRunnable<>(
VariantVariantListSerializer.<InitDataFunction>get(), VariantVariantListSerializer.<InitDataFunction>get(),
...@@ -170,8 +159,6 @@ public class DatastreamPeer implements RemotePeer { ...@@ -170,8 +159,6 @@ public class DatastreamPeer implements RemotePeer {
} }
public void onEventBackgroundThread(@NonNull HeartbeatReply func) { public void onEventBackgroundThread(@NonNull HeartbeatReply func) {
assertNotNull(func);
assertNotNull(connection.getOutputExecutor()); assertNotNull(connection.getOutputExecutor());
connection.getOutputExecutor().submit(new OutputRunnable<>( connection.getOutputExecutor().submit(new OutputRunnable<>(
VariantVariantListSerializer.<InitDataFunction>get(), VariantVariantListSerializer.<InitDataFunction>get(),
...@@ -180,8 +167,6 @@ public class DatastreamPeer implements RemotePeer { ...@@ -180,8 +167,6 @@ public class DatastreamPeer implements RemotePeer {
} }
public void onEventBackgroundThread(@NonNull HandshakeFunction func) { public void onEventBackgroundThread(@NonNull HandshakeFunction func) {
assertNotNull(func);
assertNotNull(connection.getOutputExecutor()); assertNotNull(connection.getOutputExecutor());
Map<String, QVariant> variantMap = MessageTypeRegistry.toVariantMap(func.data).data; Map<String, QVariant> variantMap = MessageTypeRegistry.toVariantMap(func.data).data;
assertNotNull(variantMap); assertNotNull(variantMap);
......
...@@ -20,8 +20,12 @@ import android.support.v7.widget.LinearLayoutManager; ...@@ -20,8 +20,12 @@ import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View; import android.view.View;
import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog; import com.afollestad.materialdialogs.MaterialDialog;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.mikepenz.fastadapter.FastAdapter; import com.mikepenz.fastadapter.FastAdapter;
...@@ -33,6 +37,7 @@ import com.mikepenz.materialdrawer.Drawer; ...@@ -33,6 +37,7 @@ import com.mikepenz.materialdrawer.Drawer;
import com.mikepenz.materialdrawer.DrawerBuilder; import com.mikepenz.materialdrawer.DrawerBuilder;
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem; import com.mikepenz.materialdrawer.model.PrimaryDrawerItem;
import com.mikepenz.materialdrawer.model.ProfileDrawerItem; import com.mikepenz.materialdrawer.model.ProfileDrawerItem;
import com.mikepenz.materialdrawer.model.SecondaryDrawerItem;
import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem; import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem;
import com.mikepenz.materialdrawer.model.interfaces.IProfile; import com.mikepenz.materialdrawer.model.interfaces.IProfile;
import com.sothree.slidinguppanel.SlidingUpPanelLayout; import com.sothree.slidinguppanel.SlidingUpPanelLayout;
...@@ -92,6 +97,7 @@ public class ChatActivity extends AppCompatActivity { ...@@ -92,6 +97,7 @@ public class ChatActivity extends AppCompatActivity {
SwipeRefreshLayout swipeView; SwipeRefreshLayout swipeView;
@Bind(R.id.messages) @Bind(R.id.messages)
RecyclerView messages; RecyclerView messages;
private boolean tr = true;
@PreferenceWrapper(BuildConfig.APPLICATION_ID) @PreferenceWrapper(BuildConfig.APPLICATION_ID)
...@@ -130,20 +136,19 @@ public class ChatActivity extends AppCompatActivity { ...@@ -130,20 +136,19 @@ public class ChatActivity extends AppCompatActivity {
private void disconnect() { private void disconnect() {
if (binder != null) binder.stopBackgroundThread(); if (binder != null) binder.stopBackgroundThread();
if (backgroundThread != null) backgroundThread.provider.event.unregister(this); if (context.getProvider() != null) context.getProvider().event.unregister(this);
backgroundThread = null; context.setProvider(null);
context.setClient(null);
} }
} }
private QuasselService.LocalBinder binder; private QuasselService.LocalBinder binder;
private ClientBackgroundThread backgroundThread;
private MessageAdapter messageAdapter; private MessageAdapter messageAdapter;
private AccountHeader accountHeader; private AccountHeader accountHeader;
private Drawer drawerLeft; private Drawer drawerLeft;
private BufferViewConfigWrapper wrapper; private BufferViewConfigWrapper wrapper;
private CharSequence subtitle;
private ServiceConnection serviceConnection = new ServiceConnection() { private ServiceConnection serviceConnection = new ServiceConnection() {
@UiThread @UiThread
...@@ -166,7 +171,7 @@ public class ChatActivity extends AppCompatActivity { ...@@ -166,7 +171,7 @@ public class ChatActivity extends AppCompatActivity {
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
context.setSettings(new WrappedSettings(this)); context.setSettings(new WrappedSettings(this));
AppTheme theme = AppTheme.QUASSEL; AppTheme theme = AppTheme.themeFromString(context.getSettings().theme.get());
setTheme(theme.themeId); setTheme(theme.themeId);
context.setThemeUtil(new ThemeUtil(this, theme)); context.setThemeUtil(new ThemeUtil(this, theme));
...@@ -199,11 +204,18 @@ public class ChatActivity extends AppCompatActivity { ...@@ -199,11 +204,18 @@ public class ChatActivity extends AppCompatActivity {
.withTranslucentStatusBar(true) .withTranslucentStatusBar(true)
.build(); .build();
drawerLeft.addStickyFooterItem(new PrimaryDrawerItem().withIcon(R.drawable.ic_server_light).withName("(Re-)Connect").withIdentifier(-1)); drawerLeft.addStickyFooterItem(new PrimaryDrawerItem().withIcon(R.drawable.ic_server_light).withName("(Re-)Connect").withIdentifier(-1));
drawerLeft.addStickyFooterItem(new SecondaryDrawerItem().withName("Settings").withIdentifier(-2));
drawerLeft.setOnDrawerItemClickListener((view, position, drawerItem) -> { drawerLeft.setOnDrawerItemClickListener((view, position, drawerItem) -> {
long identifier = drawerItem.getIdentifier(); long identifier = drawerItem.getIdentifier();
Log.e("DEBUG", "IDENT: "+identifier);
Log.e("DEBUG", "IDENT: "+(identifier==-1));
Log.e("DEBUG", "IDENT: "+(identifier==-2));
if (identifier == -1) { if (identifier == -1) {
showConnectDialog(); showConnectDialog();
return false; return false;
} else if (identifier == -2) {
showThemeDialog();
return false;
} else { } else {
if (((IExpandable) drawerItem).getSubItems() != null) { if (((IExpandable) drawerItem).getSubItems() != null) {
drawerLeft.getAdapter().toggleExpandable(position); drawerLeft.getAdapter().toggleExpandable(position);
...@@ -224,6 +236,7 @@ public class ChatActivity extends AppCompatActivity { ...@@ -224,6 +236,7 @@ public class ChatActivity extends AppCompatActivity {
msgHistory.setLayoutManager(new LinearLayoutManager(this)); msgHistory.setLayoutManager(new LinearLayoutManager(this));
msgHistory.setItemAnimator(new DefaultItemAnimator()); msgHistory.setItemAnimator(new DefaultItemAnimator());
swipeView.setColorSchemeColors(context.getThemeUtil().colors.colorPrimary);
swipeView.setOnRefreshListener(() -> { swipeView.setOnRefreshListener(() -> {
assertNotNull(context.getClient()); assertNotNull(context.getClient());
context.getClient().getBacklogManager().requestMoreBacklog(status.bufferId, 20); context.getClient().getBacklogManager().requestMoreBacklog(status.bufferId, 20);
...@@ -232,6 +245,29 @@ public class ChatActivity extends AppCompatActivity { ...@@ -232,6 +245,29 @@ public class ChatActivity extends AppCompatActivity {
send.setOnClickListener(view -> sendInput()); send.setOnClickListener(view -> sendInput());
} }
public void showThemeDialog() {
String[] strings = new String[AppTheme.values().length];
int startIndex = -1;
for (int i = 0; i < strings.length; i++) {
AppTheme theme = AppTheme.values()[i];
strings[i] = theme.name();
if (theme.name().equals(context.getSettings().theme.get())) startIndex = i;
}
new MaterialDialog.Builder(this)
.items(strings)
.positiveText("Select Theme")
.neutralText("Cancel")
.itemsCallbackSingleChoice(startIndex, (dialog, itemView, which, text) -> {
context.getSettings().theme.set(strings[dialog.getSelectedIndex()]);
recreate();
return true;
})
.buttonRippleColor(context.getThemeUtil().colors.colorAccent)
.build()
.show();
}
@Override @Override
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) { protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
assertNotNull(savedInstanceState); assertNotNull(savedInstanceState);
...@@ -253,10 +289,12 @@ public class ChatActivity extends AppCompatActivity { ...@@ -253,10 +289,12 @@ public class ChatActivity extends AppCompatActivity {
serviceInterface.disconnect(); serviceInterface.disconnect();
this.backgroundThread = backgroundThread;
backgroundThread.provider.event.register(this); backgroundThread.provider.event.register(this);
context.setClient(backgroundThread.handler.client);
context.setProvider(backgroundThread.provider);
selectBuffer(status.bufferId); selectBuffer(status.bufferId);
selectBufferViewConfig(status.bufferViewConfigId); selectBufferViewConfig(status.bufferViewConfigId);
updateSubTitle();
} }
private void selectBufferViewConfig(@IntRange(from = -1) int bufferViewConfigId) { private void selectBufferViewConfig(@IntRange(from = -1) int bufferViewConfigId) {
...@@ -301,9 +339,8 @@ public class ChatActivity extends AppCompatActivity { ...@@ -301,9 +339,8 @@ public class ChatActivity extends AppCompatActivity {
private void onConnectionEstablished() { private void onConnectionEstablished() {
assertNotNull(binder); assertNotNull(binder);
this.backgroundThread = binder.getBackgroundThread(); assertNotNull(binder.getBackgroundThread());
assertNotNull(this.backgroundThread); context.setClient(binder.getBackgroundThread().handler.client);
context.setClient(this.backgroundThread.handler.client);
assertNotNull(context.getClient()); assertNotNull(context.getClient());
} }
...@@ -314,10 +351,11 @@ public class ChatActivity extends AppCompatActivity { ...@@ -314,10 +351,11 @@ public class ChatActivity extends AppCompatActivity {
CharSequence text = chatline.getText(); CharSequence text = chatline.getText();
context.getClient().sendInput(buffer.getInfo(), text.toString()); context.getClient().sendInput(buffer.getInfo(), text.toString());
chatline.setText("");
} }
public void onEventMainThread(ConnectionChangeEvent event) { public void onEventMainThread(ConnectionChangeEvent event) {
setSubtitle(event.status.name()); updateSubTitle();
switch (event.status) { switch (event.status) {
case HANDSHAKE: case HANDSHAKE:
...@@ -425,16 +463,11 @@ public class ChatActivity extends AppCompatActivity { ...@@ -425,16 +463,11 @@ public class ChatActivity extends AppCompatActivity {
updateSubTitle(); updateSubTitle();
} }
protected void setSubtitle(CharSequence subtitle) {
this.subtitle = subtitle;
updateSubTitle();
}
private void updateSubTitle() { private void updateSubTitle() {
if (context.getClient() != null) { if (context.getClient() != null) {
toolbar.setSubtitle(SpanFormatter.format("Lag: %.2f, %s", context.getClient().getLag() / 1000.0F, subtitle)); toolbar.setSubtitle(SpanFormatter.format("Lag: %.2f, %s", context.getClient().getLag() / 1000.0F, context.getClient().getConnectionStatus()));
} else { } else {
toolbar.setSubtitle(subtitle); toolbar.setSubtitle("");
} }
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment