Newer
Older
dxcgt / app / src / main / java / com / smartdot / cgt / util / ActivityTools.java
wangxitong on 6 Apr 2021 4 KB first commit
package com.smartdot.cgt.util;

import java.util.List;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.provider.MediaStore;
import android.util.Log;
import android.widget.ArrayAdapter;

import com.smartdot.cgt.R;
import com.smartdot.cgt.model.DictTypeModel;
import com.smartdot.cgt.view.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 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 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(ApplicationMain.getInstance().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;
    }
}