Skip to content

Commit 5ceec31

Browse files
authored
Merge pull request #6720 from TacoTheDank/alertdialog-edittext
Consolidate edittext alert dialogs into one common layout
2 parents 7ceea2c + 50f3b08 commit 5ceec31

6 files changed

Lines changed: 44 additions & 52 deletions

File tree

app/src/main/java/org/schabi/newpipe/local/bookmark/BookmarkFragment.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
import android.os.Bundle;
44
import android.os.Parcelable;
5+
import android.text.InputType;
56
import android.util.Log;
67
import android.view.LayoutInflater;
78
import android.view.View;
89
import android.view.ViewGroup;
9-
import android.widget.EditText;
1010

1111
import androidx.annotation.NonNull;
1212
import androidx.annotation.Nullable;
@@ -22,6 +22,7 @@
2222
import org.schabi.newpipe.database.playlist.PlaylistLocalItem;
2323
import org.schabi.newpipe.database.playlist.PlaylistMetadataEntry;
2424
import org.schabi.newpipe.database.playlist.model.PlaylistRemoteEntity;
25+
import org.schabi.newpipe.databinding.DialogEditTextBinding;
2526
import org.schabi.newpipe.error.ErrorInfo;
2627
import org.schabi.newpipe.error.UserAction;
2728
import org.schabi.newpipe.local.BaseLocalListFragment;
@@ -255,14 +256,18 @@ private void showRemoteDeleteDialog(final PlaylistRemoteEntity item) {
255256
}
256257

