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

Added hacky implementation for event filtering

parent f56032d8
No related branches found
No related tags found
No related merge requests found
...@@ -31,11 +31,14 @@ import android.view.Menu; ...@@ -31,11 +31,14 @@ import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import com.afollestad.materialdialogs.MaterialDialog;
import com.mikepenz.materialdrawer.AccountHeader; import com.mikepenz.materialdrawer.AccountHeader;
import com.mikepenz.materialdrawer.AccountHeaderBuilder; import com.mikepenz.materialdrawer.AccountHeaderBuilder;
import com.mikepenz.materialdrawer.Drawer; import com.mikepenz.materialdrawer.Drawer;
import com.mikepenz.materialdrawer.model.ProfileDrawerItem; import com.mikepenz.materialdrawer.model.ProfileDrawerItem;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import butterknife.Bind; import butterknife.Bind;
...@@ -43,6 +46,8 @@ import butterknife.ButterKnife; ...@@ -43,6 +46,8 @@ import butterknife.ButterKnife;
import de.kuschku.libquassel.client.Client; import de.kuschku.libquassel.client.Client;
import de.kuschku.libquassel.events.ConnectionChangeEvent; import de.kuschku.libquassel.events.ConnectionChangeEvent;
import de.kuschku.libquassel.events.GeneralErrorEvent; import de.kuschku.libquassel.events.GeneralErrorEvent;
import de.kuschku.libquassel.localtypes.BacklogFilter;
import de.kuschku.libquassel.message.Message;
import de.kuschku.libquassel.syncables.types.interfaces.QBufferViewConfig; import de.kuschku.libquassel.syncables.types.interfaces.QBufferViewConfig;
import de.kuschku.libquassel.syncables.types.interfaces.QBufferViewManager; import de.kuschku.libquassel.syncables.types.interfaces.QBufferViewManager;
import de.kuschku.quasseldroid_ng.R; import de.kuschku.quasseldroid_ng.R;
...@@ -155,6 +160,7 @@ public class MainActivity extends BoundActivity { ...@@ -155,6 +160,7 @@ public class MainActivity extends BoundActivity {
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) { switch (item.getItemId()) {
case R.id.action_hide_events: case R.id.action_hide_events:
displayFilterDialog();
return true; return true;
case R.id.action_reauth: case R.id.action_reauth:
context.settings().lastAccount.set(""); context.settings().lastAccount.set("");
...@@ -238,4 +244,56 @@ public class MainActivity extends BoundActivity { ...@@ -238,4 +244,56 @@ public class MainActivity extends BoundActivity {
if (thread == null) if (thread == null)
connectToServer(manager.account(context.settings().lastAccount.get())); connectToServer(manager.account(context.settings().lastAccount.get()));
} }
public void displayFilterDialog() {
if (context.client() != null) {
List<Integer> filterSettings = Arrays.asList(
Message.Type.Join.value,
Message.Type.Part.value,
Message.Type.Quit.value,
Message.Type.Nick.value,
Message.Type.Mode.value,
Message.Type.Topic.value
);
int[] filterSettingsInts = new int[filterSettings.size()];
for (int i = 0; i < filterSettingsInts.length; i++) {
filterSettingsInts[i] = filterSettings.get(i);
}
BacklogFilter backlogFilter = context.client().backlogManager().filter(context.client().backlogManager().open());
int oldFilters = backlogFilter.getFilters();
List<Integer> oldFiltersList = new ArrayList<>();
for (int type : filterSettings) {
if ((type & oldFilters) != 0)
oldFiltersList.add(filterSettings.indexOf(type));
}
Integer[] selectedIndices = oldFiltersList.toArray(new Integer[oldFiltersList.size()]);
new MaterialDialog.Builder(this)
.items(
"Joins",
"Parts",
"Quits",
"Nick Changes",
"Mode Changes",
"Topic Changes"
)
.itemsIds(filterSettingsInts)
.itemsCallbackMultiChoice(
selectedIndices,
(dialog, which, text) -> false
)
.positiveText("Select")
.negativeText("Cancel")
.onPositive((dialog, which) -> {
int filters = 0x00000000;
if (dialog.getSelectedIndices() != null)
for (int i : dialog.getSelectedIndices()) {
filters |= filterSettings.get(i);
}
backlogFilter.setFilters(filters);
})
.build()
.show();
}
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment