Activity selection dialog is now immediately selecting.

This commit is contained in:
Dennis Guse
2019-07-09 22:01:38 +02:00
parent 88cd919d92
commit 9684429d96
@@ -90,8 +90,7 @@ public class ChooseActivityTypeDialogFragment extends DialogFragment {
return getDialog(getActivity(), getArguments().getString(KEY_CATEGORY), caller); return getDialog(getActivity(), getArguments().getString(KEY_CATEGORY), caller);
} }
public static Dialog getDialog( public static Dialog getDialog(final Activity activity, final String category, final ChooseActivityTypeCaller caller) {
final Activity activity, final String category, final ChooseActivityTypeCaller caller) {
View view = activity.getLayoutInflater().inflate(R.layout.choose_activity_type, null); View view = activity.getLayoutInflater().inflate(R.layout.choose_activity_type, null);
GridView gridView = view.findViewById(R.id.choose_activity_type_grid_view); GridView gridView = view.findViewById(R.id.choose_activity_type_grid_view);
@@ -108,25 +107,14 @@ public class ChooseActivityTypeDialogFragment extends DialogFragment {
int height = options.outHeight + 2 * padding; int height = options.outHeight + 2 * padding;
gridView.setColumnWidth(width); gridView.setColumnWidth(width);
final ChooseActivityTypeImageAdapter imageAdapter = new ChooseActivityTypeImageAdapter( final ChooseActivityTypeImageAdapter imageAdapter = new ChooseActivityTypeImageAdapter(activity, imageIds, width, height, padding);
activity, imageIds, width, height, padding);
gridView.setAdapter(imageAdapter); gridView.setAdapter(imageAdapter);
final AlertDialog alertDialog = new AlertDialog.Builder(activity).setNegativeButton( final AlertDialog alertDialog = new AlertDialog.Builder(activity).setTitle(R.string.track_edit_activity_type_hint).setView(view).create();
R.string.generic_cancel, null)
.setPositiveButton(R.string.generic_ok, new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int selected = imageAdapter.getSelected();
caller.onChooseActivityTypeDone(TrackIconUtils.getAllIconValues().get(selected));
}
}).setTitle(R.string.track_edit_activity_type_hint).setView(view).create();
alertDialog.setOnShowListener(new DialogInterface.OnShowListener() { alertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override @Override
public void onShow(DialogInterface dialog) { public void onShow(DialogInterface dialog) {
int position = getPosition(activity, category); int position = getPosition(activity, category);
alertDialog.getButton(Dialog.BUTTON_POSITIVE).setEnabled(position != -1);
if (position != -1) { if (position != -1) {
imageAdapter.setSelected(position); imageAdapter.setSelected(position);
imageAdapter.notifyDataSetChanged(); imageAdapter.notifyDataSetChanged();
@@ -138,9 +126,8 @@ public class ChooseActivityTypeDialogFragment extends DialogFragment {
gridView.setOnItemClickListener(new OnItemClickListener() { gridView.setOnItemClickListener(new OnItemClickListener() {
@Override @Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) { public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
alertDialog.getButton(Dialog.BUTTON_POSITIVE).setEnabled(true); caller.onChooseActivityTypeDone(TrackIconUtils.getAllIconValues().get(position));
imageAdapter.setSelected(position); alertDialog.dismiss();
imageAdapter.notifyDataSetChanged();
} }
}); });
return alertDialog; return alertDialog;