package com.example.meinwald.ui.area; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.graphics.Rect; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.example.meinwald.BuildConfig; import com.example.meinwald.R; import com.example.meinwald.ui.task.OwnTask; import com.google.android.material.floatingactionbutton.FloatingActionButton; import java.util.ArrayList; import java.util.List; import androidx.appcompat.widget.AlertDialogLayout; import androidx.appcompat.widget.LinearLayoutCompat; import androidx.constraintlayout.widget.ConstraintLayout; import static java.security.AccessController.getContext; public class AreaAdapter extends BaseAdapter { List areaList; LayoutInflater inflater; Context context; public AreaAdapter(Context applicationContext, List areaList) { this.areaList = new ArrayList<>(); this.areaList = areaList; this.context = applicationContext; inflater = LayoutInflater.from(applicationContext); if (BuildConfig.DEBUG) { Log.d("AreaAdapter","size: " + areaList.size()); } } @Override public View getView(final int i, View view, final ViewGroup viewGroup) { view = inflater.inflate(R.layout.area_element, null); final ConstraintLayout elementView = view.findViewById(R.id.areaElement); final ConstraintLayout infovView = view.findViewById(R.id.areaInfoView); final TextView title = (TextView) view.findViewById(R.id.areaInfoTitle); final TextView notice = (TextView) view.findViewById(R.id.areaInfoNotice); final ImageView icon = (ImageView) view.findViewById(R.id.areaIcon); final ImageView manageArea = (ImageView) view.findViewById(R.id.areaManageArea); context = view.getContext(); if (BuildConfig.DEBUG) { Log.d("AreaAdapter",areaList.get(i).toString()); Log.d("AreaAdapter",areaList.get(i).getTitle()); Log.d("AreaAdapter",areaList.get(i).getNotice()); } title.setText(areaList.get(i).getTitle()); notice.setText(areaList.get(i).getNotice()); icon.setImageBitmap(areaList.get(i).getImage()); manageArea.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final AlertDialog.Builder builder = new AlertDialog.Builder(v.getRootView().getContext()); final View viewInflated = LayoutInflater.from(v.getRootView().getContext()).inflate(R.layout.area_management, viewGroup, false); builder.setView(viewInflated); //get elements TextView title = viewInflated.findViewById(R.id.areaManageTitle); final TextView notice = viewInflated.findViewById(R.id.areaManageNotice); TextView gpscount = viewInflated.findViewById(R.id.areaManageGPSPoints); ImageView image = (ImageView) viewInflated.findViewById(R.id.areaManageImage); ImageView newNotice = (ImageView) viewInflated.findViewById(R.id.areaManageNewDescription); ImageView newGPS = (ImageView) viewInflated.findViewById(R.id.areaManageNewGPS); ImageView newImage = (ImageView) viewInflated.findViewById(R.id.areaManageNewImage); ImageView deleteArea = (ImageView) viewInflated.findViewById(R.id.areaManageDeleteArea); //set current vlues title.setText(areaList.get(i).getTitle()); notice.setText(areaList.get(i).getNotice()); gpscount.setText(String.valueOf(areaList.get(i).getLocations().size())); if (areaList.get(i).getImage() != null) { image.setImageBitmap(areaList.get(i).getImage()); } newNotice.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final AlertDialog.Builder newbuilder = new AlertDialog.Builder(v.getRootView().getContext()); final View viewInflated = LayoutInflater.from(v.getRootView().getContext()).inflate(R.layout.area_management_notice, viewGroup, false); newbuilder.setView(viewInflated); final TextView noticeView = viewInflated.findViewById(R.id.areaManagementNoticeUserInput); newbuilder.setPositiveButton("Bestätigen", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { areaList.get(i).setNotice(noticeView.getText().toString()); notice.setText(areaList.get(i).getNotice()); dialog.dismiss(); } }); newbuilder.setNegativeButton("Abbrechen", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); newbuilder.show(); }}); builder.setPositiveButton("Bestätigen", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.setNegativeButton("Abbrechen", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.show(); } }); icon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final AlertDialog.Builder builder = new AlertDialog.Builder(v.getRootView().getContext()); final View viewInflated = LayoutInflater.from(v.getRootView().getContext()).inflate(R.layout.image_large, viewGroup, false); builder.setView(viewInflated); final ConstraintLayout imageViewLayout = viewInflated.findViewById(R.id.taskLargeImageLayout); final ImageView imageView = viewInflated.findViewById(R.id.taskLargeImage); imageView.setImageBitmap(areaList.get(i).getImage()); builder.setNegativeButton("Zurück", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.show(); } }); elementView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { Toast toast = Toast.makeText(context, "on long click!", Toast.LENGTH_SHORT); TextView tv = (TextView) toast.getView().findViewById(android.R.id.message); if( v != null) { //text align center tv.setGravity(Gravity.CENTER); } return true; } }); return view; } @Override public int getCount() { return areaList.size(); } @Override public Object getItem(int i) { return areaList.get(i); } @Override public long getItemId(int i) { return i; } }