Skip to content

Commit

Permalink
Delete Multireddit action for multireddits
Browse files Browse the repository at this point in the history
  • Loading branch information
mrboisvert committed Dec 1, 2024
1 parent 6bff4f8 commit 6aba0ba
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,35 @@
package org.quantumbadger.redreader.reddit.api;

import android.content.Context;
import android.util.Log;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import com.google.android.material.dialog.MaterialAlertDialogBuilder;

import org.quantumbadger.redreader.R;
import org.quantumbadger.redreader.account.RedditAccount;
import org.quantumbadger.redreader.account.RedditAccountManager;
import org.quantumbadger.redreader.cache.CacheManager;
import org.quantumbadger.redreader.common.PrefsUtility;
import org.quantumbadger.redreader.common.RRError;
import org.quantumbadger.redreader.common.TimestampBound;
import org.quantumbadger.redreader.reddit.APIResponseHandler;
import org.quantumbadger.redreader.reddit.RedditAPI;
import org.quantumbadger.redreader.views.liststatus.ErrorView;

import java.util.ArrayList;
import java.util.EnumSet;

public class RedditAPIMultiredditAction {

private static final String TAG = "MultiredditAction";

public enum MultiredditAction {
DELETE_MULTIREDDIT;
}

private static class RCVMenuItem {
Expand Down Expand Up @@ -70,6 +83,13 @@ public static void showActionMenu(

final ArrayList<RCVMenuItem> menu = new ArrayList<>();

if(itemPref.contains(MultiredditAction.DELETE_MULTIREDDIT)) {
menu.add(new RCVMenuItem(
activity,
R.string.delete_multireddit,
MultiredditAction.DELETE_MULTIREDDIT));
}

final String[] menuText = new String[menu.size()];

for(int i = 0; i < menuText.length; i++) {
Expand All @@ -91,11 +111,76 @@ public static void showActionMenu(

private static void onActionMenuItemSelected(
final AppCompatActivity activity,
final String subredditNames,
final String multiredditName,
final RedditAccount user,
final MultiredditAction action) {

switch(action) {
case DELETE_MULTIREDDIT:
new MaterialAlertDialogBuilder(activity)
.setTitle(activity.getString(R.string.delete_multireddit_confirmation))
.setMessage(activity.getString(R.string.are_you_sure_delete_multireddit))
.setPositiveButton(
activity.getString(R.string.dialog_yes),
((dialog, which) -> {
Toast.makeText(
activity,
String.format("Deleting %s", multiredditName),
Toast.LENGTH_SHORT).show();
RedditAPI.deleteMultireddit(
CacheManager.getInstance(activity),
new APIResponseHandler.ActionResponseHandler(
activity) {

@Override
protected void onCallbackException(
final Throwable t) {
Log.e(
TAG,
"Error while deleting multireddit",
t);
throw new RuntimeException(t);
}

@Override
protected void onFailure(
@NonNull final RRError error) {
activity.runOnUiThread(() -> {
final MaterialAlertDialogBuilder builder
= new MaterialAlertDialogBuilder(
activity);
builder.setView(
new ErrorView(activity, error));
builder.create().show();
});
}

@Override
protected void onSuccess() {
activity.runOnUiThread(() -> Toast.makeText(
activity,
String.format(
"Deleted %s", multiredditName),
Toast.LENGTH_SHORT).show());

RedditMultiredditSubscriptionManager
.getSingleton(activity,
RedditAccountManager
.getInstance(activity)
.getDefaultAccount())
.triggerUpdate(
null,
TimestampBound.NONE);
}
},
user,
multiredditName,
activity
);
dialog.dismiss();
}))
.setNegativeButton(activity.getString(R.string.dialog_cancel), null)
.show();
}
}
}
5 changes: 4 additions & 1 deletion src/main/res/values/arrays.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1330,7 +1330,10 @@

<!-- 2024-11-28 -->
<string-array name="pref_menus_multireddits_context_items">
<item>@string/delete_multireddit</item>
</string-array>

<string-array name="pref_menus_multireddits_context_items_return" />
<string-array name="pref_menus_multireddits_context_items_return">
<item>delete_multireddit</item>
</string-array>
</resources>
5 changes: 5 additions & 0 deletions src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1907,4 +1907,9 @@
<string name="pref_menus_multireddits_header">Multireddits</string>
<string name="pref_menus_multireddits_context_items_key">pref_menus_multireddit_context_items</string>
<string name="pref_menus_multireddits_context_items_title">Action menu items</string>

<string name="delete_multireddit_confirmation">Delete Multireddit Confirmation</string>
<string name="are_you_sure_delete_multireddit">Are you sure you want to delete this multireddit?</string>

<string name="delete_multireddit">Delete Multireddit</string>
</resources>

0 comments on commit 6aba0ba

Please sign in to comment.