257258
private void showLocalDialog(final PlaylistMetadataEntry selectedItem) {
258-
final View dialogView = View.inflate(getContext(), R.layout.dialog_bookmark, null);
259-
final EditText editText = dialogView.findViewById(R.id.playlist_name_edit_text);
260-
editText.setText(selectedItem.name);
259+
final DialogEditTextBinding dialogBinding
260+
= DialogEditTextBinding.inflate(getLayoutInflater());
261+
dialogBinding.dialogEditText.setHint(R.string.name);
262+
dialogBinding.dialogEditText.setInputType(InputType.TYPE_CLASS_TEXT);
263+
dialogBinding.dialogEditText.setText(selectedItem.name);
261264

262265
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
263-
builder.setView(dialogView)
266+
builder.setView(dialogBinding.getRoot())
264267
.setPositiveButton(R.string.rename_playlist, (dialog, which) ->
265-
changeLocalPlaylistName(selectedItem.uid, editText.getText().toString()))
268+
changeLocalPlaylistName(
269+
selectedItem.uid,
270+
dialogBinding.dialogEditText.getText().toString()))
266271
.setNegativeButton(R.string.cancel, null)
267272
.setNeutralButton(R.string.delete, (dialog, which) -> {
268273
showDeleteDialog(selectedItem.name,

app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistCreationDialog.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
import android.app.Dialog;
44
import android.os.Bundle;
5-
import android.view.View;
6-
import android.widget.EditText;
5+
import android.text.InputType;
76
import android.widget.Toast;
87

98
import androidx.annotation.NonNull;
@@ -13,6 +12,7 @@
1312
import org.schabi.newpipe.NewPipeDatabase;
1413
import org.schabi.newpipe.R;
1514
import org.schabi.newpipe.database.stream.model.StreamEntity;
15+
import org.schabi.newpipe.databinding.DialogEditTextBinding;
1616
import org.schabi.newpipe.local.playlist.LocalPlaylistManager;
1717

1818
import java.util.List;
@@ -43,16 +43,18 @@ public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) {
4343
return super.onCreateDialog(savedInstanceState);
4444
}
4545

46-
final View dialogView = View.inflate(getContext(), R.layout.dialog_playlist_name, null);
47-
final EditText nameInput = dialogView.findViewById(R.id.playlist_name);
46+
final DialogEditTextBinding dialogBinding
47+
= DialogEditTextBinding.inflate(getLayoutInflater());
48+
dialogBinding.dialogEditText.setHint(R.string.name);
49+
dialogBinding.dialogEditText.setInputType(InputType.TYPE_CLASS_TEXT);
4850

4951
final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext())
5052
.setTitle(R.string.create_playlist)
51-
.setView(dialogView)
53+
.setView(dialogBinding.getRoot())
5254
.setCancelable(true)
5355
.setNegativeButton(R.string.cancel, null)
5456
.setPositiveButton(R.string.create, (dialogInterface, i) -> {
55-
final String name = nameInput.getText().toString();
57+
final String name = dialogBinding.dialogEditText.getText().toString();
5658
final LocalPlaylistManager playlistManager =
5759
new LocalPlaylistManager(NewPipeDatabase.getInstance(requireContext()));
5860
final Toast successToast = Toast.makeText(getActivity(),

app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import android.content.DialogInterface;
66
import android.os.Bundle;
77
import android.os.Parcelable;
8+
import android.text.InputType;
89
import android.text.TextUtils;
910
import android.util.Log;
1011
import android.view.LayoutInflater;
@@ -13,7 +14,6 @@
1314
import android.view.MenuItem;
1415
import android.view.View;
1516
import android.view.ViewGroup;
16-
import android.widget.EditText;
1717
import android.widget.Toast;
1818

1919
import androidx.annotation.NonNull;
@@ -32,6 +32,7 @@
3232
import org.schabi.newpipe.database.playlist.PlaylistStreamEntry;
3333
import org.schabi.newpipe.database.stream.model.StreamEntity;
3434
import org.schabi.newpipe.database.stream.model.StreamStateEntity;
35+
import org.schabi.newpipe.databinding.DialogEditTextBinding;
3536
import org.schabi.newpipe.databinding.LocalPlaylistHeaderBinding;
3637
import org.schabi.newpipe.databinding.PlaylistControlBinding;
3738
import org.schabi.newpipe.error.ErrorInfo;
@@ -526,18 +527,20 @@ private void createRenameDialog() {
526527
return;
527528
}
528529

529-
final View dialogView = View.inflate(getContext(), R.layout.dialog_playlist_name, null);
530-
final EditText nameEdit = dialogView.findViewById(R.id.playlist_name);
531-
nameEdit.setText(name);
532-
nameEdit.setSelection(nameEdit.getText().length());
530+
final DialogEditTextBinding dialogBinding
531+
= DialogEditTextBinding.inflate(getLayoutInflater());
532+
dialogBinding.dialogEditText.setHint(R.string.name);
533+
dialogBinding.dialogEditText.setInputType(InputType.TYPE_CLASS_TEXT);
534+
dialogBinding.dialogEditText.setSelection(dialogBinding.dialogEditText.getText().length());
535+
dialogBinding.dialogEditText.setText(name);
533536

534537
final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getContext())
535538
.setTitle(R.string.rename_playlist)
536-
.setView(dialogView)
539+
.setView(dialogBinding.getRoot())
537540
.setCancelable(true)
538541
.setNegativeButton(R.string.cancel, null)
539542
.setPositiveButton(R.string.rename, (dialogInterface, i) ->
540-
changePlaylistName(nameEdit.getText().toString()));
543+
changePlaylistName(dialogBinding.dialogEditText.getText().toString()));
541544

542545
dialogBuilder.show();
543546
}

app/src/main/java/org/schabi/newpipe/settings/PeertubeInstanceListFragment.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import android.view.MotionEvent;
1313
import android.view.View;
1414
import android.view.ViewGroup;
15-
import android.widget.EditText;
1615
import android.widget.ImageView;
1716
import android.widget.ProgressBar;
1817
import android.widget.RadioButton;
@@ -35,6 +34,7 @@
3534
import com.grack.nanojson.JsonWriter;
3635

3736
import org.schabi.newpipe.R;
37+
import org.schabi.newpipe.databinding.DialogEditTextBinding;
3838
import org.schabi.newpipe.extractor.services.peertube.PeertubeInstance;
3939
import org.schabi.newpipe.util.Constants;
4040
import org.schabi.newpipe.util.PeertubeHelper;
@@ -207,20 +207,22 @@ private void initButton(final View rootView) {
207207
}
208208

209209
private void showAddItemDialog(final Context c) {
210-
final EditText urlET = new EditText(c);
211-
urlET.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI);
212-
urlET.setHint(R.string.peertube_instance_add_help);
213-
final AlertDialog dialog = new AlertDialog.Builder(c)
210+
final DialogEditTextBinding dialogBinding
211+
= DialogEditTextBinding.inflate(getLayoutInflater());
212+
dialogBinding.dialogEditText.setInputType(
213+
InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI);
214+
dialogBinding.dialogEditText.setHint(R.string.peertube_instance_add_help);
215+
216+
new AlertDialog.Builder(c)
214217
.setTitle(R.string.peertube_instance_add_title)
215218
.setIcon(R.drawable.place_holder_peertube)
219+
.setView(dialogBinding.getRoot())
216220
.setNegativeButton(R.string.cancel, null)
217221
.setPositiveButton(R.string.finish, (dialog1, which) -> {
218-
final String url = urlET.getText().toString();
222+
final String url = dialogBinding.dialogEditText.getText().toString();
219223
addInstance(url);
220224
})
221-
.create();
222-
dialog.setView(urlET, 50, 0, 50, 0);
223-
dialog.show();
225+
.show();
224226
}
225227

226228
private void addInstance(final String url) {

app/src/main/res/layout/dialog_bookmark.xml

Lines changed: 0 additions & 17 deletions
This file was deleted.

app/src/main/res/layout/dialog_playlist_name.xml renamed to app/src/main/res/layout/dialog_edit_text.xml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,11 @@
88
android:paddingRight="@dimen/video_item_search_padding">
99

1010
<EditText
11-
android:id="@+id/playlist_name"
11+
android:id="@+id/dialogEditText"
1212
android:layout_width="match_parent"
1313
android:layout_height="wrap_content"
14-
android:layout_marginLeft="10dp"
15-
android:layout_marginRight="10dp"
14+
android:layout_marginStart="10dp"
15+
android:layout_marginEnd="10dp"
1616
android:layout_marginBottom="6dp"
17-
android:hint="@string/name"
18-
android:inputType="text"
19-
android:maxLines="1"
20-
android:saveEnabled="true" />
17+
android:maxLines="1" />
2118
</RelativeLayout>

0 commit comments

Comments
 (0)