|
8 | 8 | import android.view.LayoutInflater; |
9 | 9 | import android.view.View; |
10 | 10 | import android.view.ViewGroup; |
11 | | -import android.widget.ArrayAdapter; |
12 | | -import android.widget.TextView; |
13 | 11 |
|
14 | 12 | import androidx.annotation.NonNull; |
15 | 13 | import androidx.annotation.Nullable; |
|
34 | 32 | import org.schabi.newpipe.util.NavigationHelper; |
35 | 33 | import org.schabi.newpipe.util.OnClickGesture; |
36 | 34 |
|
| 35 | +import java.util.ArrayList; |
37 | 36 | import java.util.List; |
38 | 37 |
|
39 | 38 | import icepick.State; |
@@ -267,49 +266,30 @@ private void showLocalDialog(final PlaylistMetadataEntry selectedItem) { |
267 | 266 |
|
268 | 267 | final AlertDialog.Builder builder = new AlertDialog.Builder(activity); |
269 | 268 |
|
270 | | - final ArrayAdapter<String> arrayAdapter = getLocalDialogArrayAdapter(isThumbnailPermanent, |
271 | | - unsetThumbnail); |
272 | | - arrayAdapter.addAll(rename, delete, unsetThumbnail); |
| 269 | + final ArrayList<String> items = new ArrayList<>(); |
| 270 | + items.add(rename); |
| 271 | + items.add(delete); |
| 272 | + if (isThumbnailPermanent) { |
| 273 | + items.add(unsetThumbnail); |
| 274 | + } |
273 | 275 |
|
274 | | - final DialogInterface.OnClickListener action = (dialog, index) -> { |
275 | | - if (index == arrayAdapter.getPosition(rename)) { |
| 276 | + final DialogInterface.OnClickListener action = (d, index) -> { |
| 277 | + if (items.get(index).equals(rename)) { |
276 | 278 | showRenameDialog(selectedItem); |
277 | | - } else if (index == arrayAdapter.getPosition(delete)) { |
278 | | - showDeleteDialog(selectedItem.name, localPlaylistManager |
279 | | - .deletePlaylist(selectedItem.uid)); |
280 | | - } else if (isThumbnailPermanent) { |
| 279 | + } else if (items.get(index).equals(delete)) { |
| 280 | + showDeleteDialog(selectedItem.name, |
| 281 | + localPlaylistManager.deletePlaylist(selectedItem.uid)); |
| 282 | + } else if (isThumbnailPermanent && items.get(index).equals(unsetThumbnail)) { |
281 | 283 | final String thumbnailUrl = localPlaylistManager |
282 | 284 | .getAutomaticPlaylistThumbnail(selectedItem.uid); |
283 | | - localPlaylistManager.changePlaylistThumbnail(selectedItem.uid, thumbnailUrl, false) |
| 285 | + localPlaylistManager |
| 286 | + .changePlaylistThumbnail(selectedItem.uid, thumbnailUrl, false) |
284 | 287 | .observeOn(AndroidSchedulers.mainThread()) |
285 | 288 | .subscribe(); |
286 | 289 | } |
287 | 290 | }; |
288 | 291 |
|
289 | | - builder.setAdapter(arrayAdapter, action) |
290 | | - .create() |
291 | | - .show(); |
292 | | - } |
293 | | - |
294 | | - private ArrayAdapter<String> getLocalDialogArrayAdapter(final boolean isPlaylistThumbnailSet, |
295 | | - final String unsetThumbnail) { |
296 | | - return new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1) { |
297 | | - @Override |
298 | | - public View getView(final int position, final View convertView, |
299 | | - final ViewGroup parent) { |
300 | | - final View v = super.getView(position, convertView, parent); |
301 | | - final TextView textView = v.findViewById(android.R.id.text1); |
302 | | - |
303 | | - // If the PlaylistThumbnail is not set permanently, the unset option is disabled. |
304 | | - if (!isPlaylistThumbnailSet && textView.getText().equals(unsetThumbnail)) { |
305 | | - textView.setEnabled(false); |
306 | | - return v; |
307 | | - } |
308 | | - |
309 | | - textView.setEnabled(true); |
310 | | - return v; |
311 | | - } |
312 | | - }; |
| 292 | + builder.setItems(items.toArray(new String[0]), action).create().show(); |
313 | 293 | } |
314 | 294 |
|
315 | 295 | private void showRenameDialog(final PlaylistMetadataEntry selectedItem) { |
|
0 commit comments