|
package com.electric.chargingpile.fragment;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.constraint.ConstraintLayout;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import com.electric.chargingpile.R;
import com.electric.chargingpile.util.LogUtils;
import com.mabeijianxi.smallvideorecord2.Log;
public class RoutePlanMapScreenDialogFragment extends DialogFragment implements View.OnClickListener {
private Dialog mDialog;
private OnRoutePlanMapScreenDialogFragmentListener dialogFragmentListener;
private Boolean[] changedScreenList;
private ConstraintLayout first_left;
private ImageView first_left_icon;
private ConstraintLayout first_center;
private ImageView first_center_icon;
private ConstraintLayout first_right;
private ImageView first_right_icon;
private ConstraintLayout second_left;
private ImageView second_left_icon;
public static RoutePlanMapScreenDialogFragment newInstance(Boolean[] screenList) {
Bundle args = new Bundle();
args.putSerializable("screenList", screenList);
RoutePlanMapScreenDialogFragment fragment = new RoutePlanMapScreenDialogFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
mDialog = new Dialog(getActivity(), R.style.CommentDialog);
mDialog.setCancelable(true);
mDialog.setCanceledOnTouchOutside(true);
mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
mDialog.setContentView(R.layout.fragment_dialog_route_plan_map_screen);
Window window = mDialog.getWindow();
WindowManager.LayoutParams layoutParams = window.getAttributes();
// 布局属性位于整个窗口底部
layoutParams.gravity = Gravity.BOTTOM;
// 布局属性宽度填充整个窗口,默认是有margin的
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
window.setAttributes(layoutParams);
initDialog();
initListener();
return mDialog;
}
private void initDialog() {
Boolean[] screenList = (Boolean[]) getArguments().getSerializable("screenList");
int length = screenList.length;
changedScreenList = new Boolean[length];
for (int i = 0; i < length; i++) {
changedScreenList[i] = screenList[i];
}
first_left = mDialog.findViewById(R.id.first_left);
first_left_icon = mDialog.findViewById(R.id.first_left_icon);
first_center = mDialog.findViewById(R.id.first_center);
first_center_icon = mDialog.findViewById(R.id.first_center_icon);
first_right = mDialog.findViewById(R.id.first_right);
first_right_icon = mDialog.findViewById(R.id.first_right_icon);
second_left = mDialog.findViewById(R.id.second_left);
second_left_icon = mDialog.findViewById(R.id.second_left_icon);
updateScreenIcon();
}
private void initListener() {
mDialog.findViewById(R.id.screen_close).setOnClickListener(this);
first_left.setOnClickListener(this);
first_center.setOnClickListener(this);
first_right.setOnClickListener(this);
second_left.setOnClickListener(this);
}
private void updateScreenIcon() {
if (changedScreenList[0]) {
first_left_icon.setImageResource(R.drawable.shaixuan_icon_red_paper_selected);
} else {
first_left_icon.setImageResource(R.drawable.shaixuan_icon_red_paper_normal);
}
if (changedScreenList[1]) {
first_center_icon.setImageResource(R.drawable.shaixuan_icon_free_park_selected);
} else {
first_center_icon.setImageResource(R.drawable.shaixuan_icon_free_park_normal);
}
if (changedScreenList[2]) {
first_right_icon.setImageResource(R.drawable.shaixuan_icon_quick_charge_selected);
} else {
first_right_icon.setImageResource(R.drawable.shaixuan_icon_quick_charge_normal);
}
if (changedScreenList[3]) {
second_left_icon.setImageResource(R.drawable.shaixuan_icon_gaosu_selected);
} else {
second_left_icon.setImageResource(R.drawable.shaixuan_icon_gaosu_normal);
}
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
if (dialogFragmentListener != null) {
dialogFragmentListener.onDismiss(changedScreenList);
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.screen_close:
dismiss();
break;
case R.id.first_left:
changedScreenList[0] = !changedScreenList[0];
updateScreenIcon();
break;
case R.id.first_center:
changedScreenList[1] = !changedScreenList[1];
updateScreenIcon();
break;
case R.id.first_right:
changedScreenList[2] = !changedScreenList[2];
updateScreenIcon();
break;
case R.id.second_left:
changedScreenList[3] = !changedScreenList[3];
updateScreenIcon();
break;
}
}
public interface OnRoutePlanMapScreenDialogFragmentListener {
void onDismiss(Boolean[] changedScreenList);
}
public void setOnDismissDialogFragmentListener(OnRoutePlanMapScreenDialogFragmentListener listener) {
this.dialogFragmentListener = listener;
}
}
|