package de.blau.android.dialogs;
import android.content.Context;
import android.graphics.PorterDuff;
import android.os.Build;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AlertDialog.Builder;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import de.blau.android.R;
import de.blau.android.util.ThemeUtils;
public class ProgressDialog {
public static AlertDialog get(Context ctx, int dialogType) {
int titleId = 0;
int messageId = 0;
switch (dialogType) {
case Progress.PROGRESS_LOADING:
titleId = R.string.progress_title;
messageId = R.string.progress_message;
break;
case Progress.PROGRESS_DOWNLOAD:
titleId = R.string.progress_title;
messageId = R.string.progress_download_message;
break;
case Progress.PROGRESS_DELETING:
titleId = R.string.progress_general_title;
messageId = R.string.progress_deleting_message;
break;
case Progress.PROGRESS_SEARCHING:
titleId = R.string.progress_general_title;
messageId = R.string.progress_searching_message;
break;
case Progress.PROGRESS_SAVING:
titleId = R.string.progress_general_title;
messageId = R.string.progress_saving_message;
break;
case Progress.PROGRESS_OAUTH:
titleId = R.string.progress_general_title;
messageId = R.string.progress_oauth;
break;
case Progress.PROGRESS_UPLOADING:
titleId = R.string.progress_general_title;
messageId = R.string.progress_uploading_message;
break;
case Progress.PROGRESS_PRESET:
titleId = R.string.progress_general_title;
messageId = R.string.progress_preset_message;
break;
case Progress.PROGRESS_RUNNING:
titleId = R.string.progress_general_title;
messageId = R.string.progress_running_message;
break;
default:
return null;
}
// inflater needs to be got from a themed view or else all our custom stuff will not style correctly
final LayoutInflater inflater = ThemeUtils.getLayoutInflater(ctx);
Builder builder = new AlertDialog.Builder(ctx);
builder.setTitle(titleId);
View layout = inflater.inflate(R.layout.progress, null);
TextView message = (TextView) layout.findViewById(R.id.progressMessage);
message.setText(messageId);
ProgressBar progressBar = (ProgressBar) layout.findViewById(R.id.progressBar);
if (progressBar.getIndeterminateDrawable() != null) {
PorterDuff.Mode mode = android.graphics.PorterDuff.Mode.SRC_IN;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
mode = android.graphics.PorterDuff.Mode.MULTIPLY; // ugly but at least it animates
}
progressBar.getIndeterminateDrawable().setColorFilter(ThemeUtils.getStyleAttribColorValue(ctx, R.attr.colorAccent, 0), mode);
}
builder.setView(layout);
return builder.create();
}
}