feat(notification-filters): basically done with the UI
Its still missing the under the hood implementation though
This commit is contained in:
@@ -50,6 +50,8 @@ import org.joinmastodon.android.utils.ObjectIdComparator;
|
|||||||
import org.joinmastodon.android.utils.ProvidesAssistContent;
|
import org.joinmastodon.android.utils.ProvidesAssistContent;
|
||||||
import org.parceler.Parcels;
|
import org.parceler.Parcels;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import me.grishka.appkit.Nav;
|
import me.grishka.appkit.Nav;
|
||||||
@@ -105,7 +107,7 @@ public class NotificationsFragment extends MastodonToolbarFragment implements Sc
|
|||||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
|
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
|
||||||
inflater.inflate(R.menu.notifications, menu);
|
inflater.inflate(R.menu.notifications, menu);
|
||||||
menu.findItem(R.id.clear_notifications).setVisible(GlobalUserPreferences.enableDeleteNotifications);
|
menu.findItem(R.id.clear_notifications).setVisible(GlobalUserPreferences.enableDeleteNotifications);
|
||||||
// menu.findItem(R.id.filter_notifications).setVisible(true);
|
menu.findItem(R.id.filter_notifications).setVisible(true);
|
||||||
markAllReadItem=menu.findItem(R.id.mark_all_read);
|
markAllReadItem=menu.findItem(R.id.mark_all_read);
|
||||||
updateMarkAllReadButton();
|
updateMarkAllReadButton();
|
||||||
UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.follow_requests, R.id.mark_all_read, R.id.filter_notifications);
|
UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.follow_requests, R.id.mark_all_read, R.id.filter_notifications);
|
||||||
@@ -134,18 +136,42 @@ public class NotificationsFragment extends MastodonToolbarFragment implements Sc
|
|||||||
} else if (item.getItemId() == R.id.filter_notifications) {
|
} else if (item.getItemId() == R.id.filter_notifications) {
|
||||||
Context ctx = getToolbarContext();
|
Context ctx = getToolbarContext();
|
||||||
LinearLayout linearLayout = new LinearLayout(getToolbarContext());
|
LinearLayout linearLayout = new LinearLayout(getToolbarContext());
|
||||||
Dialog dialog = new M3AlertDialogBuilder(ctx).setView(linearLayout).create();
|
String[] listItems = {
|
||||||
AccountSession session = AccountSessionManager.getInstance().getAccount(accountID);
|
ctx.getString(R.string.notification_type_mentions_and_replies),
|
||||||
|
ctx.getString(R.string.notification_type_reblog),
|
||||||
|
ctx.getString(R.string.notification_type_favorite),
|
||||||
|
ctx.getString(R.string.notification_type_favorite),
|
||||||
|
ctx.getString(R.string.notification_type_follow),
|
||||||
|
ctx.getString(R.string.notification_type_poll),
|
||||||
|
ctx.getString(R.string.sk_notification_type_update),
|
||||||
|
ctx.getString(R.string.sk_notification_type_posts)
|
||||||
|
};
|
||||||
|
|
||||||
linearLayout.setOrientation(LinearLayout.VERTICAL);
|
final boolean[] checkedItems = new boolean[listItems.length];
|
||||||
// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
|
||||||
// linearLayout.setLayoutParams(params);
|
|
||||||
TextView textView = new TextView(ctx);
|
|
||||||
textView.setText("wtf");
|
|
||||||
linearLayout.addView(textView);
|
|
||||||
|
|
||||||
|
final List<String> selectedItems = Arrays.asList(listItems);
|
||||||
|
|
||||||
|
M3AlertDialogBuilder dialogBuilder = new M3AlertDialogBuilder(ctx);
|
||||||
|
dialogBuilder.setTitle(R.string.sk_settings_filters);
|
||||||
|
dialogBuilder.setMultiChoiceItems(listItems, checkedItems, (dialog, which, isChecked) -> {
|
||||||
|
checkedItems[which] = isChecked;
|
||||||
|
String currentItem = selectedItems.get(which);
|
||||||
|
});
|
||||||
|
|
||||||
|
dialogBuilder.setPositiveButton(R.string.save, (d, which) -> {
|
||||||
|
// lp.publishButtonText=input.getEditText().getText().toString().trim();
|
||||||
|
// lp.save();
|
||||||
|
// publishTextItem.subtitle=getPublishButtonText();
|
||||||
|
// rebindItem(publishTextItem);
|
||||||
|
}).setNeutralButton(R.string.clear, (d, which) -> {
|
||||||
|
// lp.publishButtonText=null;
|
||||||
|
// lp.save();
|
||||||
|
// publishTextItem.subtitle=getPublishButtonText();
|
||||||
|
// rebindItem(publishTextItem);
|
||||||
|
}).setNegativeButton(R.string.cancel, (d, which) -> {});
|
||||||
|
|
||||||
|
dialogBuilder.create().show();
|
||||||
|
|
||||||
dialog.show();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user