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;
}
}