summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/dialog/RenameFeedDialog.java
blob: a4e49ff966dc30edd076ba02bfd45e914e2b5a2f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package de.danoeh.antennapod.dialog;

import android.app.Activity;

import java.lang.ref.WeakReference;

import android.view.View;
import androidx.appcompat.app.AlertDialog;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.storage.DBWriter;
import de.danoeh.antennapod.databinding.EditTextDialogBinding;

public class RenameFeedDialog {

    private final WeakReference<Activity> activityRef;
    private final Feed feed;

    public RenameFeedDialog(Activity activity, Feed feed) {
        this.activityRef = new WeakReference<>(activity);
        this.feed = feed;
    }

    public void show() {
        Activity activity = activityRef.get();
        if(activity == null) {
            return;
        }

        View content = View.inflate(activity, R.layout.edit_text_dialog, null);
        EditTextDialogBinding alertViewBinding = EditTextDialogBinding.bind(content);

        alertViewBinding.urlEditText.setText(feed.getTitle());
        AlertDialog dialog = new AlertDialog.Builder(activity)
                .setView(content)
                .setTitle(de.danoeh.antennapod.core.R.string.rename_feed_label)
                .setPositiveButton(android.R.string.ok, (d, input) -> {
                    feed.setCustomTitle(alertViewBinding.urlEditText.getText().toString());
                    DBWriter.setFeedCustomTitle(feed);
                })
                .setNeutralButton(de.danoeh.antennapod.core.R.string.reset, null)
                .setNegativeButton(de.danoeh.antennapod.core.R.string.cancel_label, null)
                .show();

        // To prevent cancelling the dialog on button click
        dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(
                (view) -> alertViewBinding.urlEditText.setText(feed.getFeedTitle()));
    }

}