package com.jiuqi.njt.util; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Random; import com.jiuqi.njt.data.OptsharepreInterface; import com.jiuqi.njt.management.FregmentWorkRepair; import com.jiuqi.njt.model.CModuleBean; import com.jiuqi.njt.model.ModuleType; import com.jiuqi.njt.widget.ProgressDialogStyle; import android.annotation.SuppressLint; import android.app.Activity; import android.app.DatePickerDialog; import android.app.Dialog; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.net.Uri; import android.os.Build; import android.os.Environment; import android.provider.MediaStore; import android.widget.Button; import android.widget.DatePicker; import android.widget.EditText; import android.widget.TextView; public class RepairUtils { private static boolean isStartDateValidate; /** * 弹出世间选择框(可以返回选择的时间是否小于当前时间) * @param context * @param btn * @return boolean */ public static boolean createDatePickerDialog(Context context, final Button btn) { Dialog dialog = UIUtil.createDatePickerDialog(context, new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker dp, int year, int month, int dayOfMonth) { isStartDateValidate = DateUtil .compareDateIsLessThanNow(year, month, dayOfMonth); btn.setText(year + "-" + (month + 1) + "-" + dayOfMonth); } }); dialog.show(); return isStartDateValidate; } /** * @return 判断sd卡是否存在 */ public static boolean isExistSDCard() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { return true; } else { return false; } } /** * @param bitmap * 销毁图片文件 */ public static void destoryBimap(Bitmap bitmap) { if (bitmap != null && !bitmap.isRecycled()) { bitmap.recycle(); bitmap = null; } } /** * 获取并返回EditText的内容 * @param editText * @return String */ public static String getEditTextMessage(EditText editText) { return editText.getText().toString(); } /** 把Uri转化成文件路径 */ public static String filePath(Context context, Uri uri) { String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = context.getContentResolver().query(uri, proj, null, null, null); cursor.moveToFirst(); int index = cursor.getColumnIndex(proj[0]); String path = cursor.getString(index); cursor.close(); return path; } /** * 创建文件 */ public static File createFile(File imgfile) { String Dir = "/njt/images/"; String imagePath = Environment.getExternalStorageDirectory() .getAbsolutePath() + Dir; SimpleDateFormat time = new SimpleDateFormat("yyMMddHHmmss"); String filenName = time.format(new Date()) + ".jpg"; imgfile = new File(imagePath); if (!imgfile.exists()) { imgfile.mkdirs(); } imgfile = new File(imagePath, filenName); if (!imgfile.exists()) { try { imgfile.createNewFile(); } catch (IOException e1) { e1.printStackTrace(); } } return imgfile; } /** * @param file * 发送广播扫描刷新图片 否则,新拍得图片不显示在图库中 */ public static void sendBroadcast(Context activiy, File file) { Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); Uri uri = Uri.fromFile(file); intent.setData(uri); activiy.sendBroadcast(intent); } /** * 读取图片属性:旋转的角度 * * @param path * 图片绝对路径 * @return degree旋转的角度 */ public static int readPictureDegree(String path) { int degree = 0; if (Integer.parseInt(Build.VERSION.SDK) >= 17) { degree = 0; } else { degree = 90; } return degree; } /** * 生成档案编号 * * @Title: getFileNo * @param @return * @return String 返回类型 */ private static final String defaultStr = "yyyyMMddHHmmssSSS"; private static final SimpleDateFormat DefaultSDF1 = new SimpleDateFormat( defaultStr); public static String getFileNo(Context activiy) { OptsharepreInterface sharePre = new OptsharepreInterface(activiy); String fileNumber = ("0".equals(sharePre.getPres("areacode")) ? "000000000000" : sharePre.getPres("areacode")) + getDateString() + getRandom(); return fileNumber; } /** * 生成随机数 * * @Title: getRandom * @param @return * @return String 返回类型 */ private static String getRandom() { Random ra = new Random(); return ra.nextInt(10) + "" + ra.nextInt(10) + ra.nextInt(10) + ra.nextInt(10); } /** * 获得时间戳 * * @param l * @return */ public static String getDateString() { return DefaultSDF1.format(new Date()); } public static void requestMyfavorOrRepairForResult(Activity activity,String flag){ Intent in = new Intent(); in.setClass(activity, FregmentWorkRepair.class); in.putExtra("flag", flag); if("service".equals(flag)){ CModuleBean bena = new CModuleBean(); bena.setModuleFlag(ModuleType.wxd); in.putExtra(Constants.PARAM_MODULEBEAN, bena); }else if("favor".equals(flag)){ CModuleBean bena = new CModuleBean(); bena.setModuleFlag(ModuleType.wxd); in.putExtra(Constants.PARAM_MODULEBEAN, bena); } activity.startActivityForResult(in, Constants.REQUEST_MYFAVOR_OR_REPAIRS); } /** * * @param context * @param int i: * 1 :正在定位... * 2:正在获取天气... * 3:正在验证账号... * 4:正在提交数据... * 5:正在获取数据... * 6:正在验证手机号码... * @return Dialog */ @SuppressLint("NewApi") public static Dialog myShowDialog(Context context, int i) { Dialog pd = null; if(null!=context){ switch (i) { case 1: pd = ProgressDialogStyle.createLoadingDialog(context, "正在定位..."); pd.show(); break; case 2: pd = ProgressDialogStyle.createLoadingDialog(context, "正在获取天气..."); pd.show(); break; case 3: pd = ProgressDialogStyle.createLoadingDialog(context, "正在验证账号..."); pd.show(); break; case 4: pd = ProgressDialogStyle.createLoadingDialog(context, "正在提交数据..."); pd.show(); break; case 5: pd = ProgressDialogStyle.createLoadingDialog(context, "正在获取数据..."); pd.show(); break; case 6: pd = ProgressDialogStyle.createLoadingDialog(context, "正在验证手机号码..."); pd.show(); break; case 7: pd = ProgressDialogStyle.createLoadingDialog(context, "正在注册,请稍后..."); pd.show(); break; case 8: pd = ProgressDialogStyle.createLoadingDialog(context, "正在发送验证码,请稍后..."); pd.show(); break; default: break; } } return pd; } public static void myRemoveDialog(Dialog pd) { if (pd != null) { pd.dismiss(); } } /** * * 验证文本框或者按钮上面是不是有内容(如果没有就提示按钮初始时提示的内容) * @param context * @param widgets * @return */ public static boolean doValidateTextViewsHaveMessage(Context context,TextView[] widgets ){ Validator validator = new Validator(); ReturnObject ro = null; validator.addRules(ValidateRule.IS_NOT_EMPTY, ValidateRule.IS_REACH_MAX_LENGTH); for (TextView w : widgets) { ro = validator.val(w.getText()); if (!ro.isSuccess) { UIUtil.showMsg(context, w.getHint().toString()); w.requestFocus(); return false; } } return true; } }