package org.commcare.views.dialogs;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Build;
import android.text.Spannable;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import org.commcare.AppUtils;
import org.commcare.dalvik.R;
import org.commcare.interfaces.RuntimePermissionRequester;
import org.commcare.utils.MarkupUtil;
import org.javarosa.core.services.locale.Localization;
/**
* @author Phillip Mates (pmates@dimagi.com)
*/
public class DialogCreationHelpers {
public static CommCareAlertDialog buildAboutCommCareDialog(Activity activity) {
LayoutInflater li = LayoutInflater.from(activity);
View view = li.inflate(R.layout.scrolling_info_dialog, null);
TextView titleView = (TextView) view.findViewById(R.id.dialog_title_text);
titleView.setText(activity.getString(R.string.about_cc));
Spannable markdownText = buildAboutMessage(activity);
TextView aboutText = (TextView)view.findViewById(R.id.dialog_text);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
aboutText.setText(markdownText);
} else {
aboutText.setText(markdownText.toString());
}
CustomViewAlertDialog dialog = new CustomViewAlertDialog(activity, view);
dialog.setPositiveButton(Localization.get("dialog.ok"), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
return dialog;
}
private static Spannable buildAboutMessage(Context context) {
String commcareVersion = AppUtils.getCurrentVersionString();
String customAcknowledgment = Localization.getWithDefault("custom.acknowledgement", "");
String message = context.getString(R.string.about_dialog, commcareVersion, customAcknowledgment);
return MarkupUtil.returnMarkdown(context, message);
}
/**
* Build dialog that tells user why they should authorize a given
* permission. Pressing positive button launches the system's permission
* request dialgo
*
* @param permRequester interface for launching system permission request
* dialog
*/
public static CommCareAlertDialog buildPermissionRequestDialog(Activity activity,
final RuntimePermissionRequester permRequester,
final int requestCode,
String title,
String body) {
View view = LayoutInflater.from(activity).inflate(R.layout.scrolling_info_dialog, null);
TextView bodyText = (TextView)view.findViewById(R.id.dialog_text);
bodyText.setText(body);
TextView titleText = (TextView) view.findViewById(R.id.dialog_title_text);
titleText.setText(title);
CustomViewAlertDialog dialog = new CustomViewAlertDialog(activity, view);
dialog.setPositiveButton(Localization.get("dialog.ok"), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
permRequester.requestNeededPermissions(requestCode);
dialog.dismiss();
}
});
return dialog;
}
}