package com.door43.translationstudio.newui;
import android.app.Dialog;
import android.app.DialogFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import com.door43.translationstudio.R;
/**
* Displays a truncated list of merge conflicts to the user and
* provides options for handling them.
*/
public class MergeConflictsDialog extends DialogFragment {
public static final String TAG = "merge_conflicts_dialog";
private OnClickListener listener = null;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.setCanceledOnTouchOutside(false);
dialog.setCancelable(false);
return dialog;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, final Bundle savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
View v = inflater.inflate(R.layout.dialog_merge_conflict, container, false);
v.findViewById(R.id.review).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(listener != null) {
listener.onReview();
}
dismiss();
}
});
v.findViewById(R.id.keep_server).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(listener != null) {
listener.onKeepServer();
}
dismiss();
}
});
v.findViewById(R.id.keep_local).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(listener != null) {
listener.onKeepLocal();
}
dismiss();
}
});
v.findViewById(R.id.cancel_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(listener != null) {
listener.onCancel();
}
dismiss();
}
});
return v;
}
/**
* Sets the listener that will receive events
* @param listener
*/
public void setOnClickListener(OnClickListener listener) {
this.listener = listener;
}
public interface OnClickListener {
void onReview();
void onKeepServer();
void onKeepLocal();
void onCancel();
}
}