Newer
Older
GasOperationApp / app / src / main / java / com / casic / gasoperation / utils / ActivityTools.java
[wangxitong] on 24 May 2021 6 KB first commit
package com.casic.gasoperation.utils;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;
import android.widget.ArrayAdapter;

import java.io.File;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.List;

import com.casic.gasoperation.R;
//import com.casic.gasoperation.utils.SoundRecorder;

public class ActivityTools {

    public static final String NEEDGETLOCATION = "needGetLocation";

    public static final int GETLOCATION_NONE = -1;

    public static final int GETLOCATION_EVENT = 11000;

    public static final int GETLOCATION_PART = 11001;

    public static final int GETLOCATION_SHOP = 11002;

    private static ActivityTools instance;

    private static Object lock = new Object();

    public static ActivityTools getInstance() {
        synchronized (lock) {
            if (instance == null) {
                instance = new ActivityTools();
            }
        }
        return instance;
    }
    public String getImageTempPath()
    {
        return getImageTempFile().getAbsolutePath();
    }
    public ArrayAdapter< DictTypeModel > getSpinAdapter(List< DictTypeModel > dictTypeList, Context context) {
        ArrayAdapter< DictTypeModel > spinAdapter = new ArrayAdapter< DictTypeModel >(context,
            R.layout.simple_spinner_item);
        spinAdapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item);
        if (dictTypeList != null && dictTypeList.size() > 0) {
            for (DictTypeModel caseType : dictTypeList) {
                spinAdapter.add(caseType);
            }
        }
        return spinAdapter;
    }

    public ArrayAdapter< DictTypeModel > getSpinAdapter(String noSelectString, List< DictTypeModel > dictTypeList,
                                                        Context context) {
        ArrayAdapter< DictTypeModel > spinAdapter = new ArrayAdapter< DictTypeModel >(context,
            R.layout.simple_spinner_item);
        spinAdapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item);
//        spinAdapter.add(new DictTypeModel("", noSelectString, ""));
        if (dictTypeList != null && dictTypeList.size() > 0) {
            for (DictTypeModel caseType : dictTypeList) {
                spinAdapter.add(caseType);
            }
        }
        return spinAdapter;
    }

    public ArrayAdapter< DictTypeModel > getSpinAdapter(int noSelectStringId, List< DictTypeModel > dictTypeList,
                                                        Context context) {
        return this.getSpinAdapter(context.getResources().getString(noSelectStringId), dictTypeList, context);
    }

    public ArrayAdapter<CharSequence> getSpinAdapter(int textArrayResId, Context context) {
        ArrayAdapter<CharSequence> spinAdapter = ArrayAdapter.createFromResource(context, textArrayResId,
            R.layout.simple_spinner_item);
        spinAdapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item);
        return spinAdapter;
    }

    public String getConfigPath(String fileName)
    {
        File cgtPath = new File(Environment.getExternalStorageDirectory().getPath() + "/cgt/");
        if (!cgtPath.exists())
        {
            cgtPath.mkdirs();
        }
        return MessageFormat.format("{0}{1}", Environment.getExternalStorageDirectory().getPath() + "/cgt/", fileName);
    }

    public File getConfigTempPath(String fileName)
    {
        String tmpPath = getConfigPath("temp");
        File tmpDir = new File(tmpPath);
        if (!tmpDir.exists())
        {
            tmpDir.mkdirs();
        }
        File tmpFile = new File(tmpPath, fileName);
        if (!tmpFile.exists())
        {
            try
            {
                tmpFile.createNewFile();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
        return tmpFile;
    }

    public File getImageTempFile()
    {
        File tmpImage = getConfigTempPath("tmpImage.jpg");
        if (!tmpImage.exists())
        {
            try
            {
                tmpImage.createNewFile();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
        return tmpImage;
    }
    /**
	 * 
	 */
    public void takePicture(final int selectPhotoId, final int takePhotoId, final Activity activity) {
        final CharSequence[] items = new CharSequence[] { "图库中选取", "照相机拍摄" };
        Msg.showChoiceDialog(activity, "选取图片", items, false, new MsgCallback() {
            @Override
            public void callBack(Boolean result, Object[] listItem, Integer index) {
                if (index != null) {
                    if (index.intValue() == 0) {
                        Intent intent = new Intent(Intent.ACTION_PICK);
                        intent.setType("image/*");
                        activity.startActivityForResult(Intent.createChooser(intent, "选择图片"), selectPhotoId);
                    } else if (index.intValue() == 1) {
                        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                        intent.putExtra(MediaStore.EXTRA_OUTPUT,
                            Uri.fromFile(getImageTempFile()));
                        activity.startActivityForResult(Intent.createChooser(intent, "选择相机"), takePhotoId);
                    }
                }
            }

            @Override
            public void callBack(Boolean result) {
            }
        });
    }

    /**
	 * 
	 */
//    public AlertDialog takeAudio(final SoundRecorder soundRecorder, AlertDialog soundDialog, Context context) {
//        try {
//            if (soundDialog == null) {
//                soundDialog = Msg.showViewDialog(context, "录音", soundRecorder, new MsgCallback() {
//
//                    @Override
//                    public void callBack(Boolean result) {
//                        soundRecorder.stopRecordOrPlay();
//                    }
//                });
//            } else {
//                soundDialog.show();
//            }
//        } catch (Exception e) {
//            Log.w("soundrecorder", e.toString());
//        }
//        return soundDialog;
//    }
}