package com.hawkbrowser.app; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.view.LayoutInflater; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.EditText; import android.widget.TextView; import com.hawkbrowser.R; import com.hawkbrowser.util.CommonUtil; public class DownloadDialog { private EditText mEditText; private Listener mListener; private Param mParam; public static class Param { public String mUrl; public String mUserAgent; public String mContentDisposition; public String mMimeType; public long mSize; public Context mContext; public Param(String url, String userAgent, String contentDisposition, String mimeType, long contentLength, Context context) { mUrl = url; mUserAgent = userAgent; mContentDisposition = contentDisposition; mMimeType = mimeType; mSize = contentLength; mContext = context; } } public static interface Listener { void onClick(boolean isConfirmed, String newName, Param param); } public DownloadDialog(Param param, Listener listener) { mParam = param; mListener = listener; } public void show() { // Build the dialog and set up the button click handlers class DialogListener implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface dialog, int id) { // TODO Auto-generated method stub if(null != mListener) { mListener.onClick( DialogInterface.BUTTON_POSITIVE == id, mEditText.getText().toString(), mParam); } } } AlertDialog.Builder builder = new AlertDialog.Builder(mParam.mContext); DialogListener listener = new DialogListener(); ViewGroup vg = (ViewGroup) LayoutInflater.from(mParam.mContext). inflate(R.layout.dialog_download, null); TextView sizeView = (TextView) vg.findViewById(R.id.dialog_download_filesize); String format = mParam.mContext.getResources().getString(R.string.file_size_kb); String sizeValue = String.format(format, mParam.mSize / 1024); sizeView.setText(sizeValue); mEditText = (EditText) vg.findViewById(R.id.dialog_download_filename); mEditText.setText(CommonUtil.fileNameFromUrl(mParam.mUrl)); vg.setBackgroundResource(android.R.color.white); builder.setPositiveButton(R.string.download, listener); builder.setNegativeButton(R.string.cancel, listener); AlertDialog dlg = builder.create(); dlg.setView(vg, 0, 0, 0, 0); dlg.show(); Window window = dlg.getWindow(); WindowManager.LayoutParams layoutParam = window.getAttributes(); layoutParam.width = CommonUtil.screenSize(mParam.mContext).x; window.setAttributes(layoutParam); } }